diff --git a/.travis.yml b/.travis.yml index c9a025527c..3d0fbd5df1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,13 +18,14 @@ addons: packages: - g++-4.9 before_install: + - sudo rm -vf /etc/apt/sources.list.d/*riak* - wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo apt-key add - - echo "deb http://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list - sudo apt-get update -qq - sudo apt-get install cf-cli -y # turn off travis default mvn install call and install a recent node version instead install: - - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install 8.7.0 + - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install 8.8.1 - npm install -g bower - npm install -g grunt-cli # do not install into local maven repo to avoid polluting the cache diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..9cecc1d466 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + 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 . + +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: + + {project} Copyright (C) {year} {fullname} + 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 +. + + 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 +. diff --git a/bower.json b/bower.json index 45586b6cd1..0b2613d4b0 100644 --- a/bower.json +++ b/bower.json @@ -17,7 +17,7 @@ "angular-translate": "2.15.2", "angular-translate-interpolation-messageformat": "2.15.2", "angular-translate-storage-cookie": "2.15.2", - "angular-ui-router": "1.0.8", + "angular-ui-router": "1.0.10", "bootstrap-sass": "3.3.7", "json3": "3.3.2", "ng-file-upload": "12.2.13", @@ -27,28 +27,28 @@ "jszip-utils": "~0.0.2", "angular-translate-handler-log": "2.15.2", "angular-nvd3": "^1.0.9", - "js-xlsx": "^0.11.5", + "js-xlsx": "^0.11.6", "cheet.js": "^0.3.3", "angular-material": "^1.1.5", "angular-block-ui": "^0.2.2", "lodash": "^4.17.4", - "plotly.js": "^1.31.0", + "plotly.js": "^1.31.2", "highlightjs": "^9.12.0", "angular-highlightjs": "^0.7.1", "js-beautify": "^1.7.4", - "ngclipboard": "^1.1.1", + "ngclipboard": "^1.1.2", "angular-katex": "^0.10.0", "angular-animate": "1.6.6", "angular-messages": "1.6.6", - "bowser": "^1.8.0", + "bowser": "^1.8.1", "angular-file-saver": "^1.1.3", "clientjs": "^0.1.5", "angular-scroll": "^1.0.2", "sockjs-client": "^1.1.4", "stomp-websocket": "^2.3.4", - "hyphenator": "rreitmann/Hyphenator#master", "es5-shim": "^4.5.9", - "es6-shim": "^0.35.3" + "es6-shim": "^0.35.3", + "hyphenator": "Hyphenator#^5.3.0" }, "overrides": { "elasticsearch": { diff --git a/package-lock.json b/package-lock.json index 4aa71cb098..2bbb7d3bb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@types/node": { - "version": "6.0.78", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.78.tgz", - "integrity": "sha512-+vD6E8ixntRzzZukoF3uP1iV+ZjVN3koTcaeK+BEoc/kSfGbLDIGC7RmCaUgVpUfN6cWvfczFRERCyKM9mkvXg==", + "version": "6.0.90", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.90.tgz", + "integrity": "sha512-tXoGRVdi7wZX7P1VWoV9Wfk0uYDOAHdEYXAttuWgSrN76Q32wQlSrMX0Rgyv3RTEaQY2ZLQrzYHVM2e8rfo8sA==", "dev": true }, "@types/q": { @@ -39,9 +39,9 @@ } }, "adm-zip": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", - "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", + "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", "dev": true }, "after": { @@ -3964,6 +3964,12 @@ "integrity": "sha1-T9qjs4rLwsAxsEXQ7c3+HsqxjI0=", "dev": true }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, "immutable": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", @@ -4342,22 +4348,14 @@ } }, "jasmine": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.6.0.tgz", - "integrity": "sha1-ayLnCIPo5YnUVjRhU7TSBt2+IX8=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", "dev": true, "requires": { "exit": "0.1.2", "glob": "7.0.6", - "jasmine-core": "2.6.4" - }, - "dependencies": { - "jasmine-core": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz", - "integrity": "sha1-3skmzQqfoof7bbXHVfpIfnTOysU=", - "dev": true - } + "jasmine-core": "2.8.0" } }, "jasmine-core": { @@ -4367,9 +4365,9 @@ "dev": true }, "jasminewd2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.1.0.tgz", - "integrity": "sha1-2llSddGuYx3nNqwKfH2Fyfc+9lI=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true }, "jju": { @@ -4643,6 +4641,59 @@ "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", "dev": true }, + "jszip": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.4.tgz", + "integrity": "sha512-z6w8iYIxZ/fcgul0j/OerkYnkomH8BZigvzbxVmr2h5HkZUrPtk2kjYtLkqR9wwQxEP6ecKNoKLsbhd18jfnGA==", + "dev": true, + "requires": { + "core-js": "2.3.0", + "es6-promise": "3.0.2", + "lie": "3.1.1", + "pako": "1.0.6", + "readable-stream": "2.0.6" + }, + "dependencies": { + "core-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", + "dev": true + }, + "es6-promise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", + "dev": true + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "karma": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", @@ -5162,6 +5213,15 @@ "type-check": "0.3.2" } }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "dev": true, + "requires": { + "immediate": "3.0.6" + } + }, "limiter": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.2.tgz", @@ -6604,28 +6664,34 @@ "dev": true }, "protractor": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.1.2.tgz", - "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.2.0.tgz", + "integrity": "sha1-0/ObGV6F81Oa2djLZWCp0rYyl8Q=", "dev": true, "requires": { - "@types/node": "6.0.78", + "@types/node": "6.0.90", "@types/q": "0.0.32", "@types/selenium-webdriver": "2.53.42", "blocking-proxy": "0.0.5", "chalk": "1.1.3", "glob": "7.0.6", - "jasmine": "2.6.0", - "jasminewd2": "2.1.0", + "jasmine": "2.8.0", + "jasminewd2": "2.2.0", "optimist": "0.6.1", "q": "1.4.1", "saucelabs": "1.3.0", - "selenium-webdriver": "3.0.1", + "selenium-webdriver": "3.6.0", "source-map-support": "0.4.15", "webdriver-js-extender": "1.0.0", "webdriver-manager": "12.0.6" }, "dependencies": { + "adm-zip": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", + "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", + "dev": true + }, "q": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", @@ -6633,9 +6699,9 @@ "dev": true }, "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.0.6" @@ -6655,7 +6721,7 @@ "minimist": "1.2.0", "q": "1.4.1", "request": "2.78.0", - "rimraf": "2.6.1", + "rimraf": "2.6.2", "semver": "5.3.0", "xml2js": "0.4.19" } @@ -7086,35 +7152,6 @@ "dev": true, "requires": { "https-proxy-agent": "1.0.0" - }, - "dependencies": { - "agent-base": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", - "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", - "dev": true, - "requires": { - "extend": "3.0.1", - "semver": "5.0.3" - } - }, - "https-proxy-agent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", - "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", - "dev": true, - "requires": { - "agent-base": "2.1.1", - "debug": "2.2.0", - "extend": "3.0.1" - } - }, - "semver": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", - "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", - "dev": true - } } }, "sax": { @@ -7134,21 +7171,21 @@ } }, "selenium-webdriver": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz", - "integrity": "sha1-ot6l2kqX9mcuiefKcnbO+jZRR6c=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { - "adm-zip": "0.4.7", - "rimraf": "2.6.1", + "jszip": "3.1.4", + "rimraf": "2.6.2", "tmp": "0.0.30", "xml2js": "0.4.19" }, "dependencies": { "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.0.6" @@ -8217,12 +8254,6 @@ "selenium-webdriver": "2.53.3" }, "dependencies": { - "adm-zip": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", - "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", - "dev": true - }, "sax": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", @@ -8255,7 +8286,7 @@ "dev": true, "requires": { "sax": "0.6.1", - "xmlbuilder": "8.2.2" + "xmlbuilder": "9.0.4" } } } @@ -8445,9 +8476,9 @@ } }, "xmlbuilder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", - "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz", + "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=", "dev": true }, "xmlhttprequest-ssl": { diff --git a/package.json b/package.json index 7efe834357..db0dc549e6 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "load-grunt-tasks": "3.5.2", "lodash": "4.17.4", "phantomjs-prebuilt": "2.1.15", - "protractor": "5.1.2", + "protractor": "5.2.0", "requirejs": "2.3", "time-grunt": "1.4.0", "wiredep": "4.0.0", diff --git a/pom.xml b/pom.xml index d51830bac8..adbf4e14ef 100755 --- a/pom.xml +++ b/pom.xml @@ -5,13 +5,13 @@ spring-boot-starter-parent org.springframework.boot - 1.5.7.RELEASE + 1.5.8.RELEASE eu.dzhw.fdz.metadatamanagement metadatamanagement - 1.0.55 + 1.0.56 war metadatamanagement @@ -20,14 +20,14 @@ - 2.5 + 2.6 2.6 3.2.5 5.5.2 0.7.9 1.8 2.0.4 - 1.1.0.Final + 1.2.0.Final 2.8.0 yyyyMMddHHmmss ${java.version} @@ -35,7 +35,6 @@ 3.1.3 ${project.build.directory}/test-results - 4.1.4 false @@ -62,10 +61,6 @@ test - - com.querydsl - querydsl-mongodb - com.ryantenney.metrics metrics-spring @@ -124,17 +119,10 @@ io.searchbox jest - - net.karneim - pojobuilder - 3.6.0 - - provided - org.apache.commons commons-compress - 1.14 + 1.15 org.apache.logging.log4j @@ -166,6 +154,11 @@ mongeez 0.9.6 + + org.projectlombok + lombok + provided + org.springframework.boot spring-boot-actuator @@ -270,6 +263,11 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.6.1 + org.codehaus.mojo build-helper-maven-plugin @@ -352,31 +350,6 @@ false - - com.mysema.maven - apt-maven-plugin - 1.1.3 - - - generate-sources - - process - - - target/generated-sources/annotations - org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor - true - - - - - - com.querydsl - querydsl-apt - ${querydsl.version} - - - org.apache.maven.plugins @@ -407,7 +380,6 @@ ${maven.compiler.source} ${maven.compiler.target} - -proc:none @@ -472,23 +444,6 @@ alphabetical - - org.bsc.maven - maven-processor-plugin - 3.3.2 - - - process2 - process-sources - - process - - - ${project.build.directory}/generated-test-sources - - - - org.codehaus.mojo diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/Application.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/Application.java index 04dc65c0f9..33bb515b27 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/Application.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/Application.java @@ -9,8 +9,6 @@ import javax.annotation.PostConstruct; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -21,16 +19,15 @@ import eu.dzhw.fdz.metadatamanagement.common.config.Constants; import eu.dzhw.fdz.metadatamanagement.common.config.JHipsterProperties; import eu.dzhw.fdz.metadatamanagement.common.config.MetadataManagementProperties; +import lombok.extern.slf4j.Slf4j; /** * Main class boostrapping the application. */ @SpringBootApplication @EnableConfigurationProperties({MetadataManagementProperties.class, JHipsterProperties.class}) +@Slf4j public class Application { - - private static final Logger log = LoggerFactory.getLogger(Application.class); - @Autowired private Environment env; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/MongoDbConfiguration.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/MongoDbConfiguration.java index 33a18138cf..86331ccb09 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/MongoDbConfiguration.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/MongoDbConfiguration.java @@ -9,8 +9,6 @@ import javax.annotation.PreDestroy; import org.mongeez.Mongeez; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -35,6 +33,7 @@ import com.mongodb.MongoClientOptions; import eu.dzhw.fdz.metadatamanagement.usermanagement.repository.OAuth2AuthenticationReadConverter; +import lombok.extern.slf4j.Slf4j; /** * Configure the mongo db client instance. @@ -43,10 +42,8 @@ @Configuration @EnableMongoRepositories("eu.dzhw.fdz.metadatamanagement.**.repository") @EnableMongoAuditing(auditorAwareRef = "springSecurityAuditorAware") +@Slf4j public class MongoDbConfiguration extends AbstractMongoConfiguration { - - private final Logger log = LoggerFactory.getLogger(MongoDbConfiguration.class); - private MongoProperties mongoProperties; private Environment environment; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/WebConfigurer.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/WebConfigurer.java index e10f906060..47c15621e6 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/WebConfigurer.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/config/WebConfigurer.java @@ -8,8 +8,6 @@ import javax.servlet.ServletContext; import javax.servlet.ServletException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; @@ -20,16 +18,15 @@ import eu.dzhw.fdz.metadatamanagement.common.rest.filter.CachingHttpHeadersFilter; import eu.dzhw.fdz.metadatamanagement.common.rest.filter.StaticResourcesProductionFilter; +import lombok.extern.slf4j.Slf4j; /** * Configuration of web application with Servlet 3.0 APIs. */ @Configuration +@Slf4j public class WebConfigurer implements ServletContextInitializer, EmbeddedServletContainerCustomizer { - - private final Logger log = LoggerFactory.getLogger(WebConfigurer.class); - @Autowired private Environment env; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/AbstractRdcDomainObject.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/AbstractRdcDomainObject.java index a4fd02c35a..c78a947043 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/AbstractRdcDomainObject.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/AbstractRdcDomainObject.java @@ -1,7 +1,6 @@ package eu.dzhw.fdz.metadatamanagement.common.domain; import java.time.LocalDateTime; -import java.util.Objects; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; @@ -9,13 +8,14 @@ import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.annotation.Version; -import com.google.common.base.MoreObjects; +import lombok.Data; /** * Base class for all fdz domain objects. * * @author René Reitmann */ +@Data public abstract class AbstractRdcDomainObject { @Version private Long version; @@ -33,73 +33,4 @@ public abstract class AbstractRdcDomainObject { private String lastModifiedBy; public abstract String getId(); - - public Long getVersion() { - return version; - } - - public void setVersion(Long version) { - this.version = version; - } - - public LocalDateTime getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(LocalDateTime createdDate) { - this.createdDate = createdDate; - } - - public String getCreatedBy() { - return createdBy; - } - - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - - public LocalDateTime getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(LocalDateTime lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - - public String getLastModifiedBy() { - return lastModifiedBy; - } - - public void setLastModifiedBy(String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - - @Override - public int hashCode() { - return Objects.hashCode(this.getId()); - } - - @Override - public boolean equals(Object object) { - if (this == object) { - return true; - } - if (object == null || getClass() != object.getClass()) { - return false; - } - AbstractRdcDomainObject domainObject = (AbstractRdcDomainObject) object; - return Objects.equals(this.getId(), domainObject.getId()); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("id", this.getId()) - .add("version", version) - .add("createdDate", createdDate) - .add("createdBy", createdBy) - .add("lastModifiedDate", lastModifiedDate) - .add("lastModifiedBy", lastModifiedBy) - .toString(); - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nString.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nString.java index 0e608b69b4..d1585379ad 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nString.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nString.java @@ -1,8 +1,9 @@ package eu.dzhw.fdz.metadatamanagement.common.domain; -import java.io.Serializable; - -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * Class representing Strings that can be internationalized. @@ -10,96 +11,12 @@ * @author René Reitmann * @author Daniel Katzberg */ -@GeneratePojoBuilder(intoPackage = "eu.dzhw.fdz.metadatamanagement.common.domain.builders") -public class I18nString implements Serializable { - private static final long serialVersionUID = 3035702867033098482L; - +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class I18nString { private String de; private String en; - - /** - * Default Constructor. - */ - public I18nString() {} - - /** - * A constructor with the possibility to set the german and english translation. - * - * @param de German translation - * @param en English translation. - */ - public I18nString(String de, String en) { - this.de = de; - this.en = en; - } - - /** - * German version of the string. - * - * @return the german version of the string. - */ - public String getDe() { - return de; - } - - public void setDe(String de) { - this.de = de; - } - - /** - * English version of the string. - * - * @return the english version of the string. - */ - public String getEn() { - return en; - } - - public void setEn(String en) { - this.en = en; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((de == null) ? 0 : de.hashCode()); - result = prime * result + ((en == null) ? 0 : en.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - I18nString other = (I18nString) obj; - if (de == null) { - if (other.de != null) { - return false; - } - } else if (!de.equals(other.de)) { - return false; - } - if (en == null) { - if (other.en != null) { - return false; - } - } else if (!en.equals(other.en)) { - return false; - } - return true; - } - - @Override - public String toString() { - return "I18nString{de='" + de + "', en='" + en + "'}"; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Period.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Period.java index 0acf84edf9..3f80992339 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Period.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Period.java @@ -4,15 +4,21 @@ import java.time.LocalDate; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.ValidPeriod; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * Class representing period in time. * * @author René Reitmann */ -@GeneratePojoBuilder(intoPackage = "eu.dzhw.fdz.metadatamanagement.common.domain.builders") @ValidPeriod(message = "global.error.period.valid-period") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Period implements Serializable { private static final long serialVersionUID = -4040296722435163942L; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Person.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Person.java index d4c5aeaa60..68979a1a2e 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Person.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/domain/Person.java @@ -2,9 +2,10 @@ import org.hibernate.validator.constraints.NotEmpty; -import com.google.common.base.MoreObjects; - -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * A representation of a person. @@ -12,7 +13,10 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder(intoPackage = "eu.dzhw.fdz.metadatamanagement.common.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Person { @NotEmpty(message = "global.error.person.first-name.not-empty") @@ -22,42 +26,4 @@ public class Person { @NotEmpty(message = "global.error.person.last-name.not-empty") private String lastName; - - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("firstName", firstName) - .add("middleName", middleName) - .add("lastName", lastName) - .toString(); - } - - /* GETTER / SETTER */ - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getMiddleName() { - return middleName; - } - - public void setMiddleName(String middleName) { - this.middleName = middleName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/repository/BaseRepository.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/repository/BaseRepository.java index d5dc174fc2..38c20932d8 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/repository/BaseRepository.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/repository/BaseRepository.java @@ -4,7 +4,6 @@ import java.util.List; import org.springframework.data.mongodb.repository.MongoRepository; -import org.springframework.data.querydsl.QueryDslPredicateExecutor; import org.springframework.data.repository.NoRepositoryBean; import org.springframework.security.access.annotation.Secured; @@ -21,7 +20,7 @@ */ @NoRepositoryBean public interface BaseRepository - extends MongoRepository, QueryDslPredicateExecutor { + extends MongoRepository { @Override @Secured(AuthoritiesConstants.PUBLISHER) void delete(T entity); diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/rest/errors/ExceptionTranslator.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/rest/errors/ExceptionTranslator.java index 8fa757c729..b56b3dbd29 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/rest/errors/ExceptionTranslator.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/rest/errors/ExceptionTranslator.java @@ -27,18 +27,20 @@ import com.fasterxml.jackson.databind.node.TreeTraversingParser; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.exception.TemplateIncompleteException; +import freemarker.core.InvalidReferenceException; +import freemarker.core.ParseException; import freemarker.template.TemplateException; /** * Controller advice to translate the server side exceptions to client-friendly json structures. - * + * * @author Daniel Katzberg */ @ControllerAdvice public class ExceptionTranslator { private MessageSourceAccessor messageSourceAccessor; - + @Autowired public ExceptionTranslator(MessageSource messageSource) { this.messageSourceAccessor = new MessageSourceAccessor(messageSource); @@ -56,27 +58,27 @@ public ErrorListDto processValidationError(MethodArgumentNotValidException ex) { List fieldErrors = result.getFieldErrors(); return processFieldErrors(globalErrors, fieldErrors); } - - private ErrorListDto processFieldErrors(List globalErrors, + + private ErrorListDto processFieldErrors(List globalErrors, List fieldErrors) { - + ErrorListDto errorListDto = new ErrorListDto(); //handle global errors for (ObjectError globalError: globalErrors) { - errorListDto.add(new ErrorDto(globalError.getObjectName(), + errorListDto.add(new ErrorDto(globalError.getObjectName(), globalError.getDefaultMessage(), null, null)); } - + //handle field errors for (FieldError fieldError : fieldErrors) { String rejectedValue = null; - + if (fieldError.getRejectedValue() != null) { rejectedValue = fieldError.getRejectedValue().toString(); } - - errorListDto.add(new ErrorDto(fieldError.getObjectName(), fieldError.getDefaultMessage(), + + errorListDto.add(new ErrorDto(fieldError.getObjectName(), fieldError.getDefaultMessage(), rejectedValue, fieldError.getField())); } @@ -84,7 +86,48 @@ private ErrorListDto processFieldErrors(List globalErrors, } /** - * Handler for wrapping exceptions which occur when an unparsable json or excel file + * Handle Freemarker parsing errors. + */ + @ExceptionHandler(ParseException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ResponseBody + public ErrorListDto processFreemarkerParseError(ParseException ex) { + + //Build ErrorDto + String invalidValue = "(" + ex.getLineNumber() + + "," + ex.getColumnNumber() + "): " + ex.getEditorMessage(); + ErrorDto errorDto = new ErrorDto(ex.getTemplateName(), + "global.error.server-error.freemarker.parsing-error", invalidValue, null); + + //Build ErrorListDto + ErrorListDto errorListDto = new ErrorListDto(); + errorListDto.add(errorDto); + return errorListDto; + } + + /** + * Handle Freemarker invalid reference errors. + */ + @ExceptionHandler(InvalidReferenceException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ResponseBody + public ErrorListDto processFreemarkerParseError(InvalidReferenceException ex) { + + //Build ErrorDto + String invalidValue = "(" + ex.getLineNumber() + "," + + ex.getColumnNumber() + "): " + ex.getBlamedExpressionString(); + ErrorDto errorDto = new ErrorDto(ex.getTemplateSourceName(), + "global.error.server-error.freemarker.invalid-reference-error", invalidValue, null); + + //Build ErrorListDto + ErrorListDto errorListDto = new ErrorListDto(); + errorListDto.add(errorDto); + return errorListDto; + } + + + /** + * Handler for wrapping exceptions which occur when an unparsable json or excel file * is send by the client. */ @ExceptionHandler(HttpMessageNotReadableException.class) @@ -92,20 +135,20 @@ private ErrorListDto processFieldErrors(List globalErrors, @ResponseStatus(HttpStatus.BAD_REQUEST) public ErrorListDto processHttpMessageNotReadableException( HttpMessageNotReadableException exception) { - - InvalidFormatException invalidFormatException = + + InvalidFormatException invalidFormatException = findInvalidFormatException(exception.getCause()); - + JsonMappingException jsonMappingException = findJsonMappingException(exception.getCause()); - + if (invalidFormatException != null) { return createParsingError(invalidFormatException); - //Default message, if no other root cause was found - } else if (jsonMappingException != null) { + //Default message, if no other root cause was found + } else if (jsonMappingException != null) { return createJsonMappingError(jsonMappingException); } else { - String errorMessage; + String errorMessage; if (exception.getRootCause() != null) { errorMessage = exception.getRootCause() .getLocalizedMessage(); @@ -113,10 +156,10 @@ public ErrorListDto processHttpMessageNotReadableException( errorMessage = exception.getLocalizedMessage(); } return new ErrorListDto(new ErrorDto(null, errorMessage, null, null)); - + } } - + private InvalidFormatException findInvalidFormatException(Throwable cause) { if (cause == null || cause instanceof InvalidFormatException) { return (InvalidFormatException) cause; @@ -124,7 +167,7 @@ private InvalidFormatException findInvalidFormatException(Throwable cause) { return findInvalidFormatException(cause.getCause()); } } - + private JsonMappingException findJsonMappingException(Throwable cause) { if (cause == null || cause instanceof JsonMappingException) { return (JsonMappingException) cause; @@ -132,12 +175,12 @@ private JsonMappingException findJsonMappingException(Throwable cause) { return findJsonMappingException(cause.getCause()); } } - - private ErrorListDto createParsingError(InvalidFormatException invalidFormatException) { - + + private ErrorListDto createParsingError(InvalidFormatException invalidFormatException) { + //Get the Name of the Processor String nameOfProcessor = invalidFormatException.getProcessor().getClass().getSimpleName(); - + //Decide between different input types like excel or json files switch (nameOfProcessor) { //Excel Parsing Error @@ -150,32 +193,32 @@ private ErrorListDto createParsingError(InvalidFormatException invalidFormatExce return new ErrorListDto(); } } - + private ErrorListDto createExcelParsingError(InvalidFormatException invalidFormatException) { - TreeTraversingParser processor = - (TreeTraversingParser) invalidFormatException.getProcessor(); - - //Create Excel Parsing Error. Just the first will be returned - String domainObject = invalidFormatException.getPath().get(0).getFrom() - .getClass().getSimpleName(); + TreeTraversingParser processor = + (TreeTraversingParser) invalidFormatException.getProcessor(); + + //Create Excel Parsing Error. Just the first will be returned + String domainObject = ((Class) invalidFormatException.getPath().get(0).getFrom()) + .getSimpleName(); String property = processor.getCurrentName(); if (property == null) { property = invalidFormatException.getPath().get(0).getFieldName(); } String invalidValue = (String)invalidFormatException.getValue(); String messageKey = "global.error.import.excel-parsing-error"; - return new ErrorListDto(new ErrorDto(domainObject, messageKey,invalidValue, property)); + return new ErrorListDto(new ErrorDto(domainObject, messageKey,invalidValue, property)); } - + private ErrorListDto createJsonParsingError(InvalidFormatException invalidFormatException) { - UTF8StreamJsonParser processor = - (UTF8StreamJsonParser) invalidFormatException.getProcessor(); - + UTF8StreamJsonParser processor = + (UTF8StreamJsonParser) invalidFormatException.getProcessor(); + //Create Json Parsing Error. Just the first will be returned try { + String domainObject = ((Class) invalidFormatException.getPath().get(0).getFrom()) + .getSimpleName(); - String domainObject = invalidFormatException.getPath().get(0).getFrom() - .getClass().getSimpleName(); String property = processor.getCurrentName(); if (property == null) { property = invalidFormatException.getPath().get(0).getFieldName(); @@ -188,22 +231,22 @@ private ErrorListDto createJsonParsingError(InvalidFormatException invalidFormat new ErrorDto(null, "global.error.import.no-json-mapping", null, null)); } } - + private ErrorListDto createJsonMappingError(JsonMappingException jsonMappingException) { - + String invalidField = jsonMappingException.getPath() .stream() .map(i -> i.getFieldName()) .collect(Collectors.joining(".")); - + return new ErrorListDto( new ErrorDto(null, "global.error.import.json-not-readable", invalidField, null)); } - + /** * Handles {@link RepositoryConstraintViolationException}s by returning {@code 400 Bad Request}. * Introduces a custom dto for validation errors of spring data rest repositories. - * This is necessary due to issue #706. + * This is necessary due to issue #706. * @param exception the exception to handle. * @return 400 bad request */ @@ -212,14 +255,14 @@ private ErrorListDto createJsonMappingError(JsonMappingException jsonMappingExce @ResponseStatus(HttpStatus.BAD_REQUEST) ErrorListDto handleRepositoryConstraintViolationException( RepositoryConstraintViolationException exception) { - + ErrorListDto errorListDto = new ErrorListDto(); - + for (ObjectError globalError : exception.getErrors().getGlobalErrors()) { String message = this.messageSourceAccessor.getMessage(globalError); errorListDto.add(new ErrorDto(globalError.getObjectName(), message, null, null)); } - + for (FieldError fieldError : exception.getErrors() .getFieldErrors()) { @@ -228,12 +271,12 @@ ErrorListDto handleRepositoryConstraintViolationException( errorListDto.add(new ErrorDto(fieldError.getObjectName(), message, String.format("%s", fieldError.getRejectedValue()), fieldError.getField())); } - + return errorListDto; } - + /** - * Handles the Dataset Report Template exception. This exception will be thrown, + * Handles the Dataset Report Template exception. This exception will be thrown, * if something gone wrong on creating latex code by the given freemarker code. * @param exception The exception by the template handling. * @return 400 Bad Request and the error message. @@ -242,18 +285,18 @@ ErrorListDto handleRepositoryConstraintViolationException( @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) ErrorListDto handleTemplateException(TemplateException exception) { - + //The message of the exception is the error message of freemarker. //The manually added message for the dto can be translated into i18n strings String messageKey = "data-set-management.error.tex-template-error"; ErrorListDto errorListDto = new ErrorListDto( new ErrorDto(null, messageKey, exception.getMessage(), null)); - + return errorListDto; } - + /** - * Handles the Dataset Report Template incomplete exception. This exception will be thrown, + * Handles the Dataset Report Template incomplete exception. This exception will be thrown, * if the uploaded tex template files are incomplete and files are missing. * @param exception The incomplete tex template exception to handle. * @return 400 Bad Request and a list of missing files within the exception. @@ -263,30 +306,30 @@ ErrorListDto handleTemplateException(TemplateException exception) { @ResponseStatus(HttpStatus.BAD_REQUEST) ErrorListDto handleIncompleteTemplateException(TemplateIncompleteException exception) { ErrorListDto errorListDto = new ErrorListDto(); - + //All missing files for (String missingFile : exception.getMissingFiles()) { errorListDto.add(new ErrorDto(null, exception.getMessage(), missingFile, null)); } - + return errorListDto; } - + @ExceptionHandler @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) ErrorListDto handleMultipartException(MultipartException exception) { - FileSizeLimitExceededException fileSizeException = + FileSizeLimitExceededException fileSizeException = findFileSizeLimitExceededException(exception); if (fileSizeException != null) { - return new ErrorListDto(new ErrorDto(fileSizeException.getFileName(), + return new ErrorListDto(new ErrorDto(fileSizeException.getFileName(), "global.error.import.file-size-limit-exceeded", String.valueOf(fileSizeException.getActualSize()), null)); } - // return the message as it is + // return the message as it is return new ErrorListDto(new ErrorDto(null, exception.getLocalizedMessage(), null, null)); } - + private FileSizeLimitExceededException findFileSizeLimitExceededException(Throwable exception) { if (exception == null || exception instanceof FileSizeLimitExceededException) { return (FileSizeLimitExceededException) exception; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/websocket/WebSocketConnectionListener.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/websocket/WebSocketConnectionListener.java index d76cac48a4..4191cd2d5f 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/common/websocket/WebSocketConnectionListener.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/common/websocket/WebSocketConnectionListener.java @@ -2,8 +2,6 @@ import java.time.LocalDateTime; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.messaging.simp.stomp.StompHeaderAccessor; @@ -15,6 +13,7 @@ import eu.dzhw.fdz.metadatamanagement.common.config.WebSocketConfig; import eu.dzhw.fdz.metadatamanagement.common.websocket.domain.ActiveWebsocketSession; import eu.dzhw.fdz.metadatamanagement.common.websocket.repository.ActiveWebSocketSessionRepository; +import lombok.extern.slf4j.Slf4j; /** * Listener logging new and closed web socket connections. @@ -22,6 +21,7 @@ * @author René Reitmann */ @Component +@Slf4j public class WebSocketConnectionListener { private static final String BROWSER = "browser"; @@ -31,8 +31,6 @@ public class WebSocketConnectionListener { @Autowired private ActiveWebSocketSessionRepository activeWebSocketSessionRepository; - - private final Logger log = LoggerFactory.getLogger(WebSocketConnectionListener.class); /** * React on new web socket connections. diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSet.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSet.java index c9ee4f7160..af0dfdfb79 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSet.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSet.java @@ -14,8 +14,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.util.Patterns; @@ -27,7 +25,12 @@ import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.validation.ValidDataSetType; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.validation.ValidFormat; import io.searchbox.annotations.JestId; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Data Set. @@ -36,12 +39,16 @@ * */ @Document(collection = "data_sets") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.builders") @ValidDataSetIdName(message = "data-set-management.error.data-set.id.valid-data-set-id-name") @UniqueDatasetNumberInProject( message = "data-set-management.error.data-set.unique-data-set-number-in-project") @CompoundIndex(def = "{number: 1, dataAcquisitionProjectId: 1}", unique = true) +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class DataSet extends AbstractRdcDomainObject { @Id @@ -93,123 +100,8 @@ public class DataSet extends AbstractRdcDomainObject { + "sub-data-sets.access-way-unique-within-data-set") private List subDataSets; - public DataSet() { - super(); - } - public DataSet(DataSet dataSet) { super(); BeanUtils.copyProperties(dataSet, this); } - - @Override - public String getId() { - return this.id; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public void setId(String id) { - this.id = id; - } - - public Integer getNumber() { - return number; - } - - public void setNumber(Integer number) { - this.number = number; - } - - public I18nString getFormat() { - return format; - } - - public void setFormat(I18nString format) { - this.format = format; - } - - /* - * (non-Javadoc) - * @see eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("description", description) - .add("type", type) - .add("surveyNumbers", surveyNumbers) - .add("number", number) - .add("format", format) - .add("dataAcquisitionProjectId", dataAcquisitionProjectId) - .add("studyId", studyId) - .add("surveyIds", surveyIds) - .add("subDataSets", subDataSets) - .add("annotations", annotations) - .toString(); - } - - public I18nString getType() { - return type; - } - - public void setType(I18nString type) { - this.type = type; - } - - public List getSurveyNumbers() { - return surveyNumbers; - } - - public void setSurveyNumbers(List surveyNumbers) { - this.surveyNumbers = surveyNumbers; - } - - public List getSurveyIds() { - return surveyIds; - } - - public void setSurveyIds(List surveyIds) { - this.surveyIds = surveyIds; - } - - public List getSubDataSets() { - return subDataSets; - } - - public void setSubDataSets(List subDataSets) { - this.subDataSets = subDataSets; - } - - public String getStudyId() { - return studyId; - } - - public void setStudyId(String studyId) { - this.studyId = studyId; - } - - public I18nString getAnnotations() { - return annotations; - } - - public void setAnnotations(I18nString annotations) { - this.annotations = annotations; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSetAttachmentMetadata.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSetAttachmentMetadata.java index bf9b256327..22966475b1 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSetAttachmentMetadata.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/DataSetAttachmentMetadata.java @@ -11,14 +11,23 @@ import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.ValidIsoLanguage; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Metadata which will be stored in GridFS with each attachment for data sets. * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.builders") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class DataSetAttachmentMetadata extends AbstractRdcDomainObject { @NotEmpty(message = "data-set-management.error.data-set-attachment-metadata.data-set-id.not-empty") @@ -64,69 +73,4 @@ public class DataSetAttachmentMetadata extends AbstractRdcDomainObject { public String getId() { return "/public/files/data-sets/" + dataSetId + "/attachments/" + fileName; } - - /* GETTER / SETTER */ - public String getDataSetId() { - return dataSetId; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public I18nString getDescription() { - return description; - } - - public String getTitle() { - return title; - } - - public String getLanguage() { - return language; - } - - public String getFileName() { - return fileName; - } - - public Integer getDataSetNumber() { - return dataSetNumber; - } - - public void setDataSetId(String dataSetId) { - this.dataSetId = dataSetId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public void setTitle(String title) { - this.title = title; - } - - public void setLanguage(String language) { - this.language = language; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public void setDataSetNumber(Integer dataSetNumber) { - this.dataSetNumber = dataSetNumber; - } - - public Integer getIndexInDataSet() { - return indexInDataSet; - } - - public void setIndexInDataSet(Integer indexInDataSet) { - this.indexInDataSet = indexInDataSet; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/SubDataSet.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/SubDataSet.java index d38d1d0e20..e26075bb32 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/SubDataSet.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/domain/SubDataSet.java @@ -10,14 +10,19 @@ import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.validation.ValidAccessWay; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * Domain object of the SubDataSet. * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class SubDataSet { @NotEmpty(message = "data-set-management.error.sub-data-set.name.not-empty") @@ -41,54 +46,4 @@ public class SubDataSet { @I18nStringSize(max = StringLengths.LARGE, message = "data-set-management.error.sub-data-set.citation-hint.i18n-string-size") private I18nString citationHint; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getNumberOfObservations() { - return numberOfObservations; - } - - public void setNumberOfObservations(int numberOfObservations) { - this.numberOfObservations = numberOfObservations; - } - - public String getAccessWay() { - return accessWay; - } - - public void setAccessWay(String accessWay) { - this.accessWay = accessWay; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public I18nString getCitationHint() { - return citationHint; - } - - public void setCitationHint(I18nString citationHint) { - this.citationHint = citationHint; - } - - @Override - public String toString() { - return "SubDataSet [name=" + name + ", numberOfObservations=" + numberOfObservations - + ", accessWay=" + accessWay + ", description=" + description + ", citationHint=" - + citationHint + "]"; - } - - - } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/service/DataSetReportService.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/service/DataSetReportService.java index 17bb21322b..ef812d248a 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/service/DataSetReportService.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/datasetmanagement/service/DataSetReportService.java @@ -152,10 +152,12 @@ public String generateReport(MultipartFile multiPartFile, // Load data for template only once Map dataForTemplate = this.loadDataForTemplateFilling(dataSetId); String variableListFilledStr = - this.fillTemplate(texVariableListFileStr, templateConfiguration, dataForTemplate); + this.fillTemplate(texVariableListFileStr, templateConfiguration, dataForTemplate, + KEY_VARIABLELIST); ZipUtil.writeFileToZip(pathToVariableListTexFile, variableListFilledStr); String mainFilledStr = - this.fillTemplate(texMainFileStr, templateConfiguration, dataForTemplate); + this.fillTemplate(texMainFileStr, templateConfiguration, dataForTemplate, + KEY_MAIN); ZipUtil.writeFileToZip(pathToMainTexFile, mainFilledStr); // Create Variables pages @@ -167,7 +169,8 @@ public String generateReport(MultipartFile multiPartFile, //filledTemplates.put("variables/" + variable.getName() + ".tex", dataForTemplate.put("variable", variable); String filledVariablesFile = - fillTemplate(texVariableFileStr, templateConfiguration, dataForTemplate); + fillTemplate(texVariableFileStr, templateConfiguration, dataForTemplate, + KEY_VARIABLE); Path pathOfVariable = Paths.get("variables/" + variable.getName() + ".tex"); final Path root = zipFileSystem.getPath("/"); final Path dest = zipFileSystem.getPath(root.toString(), pathOfVariable.toString()); @@ -220,16 +223,25 @@ private List validateDataSetReportStructure(FileSystem zipFileSystem) { * @param templateConfiguration The configuration for freemarker. * @param dataForTemplateThe data for a tex template. All variables, questions and dataset * information. + * @param fileName filename of the script which will be filled in this method. * @return The filled tex templates as byte array. * @throws IOException Handles IO Exception. * @throws TemplateException Handles template Exceptions. */ private String fillTemplate(String templateContent, - Configuration templateConfiguration, Map dataForTemplate) + Configuration templateConfiguration, Map dataForTemplate, + String fileName) throws IOException, TemplateException { + + String templateName = "texTemplate"; + if (fileName != null && fileName.trim().length() > 0 ) { + templateName = fileName; + } + // Read Template and escape elements - Template texTemplate = new Template("texTemplate", - (ESCAPE_PREFIX + templateContent + ESCAPE_SUFFIX), templateConfiguration); + Template texTemplate = new Template(templateName, + (ESCAPE_PREFIX + templateContent + ESCAPE_SUFFIX), templateConfiguration); + try (Writer stringWriter = new StringWriter()) { texTemplate.process(dataForTemplate, stringWriter); diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/Instrument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/Instrument.java index fcc8bb87a9..416f5e75ae 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/Instrument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/Instrument.java @@ -13,8 +13,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.util.Patterns; @@ -25,7 +23,12 @@ import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.validation.ValidInstrumentType; import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.validation.ValidUniqueInstrumentNumber; import io.searchbox.annotations.JestId; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * A Instrument. @@ -34,13 +37,17 @@ * */ @Document(collection = "instruments") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.builders") @ValidInstrumentIdPattern(message = "instrument-management.error" + ".instrument.valid-instrument-id-pattern") @ValidUniqueInstrumentNumber(message = "instrument-management.error" + ".instrument.unique-instrument-number") @CompoundIndex(def = "{number: 1, dataAcquisitionProjectId: 1}", unique = true) +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Instrument extends AbstractRdcDomainObject { @Id @@ -95,124 +102,8 @@ public class Instrument extends AbstractRdcDomainObject { @NotEmpty(message = "instrument-management.error.instrument.study-id.not-empty") private String studyId; - public Instrument() { - super(); - } - public Instrument(Instrument instrument) { super(); BeanUtils.copyProperties(instrument, this); } - - @Override - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public I18nString getTitle() { - return title; - } - - public void setTitle(I18nString title) { - this.title = title; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public Integer getNumber() { - return number; - } - - public void setNumber(Integer number) { - this.number = number; - } - - /* - * (non-Javadoc) - * @see eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("title", title) - .add("subtitle", subtitle) - .add("description", description) - .add("type", type) - .add("dataAcquisitionProjectId", dataAcquisitionProjectId) - .add("surveyIds", surveyIds) - .add("surveyNumbers", surveyNumbers) - .add("number", number) - .add("annotations", annotations) - .add("studyId", studyId) - .toString(); - } - - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public List getSurveyIds() { - return surveyIds; - } - - public void setSurveyIds(List surveyIds) { - this.surveyIds = surveyIds; - } - - public List getSurveyNumbers() { - return surveyNumbers; - } - - public void setSurveyNumbers(List surveyNumbers) { - this.surveyNumbers = surveyNumbers; - } - - public String getStudyId() { - return studyId; - } - - public void setStudyId(String studyId) { - this.studyId = studyId; - } - - public I18nString getAnnotations() { - return annotations; - } - - public void setAnnotations(I18nString annotations) { - this.annotations = annotations; - } - - public I18nString getSubtitle() { - return subtitle; - } - - public void setSubtitle(I18nString subtitle) { - this.subtitle = subtitle; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/InstrumentAttachmentMetadata.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/InstrumentAttachmentMetadata.java index c408b98c5e..2e196bf9b0 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/InstrumentAttachmentMetadata.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/instrumentmanagement/domain/InstrumentAttachmentMetadata.java @@ -11,15 +11,24 @@ import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.ValidIsoLanguage; import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.validation.ValidInstrumentAttachmentType; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Metadata which will be stored in GridFS with each attachment for instruments. * * @author René Reitmann */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.builders") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class InstrumentAttachmentMetadata extends AbstractRdcDomainObject { @NotEmpty(message = "instrument-management.error.instrument-attachment-metadata.instrument-id.not-empty") @@ -63,72 +72,8 @@ public class InstrumentAttachmentMetadata extends AbstractRdcDomainObject { "instrument-management.error.instrument-attachment-metadata.index-in-instrument.not-null") private Integer indexInInstrument; - public String getInstrumentId() { - return instrumentId; - } - - public void setInstrumentId(String instrumentId) { - this.instrumentId = instrumentId; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public I18nString getType() { - return type; - } - - public void setType(I18nString type) { - this.type = type; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public Integer getInstrumentNumber() { - return instrumentNumber; - } - - public void setInstrumentNumber(Integer instrumentNumber) { - this.instrumentNumber = instrumentNumber; - } - @Override public String getId() { return "/public/files/instruments/" + instrumentId + "/attachments/" + fileName; } - - public Integer getIndexInInstrument() { - return indexInInstrument; - } - - public void setIndexInInstrument(Integer indexInInstrument) { - this.indexInInstrument = indexInInstrument; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/logmanagement/aop/LoggingAspect.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/logmanagement/aop/LoggingAspect.java index 5e2cb6d272..9d5890abaf 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/logmanagement/aop/LoggingAspect.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/logmanagement/aop/LoggingAspect.java @@ -8,17 +8,15 @@ import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import lombok.extern.slf4j.Slf4j; /** * Aspect for logging execution of service and repository Spring components. */ @Aspect +@Slf4j public class LoggingAspect { - - private final Logger log = LoggerFactory.getLogger(this.getClass()); - @Pointcut( "within(eu.dzhw.fdz.metadatamanagement.repository..*)" + " || within(eu.dzhw.fdz.metadatamanagement.service..*)" diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailService.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailService.java index 785c8220e1..53aabee9b7 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailService.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailService.java @@ -10,8 +10,6 @@ import javax.mail.internet.MimeMessage; import org.apache.commons.lang.CharEncoding; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.mail.javamail.JavaMailSenderImpl; @@ -24,6 +22,7 @@ import eu.dzhw.fdz.metadatamanagement.common.config.JHipsterProperties; import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.User; +import lombok.extern.slf4j.Slf4j; /** * Service for sending e-mails. @@ -33,10 +32,8 @@ *

*/ @Service +@Slf4j public class MailService { - - private final Logger log = LoggerFactory.getLogger(MailService.class); - @Autowired private JHipsterProperties jhipsterProperties; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/DataAcquisitionProject.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/DataAcquisitionProject.java index 6e2325f822..698ea8c4f8 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/DataAcquisitionProject.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/DataAcquisitionProject.java @@ -9,12 +9,15 @@ import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.validation.SetHasBeenReleasedBeforeOnlyOnce; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * The Data Acquisition Project collects all data which are going to be published by our RDC. @@ -25,8 +28,12 @@ @SetHasBeenReleasedBeforeOnlyOnce(message = "data-acquisition-project." + "error.data-acquisition-project." + "has-been-released-before.set-has-been-released-before-only-once") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.builders") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class DataAcquisitionProject extends AbstractRdcDomainObject { /* Domain Object Attributes */ @@ -44,49 +51,4 @@ public class DataAcquisitionProject extends AbstractRdcDomainObject { @Valid private Release release; - - /* - * (non-Javadoc) - * - * @see eu.dzhw.fdz.metadatamanagement.domain.AbstractRdcDomainObject#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * @see eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("hasBeenReleasedBefore", hasBeenReleasedBefore) - .add("release", release) - .toString(); - } - - /* GETTER / SETTER */ - public void setId(String id) { - this.id = id; - } - - public Release getRelease() { - return release; - } - - public void setRelease(Release release) { - this.release = release; - } - - public Boolean getHasBeenReleasedBefore() { - return hasBeenReleasedBefore; - } - - public void setHasBeenReleasedBefore(Boolean hasBeenReleasedBefore) { - this.hasBeenReleasedBefore = hasBeenReleasedBefore; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/Release.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/Release.java index 8e4dc0c93e..b8f77131e9 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/Release.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/domain/Release.java @@ -8,13 +8,14 @@ import org.hibernate.validator.constraints.NotEmpty; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.util.Patterns; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * The release includes all additional information for a release of a data acquisition project. It @@ -23,8 +24,10 @@ * * @author Daniel Katzberg */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Release { @NotEmpty(message = "data-acquisition-project." @@ -41,43 +44,4 @@ public class Release { @I18nStringSize(max = StringLengths.LARGE, message = "data-acquisition-project.error.release.notes.i18n-string-size") private I18nString notes; - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("version", version) - .add("date", date) - .add("notes", notes) - .toString(); - } - - /* GETTER / SETTER */ - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public LocalDateTime getDate() { - return date; - } - - public void setDate(LocalDateTime date) { - this.date = date; - } - - public I18nString getNotes() { - return notes; - } - - public void setNotes(I18nString notes) { - this.notes = notes; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectDeleteResource.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectDeleteResource.java index 0bb643a50e..0f1c4fabd6 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectDeleteResource.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectDeleteResource.java @@ -1,7 +1,5 @@ package eu.dzhw.fdz.metadatamanagement.projectmanagement.rest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.rest.webmvc.RepositoryRestController; import org.springframework.http.ResponseEntity; @@ -13,6 +11,7 @@ import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.DataAcquisitionProject; import eu.dzhw.fdz.metadatamanagement.projectmanagement.service.DataAcquisitionProjectService; +import lombok.extern.slf4j.Slf4j; /** * If a data acquisition project has been released before, it can not be deleted by anyone. @@ -20,11 +19,8 @@ * */ @RepositoryRestController +@Slf4j public class DataAcquisitionProjectDeleteResource { - - private final Logger log = - LoggerFactory.getLogger(DataAcquisitionProjectDeleteResource.class); - @Autowired private DataAcquisitionProjectService dataAcquisitionProjectService; @@ -43,16 +39,16 @@ public ResponseEntity deleteDataAcquisitionProject(@PathVariable String id) { //project could not be found if (dataAcquisitionProject == null) { - this.log.warn("Project could not be found and deleted!"); + log.warn("Project could not be found and deleted!"); return ResponseEntity.badRequest().build(); } //Check project, if it has been released before if (this.dataAcquisitionProjectService.deleteDataAcquisitionProject(dataAcquisitionProject)) { - this.log.info("Project has not been released before. Project is deleted."); + log.info("Project has not been released before. Project is deleted."); return ResponseEntity.ok().build(); } else { - this.log.warn("Project has been released before. It is forbidden to delete it!"); + log.warn("Project has been released before. It is forbidden to delete it!"); return ResponseEntity.badRequest().build(); } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectPostValidationResource.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectPostValidationResource.java index 3243307f95..8d45007de6 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectPostValidationResource.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/rest/DataAcquisitionProjectPostValidationResource.java @@ -1,7 +1,5 @@ package eu.dzhw.fdz.metadatamanagement.projectmanagement.rest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -17,6 +15,7 @@ import eu.dzhw.fdz.metadatamanagement.projectmanagement.rest.dto.PostValidationErrorsDto; import eu.dzhw.fdz.metadatamanagement.projectmanagement.service.PostValidationService; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; +import lombok.extern.slf4j.Slf4j; /** * A Resource class for the post validation of data acquisition projects. It get the id of the @@ -29,14 +28,11 @@ */ @RestController @RequestMapping("/api") +@Slf4j public class DataAcquisitionProjectPostValidationResource { - @Autowired private PostValidationService postValidationService; - private final Logger log = - LoggerFactory.getLogger(DataAcquisitionProjectPostValidationResource.class); - /** * POST /data-acquisition-projects/:id/post-validate -> Validate project by id. */ diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/service/DaraService.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/service/DaraService.java index 593301020b..46212c77b3 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/service/DaraService.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/projectmanagement/service/DaraService.java @@ -12,8 +12,6 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.IOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; @@ -41,6 +39,7 @@ import freemarker.template.Template; import freemarker.template.TemplateException; import freemarker.template.TemplateExceptionHandler; +import lombok.extern.slf4j.Slf4j; /** * Access component for getting health information or registration or updates for dara and the doi. @@ -48,10 +47,8 @@ * @author Daniel Katzberg */ @Service +@Slf4j public class DaraService { - - private final Logger log = LoggerFactory.getLogger(DaraService.class); - public static final String IS_ALiVE_ENDPOINT = "api/isAlive"; public static final String REGISTRATION_ENDPOINT = "study/importXML"; @@ -72,6 +69,9 @@ public class DaraService { private RestTemplate restTemplate; + //Key for Register XML Template + private static final String KEY_REGISTER_XML_TMPL = "register.xml.tmpl"; + //Resource Type private static final int RESOURCE_TYPE_DATASET = 2; @@ -122,7 +122,8 @@ public HttpStatus registerOrUpdateProjectToDara(String projectId) //Fill template String filledTemplate = this.fillTemplate(registerXmlStr, this.getTemplateConfiguration(), - this.getDataForTemplate(projectId, AVAILABILITY_CONTROLLED_DELIVERY)); + this.getDataForTemplate(projectId, AVAILABILITY_CONTROLLED_DELIVERY), + KEY_REGISTER_XML_TMPL); //Send Rest Call for Registration HttpStatus httpStatusFromDara = @@ -138,7 +139,7 @@ public HttpStatus registerOrUpdateProjectToDara(String projectId) */ private HttpStatus postToDaraImportXml(String filledTemplate, boolean hasBeenReleasedBefore) { - this.log.debug("XML Element to Dara: " + filledTemplate); + log.debug("XML Element to Dara: " + filledTemplate); //Load Dara Information final String daraEndpoint = @@ -202,7 +203,8 @@ public HttpStatus unregisterProjectToDara(String projectId) //Fill template String filledTemplate = this.fillTemplate(registerXmlStr, this.getTemplateConfiguration(), - this.getDataForTemplate(projectId, AVAILABILITY_CONTROLLED_NOT_AVAILABLE)); + this.getDataForTemplate(projectId, AVAILABILITY_CONTROLLED_NOT_AVAILABLE), + KEY_REGISTER_XML_TMPL); //Send Rest Call for Registration return this.postToDaraImportXml(filledTemplate, project.getHasBeenReleasedBefore()); @@ -263,15 +265,16 @@ private Configuration getTemplateConfiguration() { * @param templateContent The content of a xml template. * @param templateConfiguration The configuration for freemarker. * @param dataForTemplateThe data for a xml template. + * @param fileName filename of the script which will be filled in this method. * @return The filled xml templates as byte array. * @throws IOException Handles IO Exception. * @throws TemplateException Handles template Exceptions. */ private String fillTemplate(String templateContent, - Configuration templateConfiguration, Map dataForTemplate) + Configuration templateConfiguration, Map dataForTemplate, String fileName) throws IOException, TemplateException { // Read Template and escape elements - Template texTemplate = new Template("xmlTemplate", templateContent, templateConfiguration); + Template texTemplate = new Template(fileName, templateContent, templateConfiguration); try (Writer stringWriter = new StringWriter()) { texTemplate.process(dataForTemplate, stringWriter); diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/Question.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/Question.java index 5ca593e6f0..abd04a214b 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/Question.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/Question.java @@ -14,8 +14,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.ImageType; @@ -28,7 +26,12 @@ import eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.validation.ValidQuestionType; import eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.validation.ValidUniqueQuestionNumber; import io.searchbox.annotations.JestId; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Question. @@ -36,13 +39,17 @@ * @author Daniel Katzberg */ @Document(collection = "questions") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.builders") @CompoundIndex(def = "{instrumentId: 1, number: 1}", unique = true) @ValidUniqueQuestionNumber(message = "question-management.error" + ".question.unique-question-number") @ValidQuestionIdName(message = "question-management.error" + ".question.valid-question-id-name") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Question extends AbstractRdcDomainObject { @Id @@ -121,186 +128,8 @@ public class Question extends AbstractRdcDomainObject { @NotEmpty(message = "question-management.error.question.study-id.not-empty") private String studyId; - public Question() { - super(); - } - public Question(Question question) { super(); BeanUtils.copyProperties(question, this); } - - @Override - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public String getInstrumentId() { - return instrumentId; - } - - public void setInstrumentId(String instrumentId) { - this.instrumentId = instrumentId; - } - - public Integer getInstrumentNumber() { - return instrumentNumber; - } - - public void setInstrumentNumber(Integer instrumentNumber) { - this.instrumentNumber = instrumentNumber; - } - - public String getNumber() { - return number; - } - - public void setNumber(String number) { - this.number = number; - } - - public I18nString getQuestionText() { - return questionText; - } - - public void setQuestionText(I18nString questionText) { - this.questionText = questionText; - } - - public I18nString getTopic() { - return topic; - } - - public void setTopic(I18nString topic) { - this.topic = topic; - } - - /* - * (non-Javadoc) - * @see eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("number", number) - .add("questionText", questionText) - .add("instruction", instruction) - .add("introduction", introduction) - .add("type", type) - .add("additionalQuestionText", additionalQuestionText) - .add("imageType", imageType) - .add("topic", topic) - .add("technicalRepresentation", technicalRepresentation) - .add("successors", successors) - .add("dataAcquisitionProjectId", dataAcquisitionProjectId) - .add("instrumentId", instrumentId) - .add("instrumentNumber", instrumentNumber) - .add("successorNumbers", successorNumbers) - .add("studyId", studyId) - .add("annotations", annotations) - .add("indexInInstrument", indexInInstrument) - .toString(); - } - - public I18nString getInstruction() { - return instruction; - } - - public void setInstruction(I18nString instruction) { - this.instruction = instruction; - } - - public I18nString getIntroduction() { - return introduction; - } - - public void setIntroduction(I18nString introduction) { - this.introduction = introduction; - } - - public I18nString getType() { - return type; - } - - public void setType(I18nString type) { - this.type = type; - } - - public I18nString getAdditionalQuestionText() { - return additionalQuestionText; - } - - public void setAdditionalQuestionText(I18nString additionalQuestionText) { - this.additionalQuestionText = additionalQuestionText; - } - - public ImageType getImageType() { - return imageType; - } - - public void setImageType(ImageType imageType) { - this.imageType = imageType; - } - - public TechnicalRepresentation getTechnicalRepresentation() { - return technicalRepresentation; - } - - public void setTechnicalRepresentation(TechnicalRepresentation technicalRepresentation) { - this.technicalRepresentation = technicalRepresentation; - } - - public List getSuccessors() { - return successors; - } - - public void setSuccessors(List successors) { - this.successors = successors; - } - - public List getSuccessorNumbers() { - return successorNumbers; - } - - public void setSuccessorNumbers(List successorNumbers) { - this.successorNumbers = successorNumbers; - } - - public String getStudyId() { - return studyId; - } - - public void setStudyId(String studyId) { - this.studyId = studyId; - } - - public I18nString getAnnotations() { - return annotations; - } - - public void setAnnotations(I18nString annotations) { - this.annotations = annotations; - } - - public Integer getIndexInInstrument() { - return indexInInstrument; - } - - public void setIndexInInstrument(Integer indexInInstrument) { - this.indexInInstrument = indexInInstrument; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/TechnicalRepresentation.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/TechnicalRepresentation.java index 312b931786..9f1b6a4963 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/TechnicalRepresentation.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/domain/TechnicalRepresentation.java @@ -4,10 +4,11 @@ import org.hibernate.validator.constraints.NotEmpty; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * Technical Representation of a Question. It contains the type, @@ -15,8 +16,10 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class TechnicalRepresentation { @NotEmpty(message = "question-management.error.technical-representation.type.not-empty") @@ -33,42 +36,4 @@ public class TechnicalRepresentation { @Size(max = StringLengths.X_LARGE, message = "question-management.error.technical-representation.source.size") private String source; - - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", type) - .add("language", language) - .add("source", source) - .toString(); - } - - /* GETTER / SETTER */ - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getSource() { - return source; - } - - public void setSource(String source) { - this.source = source; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/relatedpublicationmanagement/domain/RelatedPublication.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/relatedpublicationmanagement/domain/RelatedPublication.java index 8d92b7a686..443c595c99 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/relatedpublicationmanagement/domain/RelatedPublication.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/relatedpublicationmanagement/domain/RelatedPublication.java @@ -1,6 +1,5 @@ package eu.dzhw.fdz.metadatamanagement.relatedpublicationmanagement.domain; -import java.util.ArrayList; import java.util.List; import javax.validation.constraints.NotNull; @@ -13,8 +12,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.util.Patterns; @@ -27,7 +24,12 @@ import eu.dzhw.fdz.metadatamanagement.relatedpublicationmanagement.domain.validation.ValidRelatedPublicationId; import eu.dzhw.fdz.metadatamanagement.relatedpublicationmanagement.domain.validation.ValidUrl; import io.searchbox.annotations.JestId; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Domain Object for the Related Publications. @@ -42,10 +44,14 @@ message = "related-publication-management.error.related-publication.one-study-is-used") @ValidPublicationYear(message = "related-publication-management.error.related-publication." + "year.valid") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.relatedpublicationmanagement.domain.builders") @ValidRelatedPublicationId(message = "related-publication-management.error.related-publication.valid-related-publication-id") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class RelatedPublication extends AbstractRdcDomainObject { @Id @@ -103,182 +109,25 @@ public class RelatedPublication extends AbstractRdcDomainObject { /* Foreign Keys */ @Indexed - private List questionIds = new ArrayList(); + private List questionIds; @Indexed - private List surveyIds = new ArrayList(); + private List surveyIds; @Indexed - private List variableIds = new ArrayList(); + private List variableIds; @Indexed - private List dataSetIds = new ArrayList(); + private List dataSetIds; @Indexed - private List studyIds = new ArrayList(); + private List studyIds; @Indexed - private List instrumentIds = new ArrayList(); - - public RelatedPublication() { - super(); - } + private List instrumentIds; public RelatedPublication(RelatedPublication relatedPublication) { super(); BeanUtils.copyProperties(relatedPublication, this); } - - @Override - public String getId() { - return this.id; - } - - public String getDoi() { - return doi; - } - - public void setDoi(String doi) { - this.doi = doi; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public void setId(String id) { - this.id = id; - } - - public String getAuthors() { - return authors; - } - - public void setAuthors(String authors) { - this.authors = authors; - } - - /* GETTER / SETTER */ - public String getSourceReference() { - return sourceReference; - } - - public void setSourceReference(String sourceReference) { - this.sourceReference = sourceReference; - } - - public String getPublicationAbstract() { - return publicationAbstract; - } - - public void setPublicationAbstract(String publicationAbstract) { - this.publicationAbstract = publicationAbstract; - } - - public String getSourceLink() { - return sourceLink; - } - - public void setSourceLink(String sourceLink) { - this.sourceLink = sourceLink; - } - - public Integer getYear() { - return year; - } - - public void setYear(Integer year) { - this.year = year; - } - - public I18nString getAbstractSource() { - return abstractSource; - } - - public void setAbstractSource(I18nString abstractSource) { - this.abstractSource = abstractSource; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public List getQuestionIds() { - return questionIds; - } - - public void setQuestionIds(List questionIds) { - this.questionIds = questionIds; - } - - public List getSurveyIds() { - return surveyIds; - } - - public void setSurveyIds(List surveyIds) { - this.surveyIds = surveyIds; - } - - public List getVariableIds() { - return variableIds; - } - - public void setVariableIds(List variableIds) { - this.variableIds = variableIds; - } - - public List getDataSetIds() { - return dataSetIds; - } - - public void setDataSetIds(List dataSetIds) { - this.dataSetIds = dataSetIds; - } - - public List getStudyIds() { - return studyIds; - } - - public void setStudyIds(List studyIds) { - this.studyIds = studyIds; - } - - public List getInstrumentIds() { - return instrumentIds; - } - - public void setInstrumentIds(List instrumentIds) { - this.instrumentIds = instrumentIds; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("doi", doi) - .add("title", title) - .add("authors", authors) - .add("sourceReference", sourceReference) - .add("publicationAbstract", publicationAbstract) - .add("sourceLink", sourceLink) - .add("year", year) - .add("abstractSource", abstractSource) - .add("language", language) - .add("questionIds", questionIds) - .add("surveyIds", surveyIds) - .add("variableIds", variableIds) - .add("dataSetIds", dataSetIds) - .add("studyIds", studyIds) - .add("instrumentIds", instrumentIds) - .toString(); - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/dao/ElasticsearchDao.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/dao/ElasticsearchDao.java index 9bfcc921ee..f3eb5e10f5 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/dao/ElasticsearchDao.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/dao/ElasticsearchDao.java @@ -3,8 +3,6 @@ import java.io.IOException; import java.util.Collection; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -28,6 +26,7 @@ import io.searchbox.indices.mapping.GetMapping; import io.searchbox.indices.mapping.PutMapping; import io.searchbox.indices.settings.GetSettings; +import lombok.extern.slf4j.Slf4j; /** * Data Access Object for accessing and manipulating elasticsearch. @@ -35,10 +34,8 @@ * @author René Reitmann */ @Component +@Slf4j public class ElasticsearchDao { - - private final Logger log = LoggerFactory.getLogger(ElasticsearchDao.class); - @Autowired private JestClient jestClient; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/DataSetSearchDocument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/DataSetSearchDocument.java index e76e28852d..6192febe2e 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/DataSetSearchDocument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/DataSetSearchDocument.java @@ -13,12 +13,20 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.projection.StudySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.projections.SurveySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.projections.VariableSubDocumentProjection; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Representation of a dataSet which is stored in elasticsearch. * * @author René Reitmann */ +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Getter +@Setter public class DataSetSearchDocument extends DataSet implements SearchDocumentInterface { private StudySubDocument study = null; @@ -89,81 +97,4 @@ public DataSetSearchDocument(DataSet dataSet, .map(subDataSet -> subDataSet.getAccessWay()).collect(Collectors.toList()); this.release = release; } - - public StudySubDocument getStudy() { - return study; - } - - public void setStudy(StudySubDocument study) { - this.study = study; - } - - public List getVariables() { - return variables; - } - - public void setVariables(List variables) { - this.variables = variables; - } - - public List getRelatedPublications() { - return relatedPublications; - } - - public void setRelatedPublications(List relatedPublications) { - this.relatedPublications = relatedPublications; - } - - public List getSurveys() { - return surveys; - } - - public void setSurveys(List surveys) { - this.surveys = surveys; - } - - public List getInstruments() { - return instruments; - } - - public void setInstruments(List instruments) { - this.instruments = instruments; - } - - public List getQuestion() { - return questions; - } - - public void setQuestions(List questions) { - this.questions = questions; - } - - public Release getRelease() { - return release; - } - - public void setRelease(Release release) { - this.release = release; - } - - public Integer getMaxNumberOfObservations() { - return maxNumberOfObservations; - } - - public List getAccessWays() { - return accessWays; - } - - public List getQuestions() { - return questions; - } - - @Override - public I18nString getGuiLabels() { - return guiLabels; - } - - public void setGuiLabels(I18nString guiLabels) { - this.guiLabels = guiLabels; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/InstrumentSearchDocument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/InstrumentSearchDocument.java index eac89902fa..980e7afdfd 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/InstrumentSearchDocument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/InstrumentSearchDocument.java @@ -13,12 +13,20 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.projection.StudySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.projections.SurveySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.projections.VariableSubDocumentProjection; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Representation of an instrument which is stored in elasticsearch. * * @author René Reitmann */ +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Getter +@Setter public class InstrumentSearchDocument extends Instrument implements SearchDocumentInterface { private StudySubDocument study = null; private List surveys = @@ -79,69 +87,4 @@ public InstrumentSearchDocument(Instrument instrument, } this.release = release; } - - public StudySubDocument getStudy() { - return study; - } - - public void setStudy(StudySubDocument study) { - this.study = study; - } - - public List getSurveys() { - return surveys; - } - - public void setSurveys(List surveys) { - this.surveys = surveys; - } - - public List getQuestions() { - return questions; - } - - public void setQuestions(List questions) { - this.questions = questions; - } - - public List getVariables() { - return variables; - } - - public void setVariables(List variables) { - this.variables = variables; - } - - public List getDataSets() { - return dataSets; - } - - public void setDataSets(List dataSets) { - this.dataSets = dataSets; - } - - public List getRelatedPublications() { - return relatedPublications; - } - - public void setRelatedPublications(List relatedPublications) { - this.relatedPublications = relatedPublications; - } - - public Release getRelease() { - return release; - } - - public void setRelease(Release release) { - this.release = release; - } - - @Override - public I18nString getGuiLabels() { - return guiLabels; - } - - public void setGuiLabels(I18nString guiLabels) { - this.guiLabels = guiLabels; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/QuestionSearchDocument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/QuestionSearchDocument.java index 007af3d61d..d0721da504 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/QuestionSearchDocument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/QuestionSearchDocument.java @@ -13,10 +13,18 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.projection.StudySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.projections.SurveySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.projections.VariableSubDocumentProjection; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Representation of an question which is stored in elasticsearch. */ +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Getter +@Setter public class QuestionSearchDocument extends Question implements SearchDocumentInterface { private StudySubDocument study = null; private InstrumentSubDocument instrument = null; @@ -74,69 +82,4 @@ public QuestionSearchDocument(Question question, } this.release = release; } - - public StudySubDocument getStudy() { - return study; - } - - public void setStudy(StudySubDocument study) { - this.study = study; - } - - public InstrumentSubDocument getInstrument() { - return instrument; - } - - public void setInstrument(InstrumentSubDocument instrument) { - this.instrument = instrument; - } - - public List getSurveys() { - return surveys; - } - - public void setSurveys(List surveys) { - this.surveys = surveys; - } - - public List getVariables() { - return variables; - } - - public void setVariables(List variables) { - this.variables = variables; - } - - public List getDataSets() { - return dataSets; - } - - public void setDataSets(List dataSets) { - this.dataSets = dataSets; - } - - public List getRelatedPublications() { - return relatedPublications; - } - - public void setRelatedPublications(List relatedPublications) { - this.relatedPublications = relatedPublications; - } - - public Release getRelease() { - return release; - } - - public void setRelease(Release release) { - this.release = release; - } - - @Override - public I18nString getGuiLabels() { - return guiLabels; - } - - public void setGuiLabels(I18nString guiLabels) { - this.guiLabels = guiLabels; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/RelatedPublicationSearchDocument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/RelatedPublicationSearchDocument.java index c57d507fa0..b9ba0a93ef 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/RelatedPublicationSearchDocument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/RelatedPublicationSearchDocument.java @@ -12,12 +12,20 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.projection.StudySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.projections.SurveySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.projections.VariableSubDocumentProjection; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Representation of a related publication which is stored in elasticsearch. * * @author Daniel Katzberg */ +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Getter +@Setter public class RelatedPublicationSearchDocument extends RelatedPublication implements SearchDocumentInterface { private List studies = @@ -82,69 +90,4 @@ public RelatedPublicationSearchDocument(RelatedPublication relatedPublication, .map(VariableSubDocument::new).collect(Collectors.toList()); } } - - public List getStudies() { - return studies; - } - - public void setStudies(List studies) { - this.studies = studies; - } - - public List getQuestions() { - return questions; - } - - public void setQuestions(List questions) { - this.questions = questions; - } - - public List getInstruments() { - return instruments; - } - - public void setInstruments(List instruments) { - this.instruments = instruments; - } - - public List getSurveys() { - return surveys; - } - - public void setSurveys(List surveys) { - this.surveys = surveys; - } - - public List getDataSets() { - return dataSets; - } - - public void setDataSets(List dataSets) { - this.dataSets = dataSets; - } - - public List getVariables() { - return variables; - } - - public void setVariables(List variables) { - this.variables = variables; - } - - public String getRelease() { - return release; - } - - public void setRelease(String release) { - this.release = release; - } - - @Override - public I18nString getGuiLabels() { - return guiLabels; - } - - public void setGuiLabels(I18nString guiLabels) { - this.guiLabels = guiLabels; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/StudySearchDocument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/StudySearchDocument.java index 506fbf345e..b656fe47e7 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/StudySearchDocument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/StudySearchDocument.java @@ -14,12 +14,20 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.SurveyDataTypes; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.projections.SurveySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.projections.VariableSubDocumentProjection; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Representation of a study which is stored in elasticsearch. * * @author René Reitmann */ +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Getter +@Setter public class StudySearchDocument extends Study implements SearchDocumentInterface { private List dataSets = new ArrayList<>(); @@ -136,85 +144,4 @@ private I18nString generateSurveyDataType(List surv return surveyDataType; } - - public List getDataSets() { - return dataSets; - } - - public void setDataSets(List dataSets) { - this.dataSets = dataSets; - } - - public List getVariables() { - return variables; - } - - public void setVariables(List variables) { - this.variables = variables; - } - - public List getRelatedPublications() { - return relatedPublications; - } - - public void setRelatedPublications(List relatedPublications) { - this.relatedPublications = relatedPublications; - } - - public List getSurveys() { - return surveys; - } - - public void setSurveys(List surveys) { - this.surveys = surveys; - } - - public List getQuestions() { - return questions; - } - - public void setQuestions(List questions) { - this.questions = questions; - } - - public List getInstruments() { - return instruments; - } - - public void setInstruments(List instruments) { - this.instruments = instruments; - } - - public Release getRelease() { - return release; - } - - public void setRelease(Release release) { - this.release = release; - } - - public I18nString getSurveyDataType() { - return surveyDataType; - } - - public void setSurveyDataType(I18nString surveyDataType) { - this.surveyDataType = surveyDataType; - } - - public Integer getNumberOfWaves() { - return numberOfWaves; - } - - public void setNumberOfWaves(Integer numberOfWaves) { - this.numberOfWaves = numberOfWaves; - } - - @Override - public I18nString getGuiLabels() { - return guiLabels; - } - - public void setGuiLabels(I18nString guiLabels) { - this.guiLabels = guiLabels; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/SurveySearchDocument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/SurveySearchDocument.java index 2c88b31a74..88b22b7774 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/SurveySearchDocument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/SurveySearchDocument.java @@ -13,6 +13,10 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.projection.StudySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.Survey; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.projections.VariableSubDocumentProjection; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Representation of a survey which is stored in elasticsearch. @@ -20,6 +24,10 @@ * @author René Reitmann * @author Daniel Katzberg */ +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Getter +@Setter public class SurveySearchDocument extends Survey implements SearchDocumentInterface { private StudySubDocument study = null; private List dataSets = @@ -81,69 +89,4 @@ public SurveySearchDocument(Survey survey, } this.release = release; } - - public StudySubDocument getStudy() { - return study; - } - - public void setStudy(StudySubDocument study) { - this.study = study; - } - - public List getDataSets() { - return dataSets; - } - - public void setDataSets(List dataSets) { - this.dataSets = dataSets; - } - - public List getVariables() { - return variables; - } - - public void setVariables(List variables) { - this.variables = variables; - } - - public List getRelatedPublications() { - return relatedPublications; - } - - public void setRelatedPublications(List relatedPublications) { - this.relatedPublications = relatedPublications; - } - - public List getInstruments() { - return instruments; - } - - public void setInstruments(List instruments) { - this.instruments = instruments; - } - - public List getQuestions() { - return questions; - } - - public void setQuestions(List questions) { - this.questions = questions; - } - - public Release getRelease() { - return release; - } - - public void setRelease(Release release) { - this.release = release; - } - - @Override - public I18nString getGuiLabels() { - return guiLabels; - } - - public void setGuiLabels(I18nString guiLabels) { - this.guiLabels = guiLabels; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/VariableSearchDocument.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/VariableSearchDocument.java index c2cb0a3376..f8e4960ed1 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/VariableSearchDocument.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/documents/VariableSearchDocument.java @@ -12,6 +12,10 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.projection.StudySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.projections.SurveySubDocumentProjection; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.Variable; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; /** * Representation of a variable which is stored in elasticsearch. @@ -19,6 +23,10 @@ * @author René Reitmann * @author Daniel Katzberg */ +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Getter +@Setter public class VariableSearchDocument extends Variable implements SearchDocumentInterface { private DataSetSubDocument dataSet = null; private StudySubDocument study = null; @@ -70,61 +78,4 @@ public VariableSearchDocument(Variable variable, } this.release = release; } - - public DataSetSubDocument getDataSet() { - return dataSet; - } - - public void setDataSet(DataSetSubDocument dataSet) { - this.dataSet = dataSet; - } - - public StudySubDocument getStudy() { - return study; - } - - public void setStudy(StudySubDocument study) { - this.study = study; - } - - public List getRelatedPublications() { - return relatedPublications; - } - - public void setRelatedPublications(List relatedPublications) { - this.relatedPublications = relatedPublications; - } - - public List getSurveys() { - return surveys; - } - - public void setSurveys(List surveys) { - this.surveys = surveys; - } - - public List getInstruments() { - return instruments; - } - - public void setInstruments(List instruments) { - this.instruments = instruments; - } - - public Release getRelease() { - return release; - } - - public void setRelease(Release release) { - this.release = release; - } - - @Override - public I18nString getGuiLabels() { - return guiLabels; - } - - public void setGuiLabels(I18nString guiLabels) { - this.guiLabels = guiLabels; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/domain/ElasticsearchUpdateQueueItem.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/domain/ElasticsearchUpdateQueueItem.java index 122d9e5fc6..bd736127a1 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/domain/ElasticsearchUpdateQueueItem.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/domain/ElasticsearchUpdateQueueItem.java @@ -10,11 +10,14 @@ import org.springframework.data.mongodb.core.index.CompoundIndexes; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.searchmanagement.service.ElasticsearchType; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Elasticsearch indices are updated asynchronously by processing these queue items. @@ -22,14 +25,18 @@ * @author René Reitmann */ @Document(collection = "elasticsearch_update_queue_item") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.searchmanagement.domain.builders") @CompoundIndexes({ @CompoundIndex(def = "{documentType: 1, documentId: 1, action: 1}", unique = true), @CompoundIndex(def = "{updateStartedAt: 1, updateStartedBy: 1, createdDate: 1}"), @CompoundIndex(def = "{updateStartedAt: 1, updateStartedBy: 1, documentType: 1," + " createdDate: 1}", name = "locked_items_per_type")}) +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class ElasticsearchUpdateQueueItem extends AbstractRdcDomainObject { /* Domain Object Attributes */ @@ -48,10 +55,6 @@ public class ElasticsearchUpdateQueueItem extends AbstractRdcDomainObject { @NotNull private ElasticsearchUpdateQueueAction action; - - public ElasticsearchUpdateQueueItem() { - // default constructor for spring data - } /** * Construct a queue item with the mandatory params. @@ -65,76 +68,4 @@ public ElasticsearchUpdateQueueItem(String documentId, ElasticsearchType documen this.documentType = documentType; this.action = action; } - - /* - * (non-Javadoc) - * - * @see eu.dzhw.fdz.metadatamanagement.domain.AbstractRdcDomainObject#getId() - */ - @Override - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public ElasticsearchType getDocumentType() { - return documentType; - } - - public void setDocumentType(ElasticsearchType documentType) { - this.documentType = documentType; - } - - public String getDocumentId() { - return documentId; - } - - public void setDocumentId(String documentId) { - this.documentId = documentId; - } - - public LocalDateTime getUpdateStartedAt() { - return updateStartedAt; - } - - public void setUpdateStartedAt(LocalDateTime updateStartedAt) { - this.updateStartedAt = updateStartedAt; - } - - public ElasticsearchUpdateQueueAction getAction() { - return action; - } - - public void setAction(ElasticsearchUpdateQueueAction action) { - this.action = action; - } - - public String getUpdateStartedBy() { - return updateStartedBy; - } - - public void setUpdateStartedBy(String updateStartedBy) { - this.updateStartedBy = updateStartedBy; - } - - /* - * (non-Javadoc) - * - * @see eu.dzhw.fdz.metadatamanagement.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("documentType", documentType) - .add("documentId", documentId) - .add("updateStartedAt", updateStartedAt) - .add("action", action) - .add("updateStartedBy", updateStartedBy) - .toString(); - } - } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/repository/ElasticsearchUpdateQueueItemRepository.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/repository/ElasticsearchUpdateQueueItemRepository.java index 850847e29b..8791362d4c 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/repository/ElasticsearchUpdateQueueItemRepository.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/repository/ElasticsearchUpdateQueueItemRepository.java @@ -1,7 +1,6 @@ package eu.dzhw.fdz.metadatamanagement.searchmanagement.repository; import org.springframework.data.mongodb.repository.MongoRepository; -import org.springframework.data.querydsl.QueryDslPredicateExecutor; import org.springframework.stereotype.Repository; import eu.dzhw.fdz.metadatamanagement.searchmanagement.domain.ElasticsearchUpdateQueueAction; @@ -14,7 +13,6 @@ @Repository public interface ElasticsearchUpdateQueueItemRepository extends MongoRepository, - QueryDslPredicateExecutor, ElasticsearchUpdateQueueItemRepositoryCustom { ElasticsearchUpdateQueueItem findOneByDocumentTypeAndDocumentIdAndAction( diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/rest/SearchResource.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/rest/SearchResource.java index 1f4b6eb16c..33177dfa11 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/rest/SearchResource.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/rest/SearchResource.java @@ -8,8 +8,6 @@ import javax.servlet.http.HttpServletRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; @@ -40,15 +38,14 @@ import eu.dzhw.fdz.metadatamanagement.searchmanagement.service.ElasticsearchType; import eu.dzhw.fdz.metadatamanagement.searchmanagement.service.ElasticsearchUpdateQueueService; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; +import lombok.extern.slf4j.Slf4j; /** * REST controller for getting the search results. */ @RestController +@Slf4j public class SearchResource { - - private final Logger log = LoggerFactory.getLogger(SearchResource.class); - private RestTemplate restTemplate; private String connectionUrl; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchIndicesInitializer.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchIndicesInitializer.java index 23fd9c7e4c..89da75b473 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchIndicesInitializer.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchIndicesInitializer.java @@ -8,8 +8,6 @@ import javax.annotation.PostConstruct; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.core.io.ResourceLoader; @@ -22,6 +20,7 @@ import eu.dzhw.fdz.metadatamanagement.common.config.MetadataManagementProperties; import eu.dzhw.fdz.metadatamanagement.searchmanagement.domain.ElasticsearchIndicesVersion; import eu.dzhw.fdz.metadatamanagement.searchmanagement.repository.ElasticsearchIndicesVersionRepository; +import lombok.extern.slf4j.Slf4j; /** * Bean which recreates all elasticsearch indices on container start @@ -31,10 +30,8 @@ */ @Component @Profile("!" + Constants.SPRING_PROFILE_UNITTEST) +@Slf4j public class ElasticsearchIndicesInitializer { - - private final Logger log = LoggerFactory.getLogger(ElasticsearchIndicesInitializer.class); - @Autowired private ResourceLoader resourceLoader; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueService.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueService.java index 66e3b35bf0..b1a75c2204 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueService.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueService.java @@ -9,8 +9,6 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.NotImplementedException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DuplicateKeyException; import org.springframework.scheduling.annotation.Scheduled; @@ -57,6 +55,7 @@ import io.searchbox.core.Bulk.Builder; import io.searchbox.core.Delete; import io.searchbox.core.Index; +import lombok.extern.slf4j.Slf4j; /** * Service which manages asynchronous Elasticsearch updates as a FIFO queue. Inserting an item into @@ -67,10 +66,8 @@ * @author Daniel Katzberg */ @Service +@Slf4j public class ElasticsearchUpdateQueueService { - - private final Logger logger = LoggerFactory.getLogger(ElasticsearchUpdateQueueService.class); - // id used to synchronize multiple jvm instances private String jvmId = ManagementFactory.getRuntimeMXBean().getName(); @@ -132,7 +129,7 @@ public void enqueue(String documentId, ElasticsearchType documentType, queueItemRepository .insert(new ElasticsearchUpdateQueueItem(documentId, documentType, action)); } catch (DuplicateKeyException ex) { - logger.debug("Ignoring attempt to enqueue a duplicate action."); + log.debug("Ignoring attempt to enqueue a duplicate action."); } } @@ -141,7 +138,7 @@ public void enqueue(String documentId, ElasticsearchType documentType, */ @Scheduled(fixedRate = 1000 * 60, initialDelay = 1000 * 60) public void processAllQueueItems() { - logger.info("Starting processing of ElasticsearchUpdateQueue..."); + log.info("Starting processing of ElasticsearchUpdateQueue..."); LocalDateTime updateStart = LocalDateTime.now(); queueItemRepository.lockAllUnlockedOrExpiredItems(updateStart, jvmId); @@ -155,7 +152,7 @@ public void processAllQueueItems() { // check if there are more locked items to process lockedItems = queueItemRepository.findOldestLockedItems(jvmId, updateStart); } - logger.info("Finished processing of ElasticsearchUpdateQueue..."); + log.info("Finished processing of ElasticsearchUpdateQueue..."); } /** @@ -555,7 +552,7 @@ private void addUpsertActionForStudy(ElasticsearchUpdateQueueItem lockedItem, * @param type the type of items to be processed. */ public void processQueueItems(ElasticsearchType type) { - logger.info("Starting processing of ElasticsearchUpdateQueue for type: " + type.name()); + log.info("Starting processing of ElasticsearchUpdateQueue for type: " + type.name()); LocalDateTime updateStart = LocalDateTime.now(); queueItemRepository.lockAllUnlockedOrExpiredItemsByType(updateStart, jvmId, type); @@ -569,6 +566,6 @@ public void processQueueItems(ElasticsearchType type) { // check if there are more locked items to process lockedItems = queueItemRepository.findOldestLockedItemsByType(jvmId, updateStart, type); } - logger.info("Finished processing of ElasticsearchUpdateQueue for type: " + type.name()); + log.info("Finished processing of ElasticsearchUpdateQueue for type: " + type.name()); } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/Study.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/Study.java index 3940e8ac7d..523b9c88d7 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/Study.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/Study.java @@ -13,8 +13,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.Person; @@ -28,7 +26,12 @@ import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.validation.ValidStudyId; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.validation.ValidSurveyDesign; import io.searchbox.annotations.JestId; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * The study domain object represents a study. A study can has more than one release. @@ -38,9 +41,13 @@ * */ @Document(collection = "studies") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.studymanagement.domain.builders") -@ValidStudyId(message = "study-management.error.study.id.not-valid-id") +@ValidStudyId(message = "study-management.error.study.id.not-valid-id") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Study extends AbstractRdcDomainObject { @Id @@ -102,132 +109,9 @@ public class Study extends AbstractRdcDomainObject { @I18nStringSize(max = StringLengths.LARGE, message = "study-management.error.variable.annotations.i18n-string-size") private I18nString annotations; - - public Study() { - super(); - } public Study(Study study) { super(); BeanUtils.copyProperties(study, this); } - - @Override - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public I18nString getSurveySeries() { - return surveySeries; - } - - public void setSurveySeries(I18nString surveySeries) { - this.surveySeries = surveySeries; - } - - public I18nString getTitle() { - return title; - } - - public void setTitle(I18nString title) { - this.title = title; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public I18nString getInstitution() { - return institution; - } - - public void setInstitution(I18nString institution) { - this.institution = institution; - } - - public I18nString getSponsor() { - return sponsor; - } - - public void setSponsor(I18nString sponsor) { - this.sponsor = sponsor; - } - - public List getAuthors() { - return authors; - } - - public void setAuthors(List authors) { - this.authors = authors; - } - - /* - * (non-Javadoc) - * @see eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("title", title) - .add("description", description) - .add("institution", institution) - .add("surveySeries", surveySeries) - .add("sponsor", sponsor) - .add("authors", authors) - .add("dataAvailability", dataAvailability) - .add("surveyDesign", surveyDesign) - .add("dataAcquisitionProjectId", dataAcquisitionProjectId) - .add("annotations", annotations) - .toString(); - } - - public I18nString getDataAvailability() { - return dataAvailability; - } - - public void setDataAvailability(I18nString dataAvailability) { - this.dataAvailability = dataAvailability; - } - - public I18nString getSurveyDesign() { - return surveyDesign; - } - - public void setSurveyDesign(I18nString surveyDesign) { - this.surveyDesign = surveyDesign; - } - - public String getDoi() { - return doi; - } - - public void setDoi(String doi) { - this.doi = doi; - } - - public I18nString getAnnotations() { - return annotations; - } - - public void setAnnotations(I18nString annotations) { - this.annotations = annotations; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/StudyAttachmentMetadata.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/StudyAttachmentMetadata.java index cfab49c0f0..22b431cc5b 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/StudyAttachmentMetadata.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/StudyAttachmentMetadata.java @@ -12,13 +12,22 @@ import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.ValidIsoLanguage; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.validation.ValidStudyAttachmentType; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Metadata which will be stored in GridFS with each attachment for studies. */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.studymanagement.domain.builders") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class StudyAttachmentMetadata extends AbstractRdcDomainObject { @NotEmpty(message = "study-management.error.study-attachment-metadata.study-id.not-empty") @@ -62,73 +71,8 @@ public class StudyAttachmentMetadata extends AbstractRdcDomainObject { "study-management.error.study-attachment-metadata.language.not-supported") private String language; - public String getStudyId() { - return studyId; - } - - public void setStudyId(String studyId) { - this.studyId = studyId; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public Integer getIndexInStudy() { - return indexInStudy; - } - - public void setIndexInStudy(Integer indexInStudy) { - this.indexInStudy = indexInStudy; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public I18nString getType() { - return type; - } - - public void setType(I18nString type) { - this.type = type; - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - @Override public String getId() { return "/public/files/studies/" + studyId + "/attachments/" + fileName; - } - + } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/Survey.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/Survey.java index b7ec5ff8e6..eca858b8c0 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/Survey.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/Survey.java @@ -11,8 +11,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.Period; @@ -24,7 +22,12 @@ import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.validation.ValidSurveyIdName; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.validation.ValidUniqueSurveyNumber; import io.searchbox.annotations.JestId; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * A Survey. @@ -32,11 +35,15 @@ * @author Daniel Katzberg */ @Document(collection = "surveys") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.builders") @ValidSurveyIdName(message = "survey-management.error.survey.id.valid-survey-id-name") @ValidUniqueSurveyNumber(message = "survey-management.error" + ".survey.unique-survey-number") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Survey extends AbstractRdcDomainObject { @Id @@ -104,166 +111,8 @@ public class Survey extends AbstractRdcDomainObject { message = "variable-management.error.variable.annotations.i18n-string-size") private I18nString annotations; - public Survey() { - super(); - } - public Survey(Survey survey) { super(); BeanUtils.copyProperties(survey, this); } - - @Override - public String getId() { - return id; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public I18nString getTitle() { - return title; - } - - public void setTitle(I18nString title) { - this.title = title; - } - - public void setId(String id) { - this.id = id; - } - - public I18nString getPopulation() { - return population; - } - - public void setPopulation(I18nString population) { - this.population = population; - } - - public I18nString getSurveyMethod() { - return surveyMethod; - } - - public void setSurveyMethod(I18nString surveyMethod) { - this.surveyMethod = surveyMethod; - } - - public Integer getNumber() { - return number; - } - - public void setNumber(Integer number) { - this.number = number; - } - - /* - * (non-Javadoc) - * @see eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("title", title) - .add("fieldPeriod", fieldPeriod) - .add("dataAcquisitionProjectId", dataAcquisitionProjectId) - .add("population", population) - .add("sample", sample) - .add("surveyMethod", surveyMethod) - .add("grossSampleSize", grossSampleSize) - .add("sampleSize", sampleSize) - .add("responseRate", responseRate) - .add("number", number) - .add("studyId", studyId) - .add("annotations", annotations) - .add("wave", wave) - .add("dataType", dataType) - .toString(); - } - - public Period getFieldPeriod() { - return fieldPeriod; - } - - public void setFieldPeriod(Period fieldPeriod) { - this.fieldPeriod = fieldPeriod; - } - - public I18nString getSample() { - return sample; - } - - public void setSample(I18nString sample) { - this.sample = sample; - } - - public Integer getGrossSampleSize() { - return grossSampleSize; - } - - - public void setGrossSampleSize(Integer grossSampleSize) { - this.grossSampleSize = grossSampleSize; - } - - - public Integer getSampleSize() { - return sampleSize; - } - - - public void setSampleSize(Integer sampleSize) { - this.sampleSize = sampleSize; - } - - - public Double getResponseRate() { - return responseRate; - } - - - public void setResponseRate(Double responseRate) { - this.responseRate = responseRate; - } - - - public String getStudyId() { - return studyId; - } - - - public void setStudyId(String studyId) { - this.studyId = studyId; - } - - public I18nString getAnnotations() { - return annotations; - } - - public void setAnnotations(I18nString annotations) { - this.annotations = annotations; - } - - public Integer getWave() { - return wave; - } - - public void setWave(Integer wave) { - this.wave = wave; - } - - public I18nString getDataType() { - return dataType; - } - - public void setDataType(I18nString dataType) { - this.dataType = dataType; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/SurveyAttachmentMetadata.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/SurveyAttachmentMetadata.java index 360887a0a4..e4ff25bfac 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/SurveyAttachmentMetadata.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/domain/SurveyAttachmentMetadata.java @@ -11,14 +11,22 @@ import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.ValidIsoLanguage; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * Metadata which will be stored in GridFS with each attachment for surveys. - * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.builders") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class SurveyAttachmentMetadata extends AbstractRdcDomainObject { @NotEmpty(message = "survey-management.error.survey-attachment-metadata.survey-id.not-empty") @@ -64,68 +72,4 @@ public class SurveyAttachmentMetadata extends AbstractRdcDomainObject { public String getId() { return "/public/files/surveys/" + surveyId + "/attachments/" + fileName; } - - public String getSurveyId() { - return surveyId; - } - - public void setSurveyId(String surveyId) { - this.surveyId = surveyId; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public Integer getSurveyNumber() { - return surveyNumber; - } - - public void setSurveyNumber(Integer surveyNumber) { - this.surveyNumber = surveyNumber; - } - - public Integer getIndexInSurvey() { - return indexInSurvey; - } - - public void setIndexInSurvey(Integer indexInSurvey) { - this.indexInSurvey = indexInSurvey; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/User.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/User.java index 241e7bcb21..1cef589e39 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/User.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/User.java @@ -2,7 +2,6 @@ import java.io.Serializable; import java.time.LocalDateTime; -import java.util.HashSet; import java.util.Set; import javax.validation.constraints.NotNull; @@ -18,13 +17,23 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * A user. */ @Document(collection = "jhi_user") -@GeneratePojoBuilder(intoPackage = "eu.dzhw.fdz.metadatamanagement.usermanagement.domain.builders") +@Data +@EqualsAndHashCode(callSuper = false, of = "login") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class User extends AbstractRdcDomainObject implements Serializable { private static final long serialVersionUID = 1L; @@ -56,6 +65,7 @@ public class User extends AbstractRdcDomainObject implements Serializable { @Indexed(unique = true) private String email; + @Builder.Default private boolean activated = false; @Size(min = 2, max = 5) @@ -72,140 +82,9 @@ public class User extends AbstractRdcDomainObject implements Serializable { private String resetKey; @Field("reset_date") + @Builder.Default private LocalDateTime resetDate = null; @JsonIgnore - private Set authorities = new HashSet<>(); - - @Override - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getLogin() { - return login; - } - - public void setLogin(String login) { - this.login = login; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public boolean getActivated() { - return activated; - } - - public void setActivated(boolean activated) { - this.activated = activated; - } - - public String getActivationKey() { - return activationKey; - } - - public void setActivationKey(String activationKey) { - this.activationKey = activationKey; - } - - public String getResetKey() { - return resetKey; - } - - public void setResetKey(String resetKey) { - this.resetKey = resetKey; - } - - public LocalDateTime getResetDate() { - return resetDate; - } - - public void setResetDate(LocalDateTime resetDate) { - this.resetDate = resetDate; - } - - public String getLangKey() { - return langKey; - } - - public void setLangKey(String langKey) { - this.langKey = langKey; - } - - public Set getAuthorities() { - return authorities; - } - - public void setAuthorities(Set authorities) { - this.authorities = authorities; - } - - @Override - public boolean equals(Object object) { - if (this == object) { - return true; - } - if (object == null || getClass() != object.getClass()) { - return false; - } - - User user = (User) object; - - if (login != null && !login.equals(user.login)) { - return false; - } - - return true; - } - - @Override - public int hashCode() { - - if (login == null) { - return 0; - } - - return login.hashCode(); - } - - @Override - public String toString() { - return "User{" + "login='" + login + '\'' + ", firstName='" + firstName + '\'' + ", lastName='" - + lastName + '\'' + ", email='" + email + '\'' + ", activated='" + activated + '\'' - + ", langKey='" + langKey + '\'' + ", activationKey='" + activationKey + '\'' + "}"; - } + private Set authorities; } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/AccountResource.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/AccountResource.java index 6503c43571..58f09442f4 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/AccountResource.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/AccountResource.java @@ -7,8 +7,6 @@ import javax.validation.Valid; import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -30,16 +28,15 @@ import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.SecurityUtils; import eu.dzhw.fdz.metadatamanagement.usermanagement.service.UserService; +import lombok.extern.slf4j.Slf4j; /** * REST controller for managing the current user's account. */ @RestController @RequestMapping("/api") +@Slf4j public class AccountResource { - - private final Logger log = LoggerFactory.getLogger(AccountResource.class); - @Autowired private UserRepository userRepository; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResource.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResource.java index a0b0fd3136..1fec8c47a6 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResource.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResource.java @@ -6,8 +6,6 @@ import java.util.Set; import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -32,6 +30,7 @@ import eu.dzhw.fdz.metadatamanagement.usermanagement.rest.dto.ManagedUserDto; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; import eu.dzhw.fdz.metadatamanagement.usermanagement.service.UserService; +import lombok.extern.slf4j.Slf4j; /** * REST controller for managing users. @@ -64,10 +63,8 @@ */ @RestController @RequestMapping("/api") +@Slf4j public class UserResource { - - private final Logger log = LoggerFactory.getLogger(UserResource.class); - @Autowired private UserRepository userRepository; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/dto/UserDto.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/dto/UserDto.java index 7d7a1635aa..fb5c95fe75 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/dto/UserDto.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/dto/UserDto.java @@ -53,7 +53,7 @@ public UserDto() {} */ public UserDto(User user) { this(user.getLogin(), null, user.getFirstName(), user.getLastName(), user.getEmail(), - user.getActivated(), user.getLangKey(), user.getAuthorities() + user.isActivated(), user.getLangKey(), user.getAuthorities() .stream() .map(Authority::getName) .collect(Collectors.toSet())); diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/Http401UnauthorizedEntryPoint.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/Http401UnauthorizedEntryPoint.java index 212ff57ec0..bfc1294d09 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/Http401UnauthorizedEntryPoint.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/Http401UnauthorizedEntryPoint.java @@ -6,20 +6,18 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.stereotype.Component; +import lombok.extern.slf4j.Slf4j; + /** * Returns a 401 error code (Unauthorized) to the client. */ @Component +@Slf4j public class Http401UnauthorizedEntryPoint implements AuthenticationEntryPoint { - - private final Logger log = LoggerFactory.getLogger(Http401UnauthorizedEntryPoint.class); - /** * Always returns a 401 error code to the client. */ diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/UserDetailsServiceImpl.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/UserDetailsServiceImpl.java index 8df6578569..4a7615eef0 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/UserDetailsServiceImpl.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/security/UserDetailsServiceImpl.java @@ -4,8 +4,6 @@ import java.util.Set; import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.security.core.GrantedAuthority; @@ -18,15 +16,14 @@ import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.User; import eu.dzhw.fdz.metadatamanagement.usermanagement.repository.UserRepository; +import lombok.extern.slf4j.Slf4j; /** * Authenticate a user from the database. */ @Component("userDetailsService") +@Slf4j public class UserDetailsServiceImpl implements UserDetailsService { - - private final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class); - @Autowired private UserRepository userRepository; @@ -37,7 +34,7 @@ public UserDetails loadUserByUsername(final String login) { String lowercaseLogin = login.toLowerCase(LocaleContextHolder.getLocale()); Optional userFromDatabase = userRepository.findOneByLogin(lowercaseLogin); return userFromDatabase.map(user -> { - if (!user.getActivated()) { + if (!user.isActivated()) { throw new UserNotActivatedException("User " + lowercaseLogin + " was not activated"); } Set grantedAuthorities = user.getAuthorities() diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserService.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserService.java index 42cda79b49..18ebd4feca 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserService.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserService.java @@ -6,8 +6,6 @@ import java.util.Optional; import java.util.Set; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.security.crypto.password.PasswordEncoder; @@ -20,15 +18,14 @@ import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.SecurityUtils; import eu.dzhw.fdz.metadatamanagement.usermanagement.service.util.RandomUtil; +import lombok.extern.slf4j.Slf4j; /** * Service class for managing users. */ @Service +@Slf4j public class UserService { - - private final Logger log = LoggerFactory.getLogger(UserService.class); - @Autowired private PasswordEncoder passwordEncoder; @@ -81,7 +78,7 @@ public Optional completePasswordReset(String newPassword, String key) { */ public Optional requestPasswordReset(String mail) { return userRepository.findOneByEmail(mail) - .filter(user -> user.getActivated()) + .filter(user -> user.isActivated()) .map(user -> { user.setResetKey(RandomUtil.generateResetKey()); user.setResetDate(LocalDateTime.now()); @@ -167,7 +164,7 @@ public User getUserWithAuthorities(String id) { User user = userRepository.findOne(id); int size = user.getAuthorities() .size(); // eagerly load the association - this.log.debug("user.getAuthorities().size() = " + size); + log.debug("user.getAuthorities().size() = " + size); return user; } @@ -180,7 +177,7 @@ public User getUserWithAuthorities() { .get(); int size = user.getAuthorities() .size(); // eagerly load the association - this.log.debug("user.getAuthorities().size() = " + size); + log.debug("user.getAuthorities().size() = " + size); return user; } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/websocket/UserMessagesController.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/websocket/UserMessagesController.java index 6cc755da6c..1cc56448c3 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/websocket/UserMessagesController.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/usermanagement/websocket/UserMessagesController.java @@ -1,7 +1,5 @@ package eu.dzhw.fdz.metadatamanagement.usermanagement.websocket; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.messaging.handler.annotation.Header; import org.springframework.messaging.handler.annotation.MessageMapping; @@ -14,6 +12,7 @@ import org.springframework.stereotype.Controller; import eu.dzhw.fdz.metadatamanagement.usermanagement.websocket.dto.MessageDto; +import lombok.extern.slf4j.Slf4j; /** * Controller for sending messages via websockets to users. @@ -21,10 +20,8 @@ * @author René Reitmann */ @Controller +@Slf4j public class UserMessagesController { - - private final Logger log = LoggerFactory.getLogger(UserMessagesController.class); - @Autowired private TokenStore tokenStore; diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Distribution.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Distribution.java index f3f003ad25..e37a7fd1c2 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Distribution.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Distribution.java @@ -5,11 +5,12 @@ import javax.validation.Valid; import javax.validation.constraints.NotNull; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.UniqueCode; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.UniqueValue; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * Domain object of the ValueSummary. Represent sums for all values of the variable. @@ -17,8 +18,10 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Distribution { @NotNull(message = @@ -50,81 +53,4 @@ public class Distribution { "variable-management.error.distribution.valid-responses.unique-value") @Valid private List validResponses; - - - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("totalAbsoluteFrequency", totalAbsoluteFrequency) - .add("totalValidAbsoluteFrequency", totalValidAbsoluteFrequency) - .add("totalValidRelativeFrequency", totalValidRelativeFrequency) - .add("histogram", histogram) - .add("statistics", statistics) - .add("missings", missings) - .add("validResponses", validResponses) - .toString(); - } - - /* - * GETTER / SETTER - */ - public Integer getTotalAbsoluteFrequency() { - return totalAbsoluteFrequency; - } - - public void setTotalAbsoluteFrequency(Integer totalAbsoluteFrequency) { - this.totalAbsoluteFrequency = totalAbsoluteFrequency; - } - - public Integer getTotalValidAbsoluteFrequency() { - return totalValidAbsoluteFrequency; - } - - public void setTotalValidAbsoluteFrequency(Integer totalValidAbsoluteFrequency) { - this.totalValidAbsoluteFrequency = totalValidAbsoluteFrequency; - } - - public Double getTotalValidRelativeFrequency() { - return totalValidRelativeFrequency; - } - - public void setTotalValidRelativeFrequency(Double totalValidRelativeFrequency) { - this.totalValidRelativeFrequency = totalValidRelativeFrequency; - } - - public Statistics getStatistics() { - return statistics; - } - - public void setStatistics(Statistics statistics) { - this.statistics = statistics; - } - - public List getMissings() { - return missings; - } - - public void setMissings(List missings) { - this.missings = missings; - } - - public List getValidResponses() { - return validResponses; - } - - public void setValidResponses(List validResponses) { - this.validResponses = validResponses; - } - - public Histogram getHistogram() { - return histogram; - } - - public void setHistogram(Histogram histogram) { - this.histogram = histogram; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetails.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetails.java index 11e59113e1..1545bd17d6 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetails.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetails.java @@ -4,13 +4,14 @@ import org.hibernate.validator.constraints.NotEmpty; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.ValidFilterExpressionLanguage; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * FilterDetails of variable. @@ -18,8 +19,10 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class FilterDetails { @NotEmpty(message = "variable-management.error.filter-details.expression.not-empty") @@ -37,42 +40,4 @@ public class FilterDetails { message = "variable-management.error.filter-details." + "expression-language.valid-filter-expression-language") private String expressionLanguage; - - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("expression", expression) - .add("description", description) - .add("expressionLanguage", expressionLanguage) - .toString(); - } - - /* GETTER / SETTER */ - public String getExpression() { - return expression; - } - - public void setExpression(String expression) { - this.expression = expression; - } - - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public String getExpressionLanguage() { - return expressionLanguage; - } - - public void setExpressionLanguage(String expressionLanguage) { - this.expressionLanguage = expressionLanguage; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetails.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetails.java index c482613287..e44ed02e74 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetails.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetails.java @@ -2,15 +2,16 @@ import javax.validation.constraints.Size; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.NotEmptyGenerationDetailsDescriptionOrRule; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.RuleExpressionLanguageAndRuleFilledOrEmpty; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.ValidRuleExpressionLanguage; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * Generation Details. @@ -18,14 +19,16 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") @NotEmptyGenerationDetailsDescriptionOrRule( message = "variable-management.error.generation-details." + "not-empty-generation-details-description-or-rule") @RuleExpressionLanguageAndRuleFilledOrEmpty( message = "variable-management.error.generation-details." + "rule-expression-language-and-rule-filled-or-empty") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class GenerationDetails { @I18nStringSize(max = StringLengths.LARGE, @@ -40,43 +43,4 @@ public class GenerationDetails { message = "variable-management.error.generation-details." + "rule-expression-language.valid-rule-expression-language") private String ruleExpressionLanguage; - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("description", description) - .add("rule", rule) - .add("ruleExpressionLanguage", ruleExpressionLanguage) - .toString(); - } - - /* GETTER / SETTER */ - public I18nString getDescription() { - return description; - } - - public void setDescription(I18nString description) { - this.description = description; - } - - public String getRule() { - return rule; - } - - public void setRule(String rule) { - this.rule = rule; - } - - public String getRuleExpressionLanguage() { - return ruleExpressionLanguage; - } - - public void setRuleExpressionLanguage(String ruleExpressionLanguage) { - this.ruleExpressionLanguage = ruleExpressionLanguage; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Histogram.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Histogram.java index b2e9f6ca91..899119f7c1 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Histogram.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Histogram.java @@ -1,8 +1,9 @@ package eu.dzhw.fdz.metadatamanagement.variablemanagement.domain; -import com.google.common.base.MoreObjects; - -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * Representation of data for a histogram. @@ -10,8 +11,10 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Histogram { private Integer numberOfBins; @@ -19,43 +22,4 @@ public class Histogram { private Double start; private Double end; - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("numberOfBins", numberOfBins) - .add("start", start) - .add("end", end) - .toString(); - } - - /* GETTER / SETTER */ - public Integer getNumberOfBins() { - return numberOfBins; - } - - public void setNumberOfBins(Integer numberOfBins) { - this.numberOfBins = numberOfBins; - } - - public Double getStart() { - return start; - } - - public void setStart(Double start) { - this.start = start; - } - - public Double getEnd() { - return end; - } - - public void setEnd(Double end) { - this.end = end; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Missing.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Missing.java index d19b3a1f03..2894397473 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Missing.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Missing.java @@ -5,12 +5,13 @@ import org.hibernate.validator.constraints.NotEmpty; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * The missing includes a code, a label and frequencies. There are no calculations of the @@ -19,8 +20,10 @@ * * @author Daniel Katzberg */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Missing { @NotEmpty(message = "variable-management.error.missing.code.not-null") @@ -35,52 +38,4 @@ public class Missing { @NotNull(message = "variable-management.error.missing.relative-frequency.not-null") private Double relativeFrequency; - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("code", code) - .add("label", label) - .add("absoluteFrequency", absoluteFrequency) - .add("relativeFrequency", relativeFrequency) - .toString(); - } - - /* GETTER / SETTER */ - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public I18nString getLabel() { - return label; - } - - public void setLabel(I18nString label) { - this.label = label; - } - - public Integer getAbsoluteFrequency() { - return absoluteFrequency; - } - - public void setAbsoluteFrequency(Integer absoluteFrequency) { - this.absoluteFrequency = absoluteFrequency; - } - - public Double getRelativeFrequency() { - return relativeFrequency; - } - - public void setRelativeFrequency(Double relativeFrequency) { - this.relativeFrequency = relativeFrequency; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/RelatedQuestion.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/RelatedQuestion.java index bf284adde1..e6134d8e70 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/RelatedQuestion.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/RelatedQuestion.java @@ -5,12 +5,13 @@ import org.hibernate.validator.constraints.NotEmpty; import org.springframework.data.mongodb.core.index.Indexed; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * The related Question includes the references to the question and instrument. This is a sub @@ -19,8 +20,10 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class RelatedQuestion { /* Domain Object listed attributes */ @@ -47,61 +50,4 @@ public class RelatedQuestion { @Indexed private String instrumentId; - - - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("instrumentNumber", instrumentNumber) - .add("questionNumber", questionNumber) - .add("questionId", questionId) - .add("instrumentId", instrumentId) - .add("relatedQuestionStrings", relatedQuestionStrings) - .toString(); - } - - /* GETTER / SETTER */ - public String getInstrumentNumber() { - return instrumentNumber; - } - - public void setInstrumentNumber(String instrumentNumber) { - this.instrumentNumber = instrumentNumber; - } - - public String getQuestionNumber() { - return questionNumber; - } - - public void setQuestionNumber(String questionNumber) { - this.questionNumber = questionNumber; - } - - public String getQuestionId() { - return questionId; - } - - public void setQuestionId(String questionId) { - this.questionId = questionId; - } - - public String getInstrumentId() { - return instrumentId; - } - - public void setInstrumentId(String instrumentId) { - this.instrumentId = instrumentId; - } - - public I18nString getRelatedQuestionStrings() { - return relatedQuestionStrings; - } - - public void setRelatedQuestionStrings(I18nString relatedQuestionStrings) { - this.relatedQuestionStrings = relatedQuestionStrings; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Statistics.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Statistics.java index c9b27ee5f3..b7da1bf86d 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Statistics.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Statistics.java @@ -2,10 +2,11 @@ import javax.validation.constraints.Size; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * This statics class has statistical information about a variable. The information of this class @@ -14,8 +15,10 @@ * @author Daniel Katzberg * */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Statistics { private Double meanValue; @@ -55,141 +58,4 @@ public class Statistics { private Double deviance; private Double meanDeviation; - - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("meanValue", meanValue) - .add("minimum", minimum) - .add("maximum", maximum) - .add("skewness", skewness) - .add("kurtosis", kurtosis) - .add("median", median) - .add("standardDeviation", standardDeviation) - .add("firstQuartile", firstQuartile) - .add("thirdQuartile", thirdQuartile) - .add("lowWhisker", lowWhisker) - .add("highWhisker", highWhisker) - .add("mode", mode) - .add("deviance", deviance) - .add("meanDeviation", meanDeviation) - .toString(); - } - - /* GETTER / SETTER */ - public Double getMeanValue() { - return meanValue; - } - - public void setMeanValue(Double meanValue) { - this.meanValue = meanValue; - } - - public Double getSkewness() { - return skewness; - } - - public void setSkewness(Double skewness) { - this.skewness = skewness; - } - - public Double getKurtosis() { - return kurtosis; - } - - public void setKurtosis(Double kurtosis) { - this.kurtosis = kurtosis; - } - - public Double getStandardDeviation() { - return standardDeviation; - } - - public void setStandardDeviation(Double standardDeviation) { - this.standardDeviation = standardDeviation; - } - - public Double getLowWhisker() { - return lowWhisker; - } - - public void setLowWhisker(Double lowWhisker) { - this.lowWhisker = lowWhisker; - } - - public Double getHighWhisker() { - return highWhisker; - } - - public void setHighWhisker(Double highWhisker) { - this.highWhisker = highWhisker; - } - - public String getMode() { - return mode; - } - - public void setMode(String mode) { - this.mode = mode; - } - - public Double getDeviance() { - return deviance; - } - - public void setDeviance(Double deviance) { - this.deviance = deviance; - } - - public Double getMeanDeviation() { - return meanDeviation; - } - - public void setMeanDeviation(Double meanDeviation) { - this.meanDeviation = meanDeviation; - } - - public String getMinimum() { - return minimum; - } - - public void setMinimum(String minimum) { - this.minimum = minimum; - } - - public String getMaximum() { - return maximum; - } - - public void setMaximum(String maximum) { - this.maximum = maximum; - } - - public String getMedian() { - return median; - } - - public void setMedian(String median) { - this.median = median; - } - - public String getFirstQuartile() { - return firstQuartile; - } - - public void setFirstQuartile(String firstQuartile) { - this.firstQuartile = firstQuartile; - } - - public String getThirdQuartile() { - return thirdQuartile; - } - - public void setThirdQuartile(String thirdQuartile) { - this.thirdQuartile = thirdQuartile; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/StorageTypes.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/StorageTypes.java new file mode 100644 index 0000000000..5c85ada0a9 --- /dev/null +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/StorageTypes.java @@ -0,0 +1,43 @@ +package eu.dzhw.fdz.metadatamanagement.variablemanagement.domain; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +/** + * The DataType enumeration. + */ +public class StorageTypes { + + public static final String LOGICAL = "logical"; + public static final String INTEGER = "integer"; + public static final String DOUBLE = "double"; + public static final String COMPLEX = "complex"; + public static final String CHARACTER = "character"; + public static final String RAW = "raw"; + public static final String LIST = "list"; + public static final String NULL = "null"; + public static final String CLOSURE = "closure"; + public static final String SPECIAL = "special"; + public static final String BUILTIN = "builtin"; + public static final String ENVIRONMENT = "environment"; + public static final String S4 = "S4"; + public static final String SYMBOL = "symbol"; + public static final String PROMISE = "promise"; + public static final String PAIRLIST = "pairlist"; + public static final String LANGUAGE = "language"; + public static final String CHAR = "char"; + public static final String DOTDOTDOT = "..."; + public static final String ANY = "any"; + public static final String EXPRESSION = "expression"; + public static final String EXTERNALPTR = "externalptr"; + public static final String BYTECODE = "bytecode"; + public static final String WEAKREF = "weakref"; + public static final Set ALL = + Collections.unmodifiableSet(new HashSet(Arrays.asList( + LOGICAL, INTEGER, DOUBLE, COMPLEX, CHARACTER, RAW, LIST, NULL, + CLOSURE, SPECIAL, BUILTIN, ENVIRONMENT, S4, SYMBOL, PROMISE, PAIRLIST, + LANGUAGE, CHAR, DOTDOTDOT, ANY, EXPRESSION, EXTERNALPTR, BYTECODE, + WEAKREF))); +} diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/ValidResponse.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/ValidResponse.java index 701f3eff03..2716e10b52 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/ValidResponse.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/ValidResponse.java @@ -6,12 +6,13 @@ import org.hibernate.validator.constraints.NotEmpty; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.I18nStringSize; import eu.dzhw.fdz.metadatamanagement.common.domain.validation.StringLengths; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** * The value includes the value itself, a label and frequencies. There are no calculations of the @@ -19,8 +20,10 @@ * * @author Daniel Katzberg */ -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class ValidResponse { @I18nStringSize(max = StringLengths.LARGE, @@ -43,61 +46,4 @@ public class ValidResponse { @NotNull( message = "variable-management.error.valid-response.validRelativeFrequency.not-null") private Double validRelativeFrequency; - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("label", label) - .add("absoluteFrequency", absoluteFrequency) - .add("relativeFrequency", relativeFrequency) - .add("value", value) - .add("validRelativeFrequency", validRelativeFrequency) - .toString(); - } - - /* GETTER / SETTER */ - public I18nString getLabel() { - return label; - } - - public void setLabel(I18nString label) { - this.label = label; - } - - public Integer getAbsoluteFrequency() { - return absoluteFrequency; - } - - public void setAbsoluteFrequency(Integer absoluteFrequency) { - this.absoluteFrequency = absoluteFrequency; - } - - public Double getRelativeFrequency() { - return relativeFrequency; - } - - public void setRelativeFrequency(Double relativeFrequency) { - this.relativeFrequency = relativeFrequency; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public Double getValidRelativeFrequency() { - return validRelativeFrequency; - } - - public void setValidRelativeFrequency(Double validRelativeFrequency) { - this.validRelativeFrequency = validRelativeFrequency; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Variable.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Variable.java index 2136d804aa..84b4d784eb 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Variable.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/Variable.java @@ -15,8 +15,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; -import com.google.common.base.MoreObjects; - import eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.util.Patterns; @@ -42,9 +40,15 @@ import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.ValidResponseValueMustBeANumberOnNumericDataType; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.ValidResponseValueMustBeAnIsoDateOnDateDataType; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.ValidScaleLevel; +import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.ValidStorageType; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation.ValidVariableIdName; import io.searchbox.annotations.JestId; -import net.karneim.pojobuilder.GeneratePojoBuilder; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; //validation for scalelevel ration //TODO DKatzberg delete late: @MandatoryHistogramOnRatioScaleLevel( @@ -56,15 +60,13 @@ * @author Daniel Katzberg */ @Document(collection = "variables") -@GeneratePojoBuilder( - intoPackage = "eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders") @CompoundIndexes({ @CompoundIndex(def = "{name: 1, dataSetId: 1}", unique = true), @CompoundIndex(def = "{indexInDataSet: 1, dataSetId: 1}", unique = false) }) @ValidVariableIdName(message = "variable-management.error.variable.valid-variable-name") @ValidPanelIdentifier(message = "variable-management.error.variable.valid-panel-identifier") -@ValidDerivedVariablesIdentifier(message = +@ValidDerivedVariablesIdentifier(message = "variable-management.error.variable.valid-derived-variables-identifier") @UniqueVariableNameInDataSet(message = "variable-management.error." + "variable.unique-variable-name-in-data-set") @@ -105,6 +107,12 @@ @StatisticsThirdQuartileMustBeANumberOnNumericDataType( message = "variable-management.error.variable." + "statistics-third-quartile-must-be-a-number-on-numeric-data-type") +@Data +@EqualsAndHashCode(callSuper = false, of = "id") +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder public class Variable extends AbstractRdcDomainObject { @Id @JestId @@ -114,31 +122,31 @@ public class Variable extends AbstractRdcDomainObject { @Pattern(regexp = Patterns.GERMAN_ALPHANUMERIC_WITH_UNDERSCORE_AND_MINUS_AND_DOLLAR, message = "variable-management.error.variable.id.pattern") private String id; - + @Indexed @NotEmpty(message = "variable-management.error.variable.data-acquisition-project.id.not-empty") private String dataAcquisitionProjectId; - + @NotEmpty(message = "variable-management.error.variable.name.not-empty") @Size(max = StringLengths.SMALL, message = "variable-management.error.variable.name.size") @Pattern(regexp = Patterns.ALPHANUMERIC_WITH_UNDERSCORE_NO_NUMBER_AS_FIRST_SIGN, message = "variable-management.error.variable.name.pattern") private String name; - + @NotNull(message = "variable-management.error.variable.label.not-null") @I18nStringSize(max = StringLengths.MEDIUM, message = "variable-management.error.variable.label.i18n-string-size") @I18nStringNotEmpty(message = "variable-management.error.variable.label.i18n-string-not-empty") private I18nString label; - + @I18nStringSize(max = StringLengths.LARGE, message = "variable-management.error.variable.annotations.i18n-string-size") private I18nString annotations; - + @Indexed @NotEmpty(message = "variable-management.error.variable.data-set-id-not-empty") private String dataSetId; - + @NotNull(message = "variable-management.error.variable.data-set-number-not-null") private Integer dataSetNumber; @@ -146,6 +154,10 @@ public class Variable extends AbstractRdcDomainObject { @ValidDataType(message = "variable-management.error.variable.data-type.valid-data-type") private I18nString dataType; + @NotNull(message = "variable-management.error.variable.storage-type.not-null") + @ValidStorageType(message = "variable-management.error.variable.storage-type.valid-storage-type") + private String storageType; + @NotNull(message = "variable-management.error.variable.scaleLevel.not-null") @ValidScaleLevel( message = "variable-management.error.variable.scaleLevel.valid-scale-level") @@ -158,19 +170,19 @@ public class Variable extends AbstractRdcDomainObject { private List accessWays; private List relatedVariables; - + @NotNull(message = "variable-management.error.variable.data-set-index-not-null") private Integer indexInDataSet; - + @NotEmpty(message = "variable-management.error.variable.survey-numbers-not-empty") private List surveyNumbers; - + @Size(max = StringLengths.MEDIUM, message = "variable-management.error.variable.panel-identifier-size") @Pattern(regexp = Patterns.GERMAN_ALPHANUMERIC_WITH_UNDERSCORE_AND_MINUS, message = "variable-management.error.variable.panel-identifier-pattern") private String panelIdentifier; - + @Size(max = StringLengths.MEDIUM, message = "variable-management.error.variable.derived-variables-identifier-size") @Pattern(regexp = Patterns.GERMAN_ALPHANUMERIC_WITH_UNDERSCORE_AND_MINUS, @@ -186,10 +198,12 @@ public class Variable extends AbstractRdcDomainObject { @Valid private Distribution distribution; - + @Valid private List relatedQuestions; + private Boolean doNotDisplayThousandsSeparator = false; + /* Foreign Keys */ @Indexed @NotEmpty(message = "variable-management.error.variable.study-id.not-empty") @@ -198,220 +212,8 @@ public class Variable extends AbstractRdcDomainObject { @Indexed private List surveyIds; - public Variable() { - super(); - } - public Variable(Variable variable) { super(); BeanUtils.copyProperties(variable, this); } - - @Override - public String getId() { - return id; - } - - public String getDataAcquisitionProjectId() { - return dataAcquisitionProjectId; - } - - public void setDataAcquisitionProjectId(String dataAcquisitionProjectId) { - this.dataAcquisitionProjectId = dataAcquisitionProjectId; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public I18nString getLabel() { - return label; - } - - public void setLabel(I18nString label) { - this.label = label; - } - - public I18nString getAnnotations() { - return annotations; - } - - public void setAnnotations(I18nString annotations) { - this.annotations = annotations; - } - - public void setId(String id) { - this.id = id; - } - - public String getDataSetId() { - return dataSetId; - } - - public void setDataSetId(String dataSetId) { - this.dataSetId = dataSetId; - } - - - public Integer getDataSetNumber() { - return dataSetNumber; - } - - public void setDataSetNumber(Integer dataSetNumber) { - this.dataSetNumber = dataSetNumber; - } - - /* - * (non-Javadoc) - * @see eu.dzhw.fdz.metadatamanagement.common.domain.AbstractRdcDomainObject#toString() - */ - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("super", super.toString()) - .add("id", id) - .add("dataType", dataType) - .add("scaleLevel", scaleLevel) - .add("name", name) - .add("label", label) - .add("annotations", annotations) - .add("accessWays", accessWays) - .add("relatedVariables", relatedVariables) - .add("dataSetId", dataSetId) - .add("dataSetNumber", dataSetNumber) - .add("indexInDataSet", indexInDataSet) - .add("surveyNumbers", surveyNumbers) - .add("filterDetails", filterDetails) - .add("generationDetails", generationDetails) - .add("distribution", distribution) - .add("dataAcquisitionProjectId", dataAcquisitionProjectId) - .add("studyId", studyId) - .add("surveyIds", surveyIds) - .add("relatedQuestions",relatedQuestions) - .add("panelIdentifier", panelIdentifier) - .add("derivedVariablesIdentifier", derivedVariablesIdentifier) - .toString(); - } - - /* GETTER / SETTER */ - public I18nString getDataType() { - return dataType; - } - - public void setDataType(I18nString dataType) { - this.dataType = dataType; - } - - public I18nString getScaleLevel() { - return scaleLevel; - } - - public void setScaleLevel(I18nString scaleLevel) { - this.scaleLevel = scaleLevel; - } - - public List getAccessWays() { - return accessWays; - } - - public void setAccessWays(List accessWays) { - this.accessWays = accessWays; - } - - public GenerationDetails getGenerationDetails() { - return generationDetails; - } - - public void setGenerationDetails(GenerationDetails generationDetails) { - this.generationDetails = generationDetails; - } - - public FilterDetails getFilterDetails() { - return filterDetails; - } - - public void setFilterDetails(FilterDetails filterDetails) { - this.filterDetails = filterDetails; - } - - public List getSurveyIds() { - return surveyIds; - } - - public void setSurveyIds(List surveyIds) { - this.surveyIds = surveyIds; - } - - public Distribution getDistribution() { - return distribution; - } - - public void setDistribution(Distribution distribution) { - this.distribution = distribution; - } - - public List getRelatedVariables() { - return relatedVariables; - } - - public void setRelatedVariables(List relatedVariables) { - this.relatedVariables = relatedVariables; - } - - public Integer getIndexInDataSet() { - return indexInDataSet; - } - - - public void setIndexInDataSet(Integer indexInDataSet) { - this.indexInDataSet = indexInDataSet; - } - - - public List getSurveyNumbers() { - return surveyNumbers; - } - - - public void setSurveyNumbers(List surveyNumbers) { - this.surveyNumbers = surveyNumbers; - } - - public List getRelatedQuestions() { - return relatedQuestions; - } - - public void setRelatedQuestions(List relatedQuestions) { - this.relatedQuestions = relatedQuestions; - } - - - public String getPanelIdentifier() { - return panelIdentifier; - } - - - public void setPanelIdentifier(String panelIdentifier) { - this.panelIdentifier = panelIdentifier; - } - - public String getStudyId() { - return studyId; - } - - public void setStudyId(String studyId) { - this.studyId = studyId; - } - - public String getDerivedVariablesIdentifier() { - return derivedVariablesIdentifier; - } - - public void setDerivedVariablesIdentifier(String derivedVariablesIdentifier) { - this.derivedVariablesIdentifier = derivedVariablesIdentifier; - } } diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/UniqueValueValidator.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/UniqueValueValidator.java index 4334fdbf2e..340d1564cd 100644 --- a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/UniqueValueValidator.java +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/UniqueValueValidator.java @@ -6,21 +6,17 @@ import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.ValidResponse; +import lombok.extern.slf4j.Slf4j; /** * Ensure that value.valueClass is unique within the variable. * * @author René Reitmann */ +@Slf4j public class UniqueValueValidator implements ConstraintValidator> { - - private final Logger log = LoggerFactory.getLogger(UniqueValueValidator.class); - /* * (non-Javadoc) * diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/ValidStorageType.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/ValidStorageType.java new file mode 100644 index 0000000000..83df66c61f --- /dev/null +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/ValidStorageType.java @@ -0,0 +1,36 @@ +package eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import javax.validation.Constraint; +import javax.validation.Payload; + +/** + * Annotation for the validation of storage types. + * Only values of the {@link StorageTypes} are allowed. * + */ +@Documented +@Constraint(validatedBy = {ValidStorageTypeValidator.class}) +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface ValidStorageType { + /** + * Defines the default error message. + */ + String message() default "{eu.dzhw.fdz.metadatamanagement.domain.validation." + + "validstoragetype.message}"; + + /** + * This contains groups. + */ + Class[] groups() default {}; + + /** + * This method contains the payload. + */ + Class[] payload() default {}; +} diff --git a/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/ValidStorageTypeValidator.java b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/ValidStorageTypeValidator.java new file mode 100644 index 0000000000..a2c6b28a1b --- /dev/null +++ b/src/main/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/validation/ValidStorageTypeValidator.java @@ -0,0 +1,35 @@ +package eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.validation; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.StorageTypes; + +/** + * Validator for the storage type of a variable. Only valued from the {@link StorageTypes} class are + * allowed. + */ +public class ValidStorageTypeValidator implements ConstraintValidator { + + /* + * (non-Javadoc) + * + * @see javax.validation.ConstraintValidator#initialize(java.lang.annotation.Annotation) + */ + @Override + public void initialize(ValidStorageType constraintAnnotation) {} + + /* + * (non-Javadoc) + * + * @see javax.validation.ConstraintValidator#isValid(java.lang.Object, + * javax.validation.ConstraintValidatorContext) + */ + @Override + public boolean isValid(String storageType, ConstraintValidatorContext context) { + + // check for storage types + return StorageTypes.ALL.contains(storageType); + } + +} diff --git a/src/main/webapp/bower_components/angular-ui-router/.bower.json b/src/main/webapp/bower_components/angular-ui-router/.bower.json index da5305f6fc..36d911a853 100644 --- a/src/main/webapp/bower_components/angular-ui-router/.bower.json +++ b/src/main/webapp/bower_components/angular-ui-router/.bower.json @@ -17,15 +17,15 @@ "test", "src" ], - "version": "1.0.8", + "version": "1.0.10", "homepage": "https://github.com/angular-ui/angular-ui-router-bower", - "_release": "1.0.8", + "_release": "1.0.10", "_resolution": { "type": "version", - "tag": "1.0.8", - "commit": "9fa30f901cf394dbd214f8cc8532c57366caabb7" + "tag": "1.0.10", + "commit": "50430a313fba39526de6031662acae0e254f7948" }, "_source": "https://github.com/angular-ui/angular-ui-router-bower.git", - "_target": "1.0.8", + "_target": "1.0.10", "_originalSource": "angular-ui-router" } \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/CHANGELOG.md b/src/main/webapp/bower_components/angular-ui-router/CHANGELOG.md index 65a280af5b..b529fd0a7f 100644 --- a/src/main/webapp/bower_components/angular-ui-router/CHANGELOG.md +++ b/src/main/webapp/bower_components/angular-ui-router/CHANGELOG.md @@ -1,3 +1,21 @@ +## 1.0.10 (2017-10-18) +[Compare `@uirouter/angularjs` versions 1.0.9 and 1.0.10](https://github.com/angular-ui/ui-router/compare/1.0.9...1.0.10) + +### Bug Fixes + +* **artifactory:** Add trailing newline to package.json to work around artifactory issue ([#3551](https://github.com/angular-ui/ui-router/issues/3551)) ([d09a345](https://github.com/angular-ui/ui-router/commit/d09a345)), closes [#3550](https://github.com/angular-ui/ui-router/issues/3550) + +## 1.0.9 (2017-10-17) +[Compare `@uirouter/angularjs` versions 1.0.8 and 1.0.9](https://github.com/angular-ui/ui-router/compare/1.0.8...1.0.9) + + +### Updated `@uirouter/core` from 5.0.10 to 5.0.11 +[Compare `@uirouter/core` versions 5.0.10 and 5.0.11](https://github.com/ui-router/core/compare/5.0.10...5.0.11) + +### Bug Fixes + +* **ie9:** make console.bind work in ie9 ([#85](https://github.com/ui-router/core/issues/85)) ([318214b](https://github.com/ui-router/core/commit/318214b)) + ## 1.0.8 (2017-10-07) [Compare `@uirouter/angularjs` versions 1.0.7 and 1.0.8](https://github.com/angular-ui/ui-router/compare/1.0.7...1.0.8) diff --git a/src/main/webapp/bower_components/angular-ui-router/migrate/migrate.json b/src/main/webapp/bower_components/angular-ui-router/migrate/migrate.json deleted file mode 100644 index d7183916ab..0000000000 --- a/src/main/webapp/bower_components/angular-ui-router/migrate/migrate.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "old": "angular-ui-router", - "new": "@uirouter/angularjs" -} diff --git a/src/main/webapp/bower_components/angular-ui-router/migrate/migratewarn.js b/src/main/webapp/bower_components/angular-ui-router/migrate/migratewarn.js deleted file mode 100755 index eb9afad9eb..0000000000 --- a/src/main/webapp/bower_components/angular-ui-router/migrate/migratewarn.js +++ /dev/null @@ -1,12 +0,0 @@ -#!env node -"use strict"; - -var pkg = require('../package.json'); -var migrate = require('./migrate.json'); - -if (pkg.name === migrate.old) { - var warning = 'WARNING! this npm package "' + migrate.old + '" has been renamed to "' + migrate.new + '". Please update your package.json'; - var warning2 = 'See https://ui-router.github.io/blog/uirouter-scoped-packages/ for details.'; - console.log("\x1b[1m\x1b[37m\x1b[41m%s\x1b[0m", warning); - console.log("\x1b[1m\x1b[37m\x1b[41m%s\x1b[0m", warning2); -} diff --git a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js index 95e6dc5224..4e69b5e203 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js @@ -4,7 +4,7 @@ * This causes it to be incompatible with plugins that depend on @uirouter/core. * We recommend switching to the ui-router-core.js and ui-router-angularjs.js bundles instead. * For more information, see https://ui-router.github.io/blog/uirouter-for-angularjs-umd-bundles - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ @@ -1204,7 +1204,9 @@ function normalizedCat(input) { return isNumber(input) ? exports.Category[input] : exports.Category[exports.Category[input]]; } /** @hidden */ -var consoletable = isFunction(console.table) ? console.table.bind(console) : console.log.bind(console); +var consoleLog = Function.prototype.bind.call(console.log, console); +/** @hidden */ +var consoletable = isFunction(console.table) ? console.table.bind(console) : consoleLog.bind(console); /** * Trace categories Enum * diff --git a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js.map b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js.map index 9de70e9f08..91ecc8a427 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.js.map @@ -1 +1,193 @@ -{"version":3,"file":"angular-ui-router.js","sources":["@uirouter/angularjs/angular.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/hof.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/glob.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateObject.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/predicates.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/coreservices.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/common.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/queue.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/rejectFactory.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/trace.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/interface.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/targetState.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionHook.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookRegistry.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookBuilder.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/paramType.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/param.ts","@uirouter/core/lib-esm/path/@uirouter/core/path/pathNode.ts","@uirouter/core/lib-esm/path/@uirouter/core/path/pathFactory.ts","@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolvable.ts","@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/interface.ts","@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolveContext.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transition.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/strings.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/index.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/paramTypes.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/stateParams.ts","@uirouter/core/lib-esm/path/@uirouter/core/path/index.ts","@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/index.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateBuilder.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateMatcher.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateQueueManager.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateRegistry.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcher.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcherFactory.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlRule.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlRouter.ts","@uirouter/core/lib-esm/view/@uirouter/core/view/view.ts","@uirouter/core/lib-esm/@uirouter/core/globals.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlService.ts","@uirouter/core/lib-esm/@uirouter/core/router.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/coreResolvables.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/redirectTo.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/onEnterExitRetain.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/resolve.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/views.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/updateGlobals.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/url.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/lazyLoad.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionEventType.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/ignoredTransition.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/invalidTransition.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionService.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateService.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/index.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/q.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/injector.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/utils.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/baseLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/hashLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/pushStateLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationConfig.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/browserLocationConfig.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/plugins.ts","@uirouter/core/lib-esm/@uirouter/core/vanilla.ts","@uirouter/core/lib-esm/@uirouter/core/interface.ts","@uirouter/core/lib-esm/@uirouter/core/index.ts","@uirouter/angularjs/statebuilders/views.ts","@uirouter/angularjs/templateFactory.ts","@uirouter/angularjs/stateProvider.ts","@uirouter/angularjs/statebuilders/onEnterExitRetain.ts","@uirouter/angularjs/locationServices.ts","@uirouter/angularjs/urlRouterProvider.ts","@uirouter/angularjs/services.ts","@uirouter/angularjs/injectables.ts","@uirouter/angularjs/directives/stateDirectives.ts","@uirouter/angularjs/stateFilters.ts","@uirouter/angularjs/directives/viewDirective.ts","@uirouter/angularjs/viewScroll.ts","@uirouter/angularjs/index.ts"],"sourcesContent":["/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n","/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @module common_hof\n */ /** */\n\nimport {Predicate} from \"./common\";\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * Stolen from: http://stackoverflow.com/questions/4394747/javascript-curry-function\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n let initial_args = [].slice.apply(arguments, [1]);\n let func_args_length = fn.length;\n\n function curried(args: any[]) {\n if (args.length >= func_args_length)\n return fn.apply(null, args);\n return function () {\n return curried(args.concat([].slice.apply(arguments)));\n };\n }\n return curried(initial_args);\n}\n\n\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n let args = arguments;\n let start = args.length - 1;\n return function() {\n let i = start, result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) =>\n (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, val: any, obj: any) => obj && obj[name] === val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) =>\n pipe.apply(null, name.split(\".\").map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate = (fn: Predicate) =>\n (...args: any[]) => !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\nexport const any = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is = (ctor: { new(...args): T }) =>\n (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor || obj instanceof ctor);\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (val: any) => (other: any) =>\n val === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val = (v: T) => () => v;\n\n\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) =>\n obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function(x: any) {\n for (var i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n\n","/**\n * @coreapi\n * @module core\n */\n/** \n * Matches state names using glob-like pattern strings.\n *\n * Globs can be used in specific APIs including:\n *\n * - [[StateService.is]]\n * - [[StateService.includes]]\n * - The first argument to Hook Registration functions like [[TransitionService.onStart]]\n * - [[HookMatchCriteria]] and [[HookMatchCriterion]]\n *\n * A `Glob` string is a pattern which matches state names.\n * Nested state names are split into segments (separated by a dot) when processing.\n * The state named `foo.bar.baz` is split into three segments ['foo', 'bar', 'baz']\n *\n * Globs work according to the following rules:\n *\n * ### Exact match:\n *\n * The glob `'A.B'` matches the state named exactly `'A.B'`.\n *\n * | Glob |Matches states named|Does not match state named|\n * |:------------|:--------------------|:---------------------|\n * | `'A'` | `'A'` | `'B'` , `'A.C'` |\n * | `'A.B'` | `'A.B'` | `'A'` , `'A.B.C'` |\n * | `'foo'` | `'foo'` | `'FOO'` , `'foo.bar'`|\n *\n * ### Single star (`*`)\n *\n * A single star (`*`) is a wildcard that matches exactly one segment.\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:---------------------|:--------------------------|\n * | `'*'` | `'A'` , `'Z'` | `'A.B'` , `'Z.Y.X'` |\n * | `'A.*'` | `'A.B'` , `'A.C'` | `'A'` , `'A.B.C'` |\n * | `'A.*.*'` | `'A.B.C'` , `'A.X.Y'`| `'A'`, `'A.B'` , `'Z.Y.X'`|\n *\n * ### Double star (`**`)\n *\n * A double star (`'**'`) is a wildcard that matches *zero or more segments*\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:----------------------------------------------|:----------------------------------|\n * | `'**'` | `'A'` , `'A.B'`, `'Z.Y.X'` | (matches all states) |\n * | `'A.**'` | `'A'` , `'A.B'` , `'A.C.X'` | `'Z.Y.X'` |\n * | `'**.X'` | `'X'` , `'A.X'` , `'Z.Y.X'` | `'A'` , `'A.login.Z'` |\n * | `'A.**.X'` | `'A.X'` , `'A.B.X'` , `'A.B.C.X'` | `'A'` , `'A.B.C'` |\n *\n */\nexport class Glob {\n text: string;\n glob: Array;\n regexp: RegExp;\n\n constructor(text: string) {\n this.text = text;\n this.glob = text.split('.');\n\n let regexpString = this.text.split('.')\n .map(seg => {\n if (seg === '**') return '(?:|(?:\\\\.[^.]*)*)';\n if (seg === '*') return '\\\\.[^.]*';\n return '\\\\.' + seg;\n }).join('');\n\n this.regexp = new RegExp(\"^\" + regexpString + \"$\");\n }\n\n matches(name: string) {\n return this.regexp.test('.' + name);\n }\n\n /** Returns true if the string has glob-like characters in it */\n static is(text: string) {\n return !!/[!,*]+/.exec(text);\n }\n\n /** Returns a glob from the string, or null if the string isn't Glob-like */\n static fromString(text: string) {\n return Glob.is(text) ? new Glob(text) : null;\n }\n}\n","/**\n * @coreapi\n * @module state\n */\n/** for typedoc */\nimport { StateDeclaration, _ViewDeclaration, _StateDeclaration, LazyLoadResult } from \"./interface\";\nimport { defaults, values, find, inherit } from \"../common/common\";\nimport { propEq } from \"../common/hof\";\nimport { Param } from \"../params/param\";\nimport { UrlMatcher } from \"../url/urlMatcher\";\nimport { Resolvable } from \"../resolve/resolvable\";\nimport { TransitionStateHookFn } from \"../transition/interface\";\nimport { TargetState } from \"./targetState\";\nimport { Transition } from \"../transition/transition\";\nimport { Glob } from \"../common/glob\";\nimport { isObject, isFunction } from \"../common/predicates\";\n\n/**\n * Internal representation of a UI-Router state.\n *\n * Instances of this class are created when a [[StateDeclaration]] is registered with the [[StateRegistry]].\n *\n * A registered [[StateDeclaration]] is augmented with a getter ([[StateDeclaration.$$state]]) which returns the corresponding [[StateObject]] object.\n *\n * This class prototypally inherits from the corresponding [[StateDeclaration]].\n * Each of its own properties (i.e., `hasOwnProperty`) are built using builders from the [[StateBuilder]].\n */\nexport class StateObject {\n /** The parent [[StateObject]] */\n public parent: StateObject;\n\n /** The name used to register the state */\n public name: string;\n\n /** Prototypally inherits from [[StateDeclaration.abstract]] */\n public abstract: boolean;\n\n /** Prototypally inherits from [[StateDeclaration.resolve]] */\n public resolve: ({ [key: string]: (string|any[]|Function) }|any[]);\n\n /** A list of [[Resolvable]] objects. The internal representation of [[resolve]]. */\n public resolvables: Resolvable[];\n\n /** Prototypally inherits from [[StateDeclaration.resolvePolicy]] */\n public resolvePolicy: any;\n\n /** A compiled URLMatcher which detects when the state's URL is matched */\n public url: UrlMatcher;\n\n /** The parameters for the state, built from the URL and [[StateDeclaration.params]] */\n public params: { [key: string]: Param };\n\n /**\n * The views for the state.\n * Note: `@uirouter/core` does not register a builder for views.\n * The framework specific code should register a `views` builder.\n */\n public views: { [key: string]: _ViewDeclaration; };\n\n /**\n * The original [[StateDeclaration]] used to build this [[StateObject]].\n * Note: `this` object also prototypally inherits from the `self` declaration object.\n */\n public self: StateDeclaration;\n\n /** The nearest parent [[StateObject]] which has a URL */\n public navigable: StateObject;\n\n /** The parent [[StateObject]] objects from this state up to the root */\n public path: StateObject[];\n\n /**\n * Prototypally inherits from [[StateDeclaration.data]]\n * Note: This is the only field on the [[StateDeclaration]] which is mutated.\n * The definition object's `data` field is replaced with a new object\n * which prototypally inherits from the parent state definition's `data` field.\n */\n public data: any;\n\n /** \n * An object containing the parent States' names as keys and \n * true as their values.\n */\n public includes: { [name: string]: boolean };\n\n /** Prototypally inherits from [[StateDeclaration.onExit]] */\n public onExit: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onRetain]] */\n public onRetain: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onEnter]] */\n public onEnter: TransitionStateHookFn;\n\n /** Prototypally inherits from [[StateDeclaration.lazyLoad]] */\n public lazyLoad: (transition: Transition, state: StateDeclaration) => Promise;\n\n /** Prototypally inherits from [[StateDeclaration.redirectTo]] */\n redirectTo: (\n string |\n (($transition$: Transition) => TargetState) |\n { state: (string|StateDeclaration), params: { [key: string]: any }}\n );\n\n /** @hidden */\n __stateObjectCache: {\n /** Might be null */\n nameGlob?: Glob\n };\n\n\n /** @deprecated use State.create() */\n constructor(config?: StateDeclaration) {\n return StateObject.create(config || {});\n }\n\n /**\n * Create a state object to put the private/internal implementation details onto.\n * The object's prototype chain looks like:\n * (Internal State Object) -> (Copy of State.prototype) -> (State Declaration object) -> (State Declaration's prototype...)\n *\n * @param stateDecl the user-supplied State Declaration\n * @returns {StateObject} an internal State object\n */\n static create(stateDecl: _StateDeclaration): StateObject {\n stateDecl = StateObject.isStateClass(stateDecl) ? new stateDecl() : stateDecl;\n\n let state = inherit(inherit(stateDecl, StateObject.prototype)) as StateObject;\n stateDecl.$$state = () => state;\n state.self = stateDecl;\n state.__stateObjectCache = {\n nameGlob: Glob.fromString(state.name) // might return null\n };\n return state;\n }\n\n /** Predicate which returns true if the object is an class with @State() decorator */\n static isStateClass = (stateDecl: _StateDeclaration): stateDecl is ({ new (): StateDeclaration }) =>\n isFunction(stateDecl) && stateDecl['__uiRouterState'] === true;\n\n /** Predicate which returns true if the object is an internal [[StateObject]] object */\n static isState = (obj: any): obj is StateObject =>\n isObject(obj['__stateObjectCache']);\n\n /**\n * Returns true if the provided parameter is the same state.\n *\n * Compares the identity of the state against the passed value, which is either an object\n * reference to the actual `State` instance, the original definition object passed to\n * `$stateProvider.state()`, or the fully-qualified name.\n *\n * @param ref Can be one of (a) a `State` instance, (b) an object that was passed\n * into `$stateProvider.state()`, (c) the fully-qualified name of a state as a string.\n * @returns Returns `true` if `ref` matches the current `State` instance.\n */\n is(ref: StateObject|StateDeclaration|string): boolean {\n return this === ref || this.self === ref || this.fqn() === ref;\n }\n\n /**\n * @deprecated this does not properly handle dot notation\n * @returns Returns a dot-separated name of the state.\n */\n fqn(): string {\n if (!this.parent || !(this.parent instanceof this.constructor)) return this.name;\n let name = this.parent.fqn();\n return name ? name + \".\" + this.name : this.name;\n }\n\n /**\n * Returns the root node of this state's tree.\n *\n * @returns The root of this state's tree.\n */\n root(): StateObject {\n return this.parent && this.parent.root() || this;\n }\n\n /**\n * Gets the state's `Param` objects\n *\n * Gets the list of [[Param]] objects owned by the state.\n * If `opts.inherit` is true, it also includes the ancestor states' [[Param]] objects.\n * If `opts.matchingKeys` exists, returns only `Param`s whose `id` is a key on the `matchingKeys` object\n *\n * @param opts options\n */\n parameters(opts?: { inherit?: boolean, matchingKeys?: any }): Param[] {\n opts = defaults(opts, { inherit: true, matchingKeys: null });\n let inherited = opts.inherit && this.parent && this.parent.parameters() || [];\n return inherited.concat(values(this.params))\n .filter(param => !opts.matchingKeys || opts.matchingKeys.hasOwnProperty(param.id));\n }\n\n /**\n * Returns a single [[Param]] that is owned by the state\n *\n * If `opts.inherit` is true, it also searches the ancestor states` [[Param]]s.\n * @param id the name of the [[Param]] to return\n * @param opts options\n */\n parameter(id: string, opts: { inherit?: boolean } = {}): Param {\n return (\n this.url && this.url.parameter(id, opts) ||\n find(values(this.params), propEq('id', id)) ||\n opts.inherit && this.parent && this.parent.parameter(id)\n );\n }\n\n toString() {\n return this.fqn();\n }\n}\n","/** Predicates\n *\n * These predicates return true/false based on the input.\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_predicates\n */\n/** */\nimport { and, not, pipe, prop, or } from \"./hof\";\nimport { Predicate } from \"./common\"; // has or is using\nimport { StateObject } from \"../state/stateObject\";\n\nconst toStr = Object.prototype.toString;\nconst tis = (t: string) => (x: any) => typeof(x) === t;\nexport const isUndefined = tis('undefined');\nexport const isDefined = not(isUndefined);\nexport const isNull = (o: any) => o === null;\nexport const isNullOrUndefined = or(isNull, isUndefined);\nexport const isFunction: (x: any) => x is Function = tis('function');\nexport const isNumber: (x: any) => x is number = tis('number');\nexport const isString = <(x: any) => x is string> tis('string');\nexport const isObject = (x: any) => x !== null && typeof x === 'object';\nexport const isArray = Array.isArray;\nexport const isDate: (x: any) => x is Date = ((x: any) => toStr.call(x) === '[object Date]');\nexport const isRegExp: (x: any) => x is RegExp = ((x: any) => toStr.call(x) === '[object RegExp]');\nexport const isState: (x: any) => x is StateObject = StateObject.isState;\n\n/**\n * Predicate which checks if a value is injectable\n *\n * A value is \"injectable\" if it is a function, or if it is an ng1 array-notation-style array\n * where all the elements in the array are Strings, except the last one, which is a Function\n */\nexport function isInjectable(val: any) {\n if (isArray(val) && val.length) {\n let head = val.slice(0, -1), tail = val.slice(-1);\n return !(head.filter(not(isString)).length || tail.filter(not(isFunction)).length);\n }\n return isFunction(val);\n}\n\n/**\n * Predicate which checks if a value looks like a Promise\n *\n * It is probably a Promise if it's an object, and it has a `then` property which is a Function\n */\nexport const isPromise = <(x: any) => x is Promise> and(isObject, pipe(prop('then'), isFunction));\n\n","/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @module common\n */\n/** for typedoc */\nimport {IInjectable, Obj} from \"./common\";\nimport { Disposable } from \"../interface\";\nimport { UrlParts } from \"../url/interface\";\n\nexport let notImplemented = (fnname: string) => () => {\n throw new Error(`${fnname}(): No coreservices implementation for UI-Router is loaded.`);\n};\n\nlet services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n strictDi?: boolean;\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\nexport interface LocationServices extends Disposable {\n /**\n * Gets the current url string\n *\n * The URL is normalized using the internal [[path]]/[[search]]/[[hash]] values.\n *\n * For example, the URL may be stored in the hash ([[HashLocationServices]]) or\n * have a base HREF prepended ([[PushStateLocationServices]]).\n *\n * The raw URL in the browser might be:\n *\n * ```\n * http://mysite.com/somepath/index.html#/internal/path/123?param1=foo#anchor\n * ```\n *\n * or\n *\n * ```\n * http://mysite.com/basepath/internal/path/123?param1=foo#anchor\n * ```\n *\n * then this method returns:\n *\n * ```\n * /internal/path/123?param1=foo#anchor\n * ```\n *\n *\n * #### Example:\n * ```js\n * locationServices.url(); // \"/some/path?query=value#anchor\"\n * ```\n *\n * @returns the current value of the url, as a string.\n */\n url(): string;\n\n /**\n * Updates the url, or gets the current url\n *\n * Updates the url, changing it to the value in `newurl`\n *\n * #### Example:\n * ```js\n * locationServices.url(\"/some/path?query=value#anchor\", true);\n * ```\n *\n * @param newurl The new value for the URL.\n * This url should reflect only the new internal [[path]], [[search]], and [[hash]] values.\n * It should not include the protocol, site, port, or base path of an absolute HREF.\n * @param replace When true, replaces the current history entry (instead of appending it) with this new url\n * @param state The history's state object, i.e., pushState (if the LocationServices implementation supports it)\n * @return the url (after potentially being processed)\n */\n url(newurl: string, replace?: boolean, state?: any): string;\n\n /**\n * Gets the path part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `/some/path`\n *\n * @return the path portion of the url\n */\n path(): string;\n\n /**\n * Gets the search part of the current url as an object\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `{ query: 'value' }`\n *\n * @return the search (querystring) portion of the url, as an object\n */\n search(): { [key: string]: any };\n\n /**\n * Gets the hash part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `anchor`\n *\n * @return the hash (anchor) portion of the url\n */\n hash(): string;\n\n /**\n * Registers a url change handler\n *\n * #### Example:\n * ```js\n * let deregisterFn = locationServices.onChange((evt) => console.log(\"url change\", evt));\n * ```\n *\n * @param callback a function that will be called when the url is changing\n * @return a function that de-registers the callback\n */\n onChange(callback: Function): Function;\n}\n\n/**\n * This service returns the location configuration\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n */\nexport interface LocationConfig extends Disposable {\n /**\n * Gets the port, e.g., `80`\n *\n * @return the port number\n */\n port(): number;\n /**\n * Gets the protocol, e.g., `http`\n *\n * @return the protocol\n */\n protocol(): string;\n /**\n * Gets the host, e.g., `localhost`\n *\n * @return the protocol\n */\n host(): string;\n /**\n * Gets the base Href, e.g., `http://localhost/approot/`\n *\n * @return the application's base href\n */\n baseHref(): string;\n /**\n * Returns true when running in pushstate mode\n *\n * @return true when running in pushstate mode\n */\n html5Mode(): boolean;\n /**\n * Gets the hashPrefix (when not running in pushstate mode)\n *\n * If the current url is `http://localhost/app#!/uirouter/path/#anchor`, it returns `!` which is the prefix for the \"hashbang\" portion.\n *\n * @return the hash prefix\n */\n hashPrefix(): string;\n /**\n * Sets the hashPrefix (when not running in pushstate mode)\n *\n * @return the new hash prefix\n */\n hashPrefix(newprefix: string): string;\n}\n\nexport {services};\n","/**\n * Random utility functions used in the UI-Router code\n *\n * These functions are exported, but are subject to change without notice.\n *\n * @preferred\n * @module common\n */\n/** for typedoc */\nimport { isFunction, isString, isArray, isRegExp, isDate } from \"./predicates\";\nimport { all, any, prop, curry, not } from \"./hof\";\nimport { services } from \"./coreservices\";\nimport { StateObject } from \"../state/stateObject\";\n\ndeclare const global;\nexport const root: any = (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) || this;\nconst angular = root.angular || {};\n\nexport const fromJson = angular.fromJson || JSON.parse.bind(JSON);\nexport const toJson = angular.toJson || JSON.stringify.bind(JSON);\nexport const forEach = angular.forEach || _forEach;\nexport const extend = Object.assign || _extend;\nexport const equals = angular.equals || _equals;\nexport function identity(x: any) { return x; }\nexport function noop(): any {}\n\nexport type Mapper = (x: X, key?: (string|number)) => T;\nexport interface TypedMap { [key: string]: T; }\nexport type Predicate = (x?: X) => boolean;\n/**\n * An ng1-style injectable\n *\n * This could be a (non-minified) function such as:\n * ```js\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an explicitly annotated function (minify safe)\n * ```js\n * injectableFunction.$inject = [ 'SomeDependency' ];\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an array style annotated function (minify safe)\n * ```js\n * ['SomeDependency', function injectableFunction(SomeDependency) {\n *\n * }];\n * ```\n *\n * @publicapi\n */\nexport type IInjectable = (Function|any[]);\n\nexport interface Obj extends Object {\n [key: string]: any;\n}\n\n/**\n * Builds proxy functions on the `to` object which pass through to the `from` object.\n *\n * For each key in `fnNames`, creates a proxy function on the `to` object.\n * The proxy function calls the real function on the `from` object.\n *\n *\n * #### Example:\n * This example creates an new class instance whose functions are prebound to the new'd object.\n * ```js\n * class Foo {\n * constructor(data) {\n * // Binds all functions from Foo.prototype to 'this',\n * // then copies them to 'this'\n * bindFunctions(Foo.prototype, this, this);\n * this.data = data;\n * }\n *\n * log() {\n * console.log(this.data);\n * }\n * }\n *\n * let myFoo = new Foo([1,2,3]);\n * var logit = myFoo.log;\n * logit(); // logs [1, 2, 3] from the myFoo 'this' instance\n * ```\n *\n * #### Example:\n * This example creates a bound version of a service function, and copies it to another object\n * ```\n *\n * var SomeService = {\n * this.data = [3, 4, 5];\n * this.log = function() {\n * console.log(this.data);\n * }\n * }\n *\n * // Constructor fn\n * function OtherThing() {\n * // Binds all functions from SomeService to SomeService,\n * // then copies them to 'this'\n * bindFunctions(SomeService, this, SomeService);\n * }\n *\n * let myOtherThing = new OtherThing();\n * myOtherThing.log(); // logs [3, 4, 5] from SomeService's 'this'\n * ```\n *\n * @param source A function that returns the source object which contains the original functions to be bound\n * @param target A function that returns the target object which will receive the bound functions\n * @param bind A function that returns the object which the functions will be bound to\n * @param fnNames The function names which will be bound (Defaults to all the functions found on the 'from' object)\n * @param latebind If true, the binding of the function is delayed until the first time it's invoked\n */\nexport function createProxyFunctions(source: Function, target: Obj, bind: Function, fnNames?: string[], latebind = false): Obj {\n const bindFunction = (fnName) =>\n source()[fnName].bind(bind());\n\n const makeLateRebindFn = fnName => function lateRebindFunction() {\n target[fnName] = bindFunction(fnName);\n return target[fnName].apply(null, arguments);\n };\n\n fnNames = fnNames || Object.keys(source());\n\n return fnNames.reduce((acc, name) => {\n acc[name] = latebind ? makeLateRebindFn(name) : bindFunction(name);\n return acc;\n }, target);\n}\n\n\n/**\n * prototypal inheritance helper.\n * Creates a new object which has `parent` object as its prototype, and then copies the properties from `extra` onto it\n */\nexport const inherit = (parent: Obj, extra?: Obj) =>\n extend(Object.create(parent), extra);\n\n/** Given an array, returns true if the object is found in the array, (using indexOf) */\nexport const inArray: typeof _inArray = curry(_inArray) as any;\nexport function _inArray(array: any[], obj: any): boolean;\nexport function _inArray(array: any[]): (obj: any) => boolean;\nexport function _inArray(array, obj?): any {\n return array.indexOf(obj) !== -1;\n}\n\n/**\n * Given an array, and an item, if the item is found in the array, it removes it (in-place).\n * The same array is returned\n */\nexport const removeFrom: typeof _removeFrom = curry(_removeFrom) as any;\nexport function _removeFrom(array: T[], obj: T): T[];\nexport function _removeFrom(array: T[]): (obj: T) => T[];\nexport function _removeFrom(array, obj?) {\n let idx = array.indexOf(obj);\n if (idx >= 0) array.splice(idx, 1);\n return array;\n}\n\n/** pushes a values to an array and returns the value */\nexport const pushTo: typeof _pushTo = curry(_pushTo) as any;\nexport function _pushTo(arr: T[], val: T): T ;\nexport function _pushTo(arr: T[]): (val: T) => T ;\nexport function _pushTo(arr, val?): any {\n return (arr.push(val), val);\n}\n\n/** Given an array of (deregistration) functions, calls all functions and removes each one from the source array */\nexport const deregAll = (functions: Function[]) =>\n functions.slice().forEach(fn => {\n typeof fn === 'function' && fn();\n removeFrom(functions, fn);\n });\n/**\n * Applies a set of defaults to an options object. The options object is filtered\n * to only those properties of the objects in the defaultsList.\n * Earlier objects in the defaultsList take precedence when applying defaults.\n */\nexport function defaults(opts, ...defaultsList: Obj[]) {\n let _defaultsList = defaultsList.concat({}).reverse();\n let defaultVals = extend.apply(null, _defaultsList);\n return extend({}, defaultVals, pick(opts || {}, Object.keys(defaultVals)));\n}\n\n/** Reduce function that merges each element of the list into a single object, using extend */\nexport const mergeR = (memo: Obj, item: Obj) => extend(memo, item);\n\n/**\n * Finds the common ancestor path between two states.\n *\n * @param {Object} first The first state.\n * @param {Object} second The second state.\n * @return {Array} Returns an array of state names in descending order, not including the root.\n */\nexport function ancestors(first: StateObject, second: StateObject) {\n let path: StateObject[] = [];\n\n for (let n in first.path) {\n if (first.path[n] !== second.path[n]) break;\n path.push(first.path[n]);\n }\n return path;\n}\n\n/**\n * Return a copy of the object only containing the whitelisted properties.\n *\n * #### Example:\n * ```\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = pick(foo, ['a', 'b']); // { a: 1, b: 2 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the whitelisted property names\n */\nexport function pick(obj: Obj, propNames: string[]): Obj {\n let objCopy = {};\n for (let prop in obj) {\n if (propNames.indexOf(prop) !== -1) {\n objCopy[prop] = obj[prop];\n }\n }\n return objCopy;\n}\n\n/**\n * Return a copy of the object omitting the blacklisted properties.\n *\n * @example\n * ```\n *\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = omit(foo, ['a', 'b']); // { c: 3 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the blacklisted property names\n */\nexport function omit(obj: Obj, propNames: string[]): Obj {\n return Object.keys(obj)\n .filter(not(inArray(propNames)))\n .reduce((acc, key) => (acc[key] = obj[key], acc), {});\n}\n\n\n/** Given an array of objects, maps each element to a named property of the element. */\nexport function pluck(collection: Obj[], propName: string): T[];\n/** Given an object, maps each property of the object to a named property of the property. */\nexport function pluck(collection: { [key: string]: any }, propName: string): { [key: string]: any };\n/**\n * Maps an array, or object to a property (by name)\n */\nexport function pluck(collection: any, propName: string): any {\n return map(collection, > prop(propName));\n}\n\n\n/** Given an array of objects, returns a new array containing only the elements which passed the callback predicate */\nexport function filter(collection: T[], callback: (t: T, key?: number) => boolean): T[];\n/** Given an object, returns a new object with only those properties that passed the callback predicate */\nexport function filter(collection: TypedMap, callback: (t: T, key?: string) => boolean): TypedMap;\n/** Filters an Array or an Object's properties based on a predicate */\nexport function filter(collection: any, callback: Function): T {\n let arr = isArray(collection), result: any = arr ? [] : {};\n let accept = arr ? x => result.push(x) : (x, key) => result[key] = x;\n forEach(collection, function(item, i) {\n if (callback(item, i)) accept(item, i);\n });\n return result;\n}\n\n\n/** Given an object, return the first property of that object which passed the callback predicate */\nexport function find(collection: TypedMap, callback: Predicate): T;\n/** Given an array of objects, returns the first object which passed the callback predicate */\nexport function find(collection: T[], callback: Predicate): T;\n/** Finds an object from an array, or a property of an object, that matches a predicate */\nexport function find(collection: any, callback: any) {\n let result;\n\n forEach(collection, function(item, i) {\n if (result) return;\n if (callback(item, i)) result = item;\n });\n\n return result;\n}\n\n/** Given an object, returns a new object, where each property is transformed by the callback function */\nexport let mapObj: (collection: { [key: string]: T }, callback: Mapper) => { [key: string]: U } = map;\n/** Given an array, returns a new array, where each element is transformed by the callback function */\nexport function map(collection: T[], callback: Mapper): U[];\nexport function map(collection: { [key: string]: T }, callback: Mapper): { [key: string]: U };\n/** Maps an array or object properties using a callback function */\nexport function map(collection: any, callback: any): any {\n let result = isArray(collection) ? [] : {};\n forEach(collection, (item, i) => result[i] = callback(item, i));\n return result;\n}\n\n/**\n * Given an object, return its enumerable property values\n *\n * @example\n * ```\n *\n * let foo = { a: 1, b: 2, c: 3 }\n * let vals = values(foo); // [ 1, 2, 3 ]\n * ```\n */\nexport const values: ( (obj: TypedMap) => T[]) = (obj: Obj) =>\n Object.keys(obj).map(key => obj[key]);\n\n/**\n * Reduce function that returns true if all of the values are truthy.\n *\n * @example\n * ```\n *\n * let vals = [ 1, true, {}, \"hello world\"];\n * vals.reduce(allTrueR, true); // true\n *\n * vals.push(0);\n * vals.reduce(allTrueR, true); // false\n * ```\n */\nexport const allTrueR = (memo: boolean, elem: any) => memo && elem;\n\n/**\n * Reduce function that returns true if any of the values are truthy.\n *\n * * @example\n * ```\n *\n * let vals = [ 0, null, undefined ];\n * vals.reduce(anyTrueR, true); // false\n *\n * vals.push(\"hello world\");\n * vals.reduce(anyTrueR, true); // true\n * ```\n */\nexport const anyTrueR = (memo: boolean, elem: any) => memo || elem;\n\n/**\n * Reduce function which un-nests a single level of arrays\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnestR = (memo: any[], elem: any[]) => memo.concat(elem);\n\n/**\n * Reduce function which recursively un-nests all arrays\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flattenR = (memo: any[], elem: any) =>\n isArray(elem) ? memo.concat(elem.reduce(flattenR, [])) : pushR(memo, elem);\n\n/**\n * Reduce function that pushes an object to an array, then returns the array.\n * Mostly just for [[flattenR]] and [[uniqR]]\n */\nexport function pushR(arr: any[], obj: any) {\n arr.push(obj);\n return arr;\n}\n\n/** Reduce function that filters out duplicates */\nexport const uniqR = (acc: T[], token: T): T[] =>\n inArray(acc, token) ? acc : pushR(acc, token);\n\n/**\n * Return a new array with a single level of arrays unnested.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * unnest(input) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnest = (arr: any[]) => arr.reduce(unnestR, []);\n/**\n * Return a completely flattened version of an array.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * flatten(input) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flatten = (arr: any[]) => arr.reduce(flattenR, []);\n\n/**\n * Given a .filter Predicate, builds a .filter Predicate which throws an error if any elements do not pass.\n * @example\n * ```\n *\n * let isNumber = (obj) => typeof(obj) === 'number';\n * let allNumbers = [ 1, 2, 3, 4, 5 ];\n * allNumbers.filter(assertPredicate(isNumber)); //OK\n *\n * let oneString = [ 1, 2, 3, 4, \"5\" ];\n * oneString.filter(assertPredicate(isNumber, \"Not all numbers\")); // throws Error(\"\"Not all numbers\"\");\n * ```\n */\nexport const assertPredicate: (predicate: Predicate, errMsg: (string|Function)) => Predicate = assertFn;\n/**\n * Given a .map function, builds a .map function which throws an error if any mapped elements do not pass a truthyness test.\n * @example\n * ```\n *\n * var data = { foo: 1, bar: 2 };\n *\n * let keys = [ 'foo', 'bar' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // values is [1, 2]\n *\n * let keys = [ 'foo', 'bar', 'baz' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // throws Error(\"Key not found\")\n * ```\n */\nexport const assertMap: (mapFn: (t: T) => U, errMsg: (string|Function)) => (t: T) => U = assertFn;\nexport function assertFn(predicateOrMap: Function, errMsg: (string|Function) = \"assert failure\"): any {\n return (obj) => {\n let result = predicateOrMap(obj);\n if (!result) {\n throw new Error(isFunction(errMsg) ? ( errMsg)(obj) : errMsg);\n }\n return result;\n };\n}\n\n/**\n * Like _.pairs: Given an object, returns an array of key/value pairs\n *\n * @example\n * ```\n *\n * pairs({ foo: \"FOO\", bar: \"BAR }) // [ [ \"foo\", \"FOO\" ], [ \"bar\": \"BAR\" ] ]\n * ```\n */\nexport const pairs = (obj: Obj) =>\n Object.keys(obj).map(key => [ key, obj[key]] );\n\n/**\n * Given two or more parallel arrays, returns an array of tuples where\n * each tuple is composed of [ a[i], b[i], ... z[i] ]\n *\n * @example\n * ```\n *\n * let foo = [ 0, 2, 4, 6 ];\n * let bar = [ 1, 3, 5, 7 ];\n * let baz = [ 10, 30, 50, 70 ];\n * arrayTuples(foo, bar); // [ [0, 1], [2, 3], [4, 5], [6, 7] ]\n * arrayTuples(foo, bar, baz); // [ [0, 1, 10], [2, 3, 30], [4, 5, 50], [6, 7, 70] ]\n * ```\n */\nexport function arrayTuples(...args: any[]): any[] {\n if (args.length === 0) return [];\n let maxArrayLen = args.reduce((min, arr) => Math.min(arr.length, min), 9007199254740991); // aka 2^53 − 1 aka Number.MAX_SAFE_INTEGER\n\n let i, result = [];\n\n for (i = 0; i < maxArrayLen; i++) {\n // This is a hot function\n // Unroll when there are 1-4 arguments\n switch (args.length) {\n case 1: result.push([args[0][i]]); break;\n case 2: result.push([args[0][i], args[1][i]]); break;\n case 3: result.push([args[0][i], args[1][i], args[2][i]]); break;\n case 4: result.push([args[0][i], args[1][i], args[2][i], args[3][i]]); break;\n default:\n result.push(args.map(array => array[i])); break;\n }\n }\n\n return result;\n}\n\n/**\n * Reduce function which builds an object from an array of [key, value] pairs.\n *\n * Each iteration sets the key/val pair on the memo object, then returns the memo for the next iteration.\n *\n * Each keyValueTuple should be an array with values [ key: string, value: any ]\n *\n * @example\n * ```\n *\n * var pairs = [ [\"fookey\", \"fooval\"], [\"barkey\", \"barval\"] ]\n *\n * var pairsToObj = pairs.reduce((memo, pair) => applyPairs(memo, pair), {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n *\n * // Or, more simply:\n * var pairsToObj = pairs.reduce(applyPairs, {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n * ```\n */\nexport function applyPairs(memo: TypedMap, keyValTuple: any[]) {\n let key: string, value: any;\n if (isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n}\n\n/** Get the last element of an array */\nexport function tail(arr: T[]): T {\n return arr.length && arr[arr.length - 1] || undefined;\n}\n\n/**\n * shallow copy from src to dest\n */\nexport function copy(src: Obj, dest?: Obj) {\n if (dest) Object.keys(dest).forEach(key => delete dest[key]);\n if (!dest) dest = {};\n return extend(dest, src);\n}\n\n/** Naive forEach implementation works with Objects or Arrays */\nfunction _forEach(obj: (any[]|any), cb: (el, idx?) => void, _this: Obj) {\n if (isArray(obj)) return obj.forEach(cb, _this);\n Object.keys(obj).forEach(key => cb(obj[key], key));\n}\n\n/** Like Object.assign() */\nexport function _extend(toObj: Obj, ...fromObjs: Obj[]): any;\nexport function _extend(toObj: Obj): any {\n for (let i = 1; i < arguments.length; i++) {\n let obj = arguments[i];\n if (!obj) continue;\n let keys = Object.keys(obj);\n\n for (let j = 0; j < keys.length; j++) {\n toObj[keys[j]] = obj[keys[j]];\n }\n }\n\n return toObj;\n}\n\nfunction _equals(o1: any, o2: any): boolean {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n let t1 = typeof o1, t2 = typeof o2;\n if (t1 !== t2 || t1 !== 'object') return false;\n\n const tup = [o1, o2];\n if (all(isArray)(tup)) return _arraysEq(o1, o2);\n if (all(isDate)(tup)) return o1.getTime() === o2.getTime();\n if (all(isRegExp)(tup)) return o1.toString() === o2.toString();\n if (all(isFunction)(tup)) return true; // meh\n\n let predicates = [isFunction, isArray, isDate, isRegExp];\n if (predicates.map(any).reduce((b, fn) => b || !!fn(tup), false)) return false;\n\n let key: string, keys: { [i: string]: boolean } = {};\n for (key in o1) {\n if (!_equals(o1[key], o2[key])) return false;\n keys[key] = true;\n }\n for (key in o2) {\n if (!keys[key]) return false;\n }\n\n return true;\n}\n\nfunction _arraysEq(a1: any[], a2: any[]) {\n if (a1.length !== a2.length) return false;\n return arrayTuples(a1, a2).reduce((b, t) => b && _equals(t[0], t[1]), true);\n}\n\n// issue #2676\nexport const silenceUncaughtInPromise = (promise: Promise) =>\n promise.catch(e => 0) && promise;\nexport const silentRejection = (error: any) =>\n silenceUncaughtInPromise(services.$q.reject(error));\n","/**\n * @module common\n */ /** for typedoc */\n\nexport class Queue {\n constructor(private _items: T[] = [], private _limit: number = null) { }\n\n enqueue(item: T) {\n let items = this._items;\n items.push(item);\n if (this._limit && items.length > this._limit) items.shift();\n return item;\n }\n\n dequeue(): T {\n if (this.size())\n return this._items.splice(0, 1)[0];\n }\n\n clear(): Array {\n let current = this._items;\n this._items = [];\n return current;\n }\n\n size(): number {\n return this._items.length;\n }\n\n remove(item: T) {\n let idx = this._items.indexOf(item);\n return idx > -1 && this._items.splice(idx, 1)[0];\n }\n\n peekTail(): T {\n return this._items[this._items.length - 1];\n }\n\n peekHead(): T {\n if (this.size())\n return this._items[0];\n }\n}\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\"use strict\";\nimport {extend, silentRejection} from \"../common/common\";\nimport {stringify} from \"../common/strings\";\nimport { is } from '../common/hof';\n\nexport enum RejectType {\n SUPERSEDED = 2, ABORTED = 3, INVALID = 4, IGNORED = 5, ERROR = 6\n}\n\n/** @hidden */ let id = 0;\n\nexport class Rejection {\n $id = id++;\n type: number;\n message: string;\n detail: any;\n redirected: boolean;\n\n constructor(type: number, message?: string, detail?: any) {\n this.type = type;\n this.message = message;\n this.detail = detail;\n }\n\n toString() {\n const detailString = (d: any) => \n d && d.toString !== Object.prototype.toString ? d.toString() : stringify(d);\n let detail = detailString(this.detail);\n let { $id, type, message } = this;\n return `Transition Rejection($id: ${$id} type: ${type}, message: ${message}, detail: ${detail})`;\n }\n\n toPromise(): Promise {\n return extend(silentRejection(this), { _transitionRejection: this });\n }\n\n /** Returns true if the obj is a rejected promise created from the `asPromise` factory */\n static isRejectionPromise(obj: any): boolean {\n return obj && (typeof obj.then === 'function') && is(Rejection)(obj._transitionRejection);\n }\n\n /** Returns a Rejection due to transition superseded */\n static superseded(detail?: any, options?: any): Rejection {\n let message = \"The transition has been superseded by a different transition\";\n let rejection = new Rejection(RejectType.SUPERSEDED, message, detail);\n if (options && options.redirected) {\n rejection.redirected = true;\n }\n return rejection;\n }\n\n /** Returns a Rejection due to redirected transition */\n static redirected(detail?: any): Rejection {\n return Rejection.superseded(detail, { redirected: true });\n }\n\n /** Returns a Rejection due to invalid transition */\n static invalid(detail?: any): Rejection {\n let message = \"This transition is invalid\";\n return new Rejection(RejectType.INVALID, message, detail);\n }\n\n /** Returns a Rejection due to ignored transition */\n static ignored(detail?: any): Rejection {\n let message = \"The transition was ignored\";\n return new Rejection(RejectType.IGNORED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static aborted(detail?: any): Rejection {\n let message = \"The transition has been aborted\";\n return new Rejection(RejectType.ABORTED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static errored(detail?: any): Rejection {\n let message = \"The transition errored\";\n return new Rejection(RejectType.ERROR, message, detail);\n }\n \n /**\n * Returns a Rejection\n *\n * Normalizes a value as a Rejection.\n * If the value is already a Rejection, returns it.\n * Otherwise, wraps and returns the value as a Rejection (Rejection type: ERROR).\n *\n * @returns `detail` if it is already a `Rejection`, else returns an ERROR Rejection.\n */\n static normalize(detail?: Rejection | Error | any): Rejection {\n return is(Rejection)(detail) ? detail : Rejection.errored(detail);\n }\n}\n","/**\n * # Transition tracing (debug)\n *\n * Enable transition tracing to print transition information to the console,\n * in order to help debug your application.\n * Tracing logs detailed information about each Transition to your console.\n *\n * To enable tracing, import the [[Trace]] singleton and enable one or more categories.\n *\n * ### ES6\n * ```js\n * import {trace} from \"ui-router-ng2\"; // or \"angular-ui-router\"\n * trace.enable(1, 5); // TRANSITION and VIEWCONFIG\n * ```\n *\n * ### CJS\n * ```js\n * let trace = require(\"angular-ui-router\").trace; // or \"ui-router-ng2\"\n * trace.enable(\"TRANSITION\", \"VIEWCONFIG\");\n * ```\n *\n * ### Globals\n * ```js\n * let trace = window[\"angular-ui-router\"].trace; // or \"ui-router-ng2\"\n * trace.enable(); // Trace everything (very verbose)\n * ```\n *\n * ### Angular 1:\n * ```js\n * app.run($trace => $trace.enable());\n * ```\n *\n * @coreapi\n * @module trace\n */ /** for typedoc */\nimport {parse} from \"../common/hof\";\nimport {isFunction, isNumber} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {ActiveUIView, ViewConfig, ViewContext} from \"../view/interface\";\nimport {stringify, functionToString, maxLength, padString} from \"./strings\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {PathNode} from \"../path/pathNode\";\nimport {PolicyWhen} from \"../resolve/interface\";\nimport {TransitionHook} from \"../transition/transitionHook\";\nimport {HookResult} from \"../transition/interface\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @hidden */\nfunction uiViewString (uiview: ActiveUIView) {\n if (!uiview) return 'ui-view (defunct)';\n const state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';\n return `[ui-view#${uiview.id} ${uiview.$type}:${uiview.fqn} (${uiview.name}@${state})]`;\n}\n\n/** @hidden */\nconst viewConfigString = (viewConfig: ViewConfig) => {\n let view = viewConfig.viewDecl;\n const state = view.$context.name || '(root)';\n return `[View#${viewConfig.$id} from '${state}' state]: target ui-view: '${view.$uiViewName}@${view.$uiViewContextAnchor}'`;\n};\n\n/** @hidden */\nfunction normalizedCat(input: Category|string): string {\n return isNumber(input) ? Category[input] : Category[Category[input]];\n}\n\n/** @hidden */\nconst consoletable = isFunction(console.table) ? console.table.bind(console) : console.log.bind(console);\n\n/**\n * Trace categories Enum\n *\n * Enable or disable a category using [[Trace.enable]] or [[Trace.disable]]\n *\n * `trace.enable(Category.TRANSITION)`\n *\n * These can also be provided using a matching string, or position ordinal\n *\n * `trace.enable(\"TRANSITION\")`\n *\n * `trace.enable(1)`\n */\nexport enum Category {\n RESOLVE, TRANSITION, HOOK, UIVIEW, VIEWCONFIG,\n}\n\n/** @hidden */ const _tid = parse(\"$id\");\n/** @hidden */ const _rid = parse(\"router.$id\");\n/** @hidden */ const transLbl = (trans) => `Transition #${_tid(trans)}-${_rid(trans)}`;\n\n/**\n * Prints UI-Router Transition trace information to the console.\n */\nexport class Trace {\n /** @hidden */\n approximateDigests: number;\n\n /** @hidden */\n constructor() {\n this.approximateDigests = 0;\n }\n\n /** @hidden */\n private _enabled: { [key: string]: boolean } = {};\n\n /** @hidden */\n private _set(enabled: boolean, categories: Category[]) {\n if (!categories.length) {\n categories = Object.keys(Category)\n .map(k => parseInt(k, 10))\n .filter(k => !isNaN(k))\n .map(key => Category[key]);\n }\n categories.map(normalizedCat).forEach(category => this._enabled[category] = enabled);\n }\n\n /**\n * Enables a trace [[Category]]\n *\n * ```js\n * trace.enable(\"TRANSITION\");\n * ```\n *\n * @param categories categories to enable. If `categories` is omitted, all categories are enabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n enable(...categories: (Category|string|number)[]);\n enable(...categories: any[]) { this._set(true, categories); }\n /**\n * Disables a trace [[Category]]\n *\n * ```js\n * trace.disable(\"VIEWCONFIG\");\n * ```\n *\n * @param categories categories to disable. If `categories` is omitted, all categories are disabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n disable(...categories: (Category|string|number)[]);\n disable(...categories: any[]) { this._set(false, categories); }\n\n /**\n * Retrieves the enabled stateus of a [[Category]]\n *\n * ```js\n * trace.enabled(\"VIEWCONFIG\"); // true or false\n * ```\n *\n * @returns boolean true if the category is enabled\n */\n enabled(category: (Category|string|number)): boolean {\n return !!this._enabled[normalizedCat(category)];\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionStart(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Started -> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionIgnored(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Ignored <> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookInvocation(step: TransitionHook, trans: Transition, options: any) {\n if (!this.enabled(Category.HOOK)) return;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = functionToString((step as any).registeredHook.callback);\n console.log(`${transLbl(trans)}: Hook -> ${event} context: ${context}, ${maxLength(200, name)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookResult(hookResult: HookResult, trans: Transition, transitionOptions: any) {\n if (!this.enabled(Category.HOOK)) return;\n console.log(`${transLbl(trans)}: <- Hook returned: ${maxLength(200, stringify(hookResult))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvePath(path: PathNode[], when: PolicyWhen, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: Resolving ${path} (${when})`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvableResolved(resolvable: Resolvable, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: <- Resolved ${resolvable} to: ${maxLength(200, stringify(resolvable.data))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceError(reason: any, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Rejected ${stringify(trans)}, reason: ${reason}`);\n }\n\n /** @internalapi called by ui-router code */\n traceSuccess(finalState: StateObject, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Success ${stringify(trans)}, final state: ${finalState.name}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewEvent(event: string, viewData: ActiveUIView, extra = \"\") {\n if (!this.enabled(Category.UIVIEW)) return;\n console.log(`ui-view: ${padString(30, event)} ${uiViewString(viewData)}${extra}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewConfigUpdated(viewData: ActiveUIView, context: ViewContext) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Updating\", viewData, ` with ViewConfig from context='${context}'`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewFill(viewData: ActiveUIView, html: string) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Fill\", viewData, ` with: ${maxLength(200, html)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewSync(pairs: any[]) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n const mapping = pairs.map(([ uiViewData, config ]) => {\n const uiView = `${uiViewData.$type}:${uiViewData.fqn}`;\n const view = config && `${config.viewDecl.$context.name}: ${config.viewDecl.$name} (${config.viewDecl.$type})`;\n\n return { 'ui-view fqn': uiView, 'state: view name': view };\n }).sort((a, b) => a['ui-view fqn'].localeCompare(b['ui-view fqn']));\n\n consoletable(mapping);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceEvent(event: string, viewConfig: ViewConfig) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${viewConfigString(viewConfig)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceUIViewEvent(event: string, viewData: ActiveUIView) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${uiViewString(viewData)}`);\n }\n}\n\n/**\n * The [[Trace]] singleton\n *\n * #### Example:\n * ```js\n * import {trace} from \"angular-ui-router\";\n * trace.enable(1, 5);\n * ```\n */\nlet trace = new Trace();\nexport {trace};\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport {StateDeclaration} from \"../state/interface\";\nimport {Predicate} from \"../common/common\";\n\nimport {Transition} from \"./transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TargetState} from \"../state/targetState\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * The TransitionOptions object can be used to change the behavior of a transition.\n *\n * It is passed as the third argument to [[StateService.go]], [[StateService.transitionTo]].\n * It can also be used with a `uiSref`.\n */\nexport interface TransitionOptions {\n /**\n * This option changes how the Transition interacts with the browser's location bar (URL).\n *\n * - If `true`, it will update the url in the location bar.\n * - If `false`, it will not update the url in the location bar.\n * - If it is the string `\"replace\"`, it will update the url and also replace the last history record.\n *\n * @default `true`\n */\n location ?: (boolean|string);\n\n /**\n * When transitioning to relative path (e.g '`^`'), this option defines which state to be relative from.\n * @default `$state.current`\n */\n relative ?: (string|StateDeclaration|StateObject);\n\n /**\n * This option sets whether or not the transition's parameter values should be inherited from\n * the current parameter values.\n *\n * - If `true`, it will inherit parameter values from the current parameter values.\n * - If `false`, only the parameters which are provided to `transitionTo` will be used.\n *\n * @default `false`\n */\n inherit ?: boolean;\n\n /**\n * @deprecated\n */\n notify ?: boolean;\n\n /**\n * This option may be used to force states which are currently active to reload.\n *\n * During a normal transition, a state is \"retained\" if:\n * - It was previously active\n * - The state's parameter values have not changed\n * - All the parent states' parameter values have not changed\n *\n * Forcing a reload of a state will cause it to be exited and entered, which will:\n * - Refetch that state's resolve data\n * - Exit the state (onExit hook)\n * - Re-enter the state (onEnter hook)\n * - Re-render the views (controllers and templates)\n *\n * - When `true`, the destination state (and all parent states) will be reloaded.\n * - When it is a string and is the name of a state, or when it is a State object,\n * that state and any children states will be reloaded.\n *\n * @default `false`\n */\n reload ?: (boolean|string|StateDeclaration|StateObject);\n /**\n * You can define your own Transition Options inside this property and use them, e.g., from a Transition Hook\n */\n custom ?: any;\n /** @internalapi */\n reloadState ?: (StateObject);\n /** @internalapi\n * If this transition is a redirect, this property should be the original Transition (which was redirected to this one)\n */\n redirectedFrom?: Transition;\n /** @internalapi */\n current ?: () => Transition;\n /** @internalapi */\n source ?: \"sref\" | \"url\" | \"redirect\" | \"otherwise\" | \"unknown\";\n}\n\n/** @internalapi */\nexport interface TransitionHookOptions {\n current ?: () => Transition; //path?\n transition ?: Transition;\n hookType ?: string;\n target ?: any;\n traceData ?: any;\n bind ?: any;\n stateHook ?: boolean;\n}\n\n/**\n * TreeChanges encapsulates the various Paths that are involved in a Transition.\n *\n * Get a TreeChanges object using [[Transition.treeChanges]]\n *\n * A UI-Router Transition is from one Path in a State Tree to another Path. For a given Transition,\n * this object stores the \"to\" and \"from\" paths, as well as subsets of those: the \"retained\",\n * \"exiting\" and \"entering\" paths.\n *\n * Each path in TreeChanges is an array of [[PathNode]] objects. Each PathNode in the array corresponds to a portion\n * of a nested state.\n *\n * For example, if you had a nested state named `foo.bar.baz`, it would have three\n * portions, `foo, bar, baz`. If you transitioned **to** `foo.bar.baz` and inspected the [[TreeChanges.to]]\n * Path, you would find a node in the array for each portion: `foo`, `bar`, and `baz`.\n *\n * ---\n *\n * @todo show visual state tree\n */\nexport interface TreeChanges {\n /** @nodoc */\n [key: string]: PathNode[];\n\n /** The path of nodes in the state tree that the transition is coming *from* */\n from: PathNode[];\n\n /** The path of nodes in the state tree that the transition is going *to* */\n to: PathNode[];\n\n /**\n * The path of active nodes that the transition is retaining.\n *\n * These nodes are neither exited, nor entered.\n * Before and after the transition is successful, these nodes are active.\n */\n retained: PathNode[];\n\n /**\n * The path of previously active nodes that the transition is exiting.\n *\n * After the Transition is successful, these nodes are no longer active.\n *\n * Note that a state that is being reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n exiting: PathNode[];\n\n /**\n * The path of nodes that the transition is entering.\n *\n * After the Transition is successful, these nodes will be active.\n * Because they are entering, they have their resolves fetched, `onEnter` hooks run, and their views\n * (component(s) or controller(s)+template(s)) refreshed.\n *\n * Note that a state that is reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n entering: PathNode[];\n}\n\nexport type IHookRegistration = (matchCriteria: HookMatchCriteria, callback: HookFn, options?: HookRegOptions) => Function;\n\n/**\n * The signature for Transition Hooks.\n *\n * Transition hooks are callback functions that hook into the lifecycle of transitions.\n * As a transition runs, it reaches certain lifecycle events.\n * As each event occurs, the hooks which are registered for the event are called (in priority order).\n *\n * A transition hook may alter a Transition by returning a [[HookResult]].\n *\n * #### See:\n *\n * - [[IHookRegistry.onBefore]]\n * - [[IHookRegistry.onStart]]\n * - [[IHookRegistry.onFinish]]\n * - [[IHookRegistry.onSuccess]]\n * - [[IHookRegistry.onError]]\n *\n * @param transition the current [[Transition]]\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n *\n */\nexport interface TransitionHookFn {\n (transition: Transition) : HookResult;\n}\n\n/**\n * The signature for Transition State Hooks.\n *\n * A function which hooks into a lifecycle event for a specific state.\n *\n * Transition State Hooks are callback functions that hook into the lifecycle events of specific states during a transition.\n * As a transition runs, it may exit some states, retain (keep) states, and enter states.\n * As each lifecycle event occurs, the hooks which are registered for the event and that state are called (in priority order).\n *\n * #### See:\n *\n * - [[IHookRegistry.onExit]]\n * - [[IHookRegistry.onRetain]]\n * - [[IHookRegistry.onEnter]]\n *\n * @param transition the current [[Transition]]\n * @param state the [[StateObject]] that the hook is bound to\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n */\nexport interface TransitionStateHookFn {\n (transition: Transition, state: StateDeclaration) : HookResult;\n}\n\n/**\n * The signature for Transition onCreate Hooks.\n *\n * Transition onCreate Hooks are callbacks that allow customization or preprocessing of\n * a Transition before it is returned from [[TransitionService.create]]\n *\n * @param transition the [[Transition]] that was just created\n * @return a [[Transition]] which will then be returned from [[TransitionService.create]]\n */\nexport interface TransitionCreateHookFn {\n (transition: Transition): void;\n}\n\nexport type HookFn = (TransitionHookFn|TransitionStateHookFn|TransitionCreateHookFn);\n\n/**\n * The return value of a [[TransitionHookFn]] or [[TransitionStateHookFn]]\n *\n * When returned from a [[TransitionHookFn]] or [[TransitionStateHookFn]], these values alter the running [[Transition]]:\n *\n * - `false`: the transition will be cancelled.\n * - [[TargetState]]: the transition will be redirected to the new target state (see: [[StateService.target]])\n * - `Promise`: the transition will wait for the promise to resolve or reject\n * - If the promise is rejected (or resolves to `false`), the transition will be cancelled\n * - If the promise resolves to a [[TargetState]], the transition will be redirected\n * - If the promise resolves to anything else, the transition will resume\n * - Anything else: the transition will resume\n */\nexport type HookResult = (boolean | TargetState | void | Promise);\n\n/**\n * These options may be provided when registering a Transition Hook (such as `onStart`)\n */\nexport interface HookRegOptions {\n /**\n * Sets the priority of the registered hook\n *\n * Hooks of the same type (onBefore, onStart, etc) are invoked in priority order. A hook with a higher priority\n * is invoked before a hook with a lower priority.\n *\n * The default hook priority is 0\n */\n priority?: number;\n\n /**\n * Specifies what `this` is bound to during hook invocation.\n */\n bind?: any;\n\n /**\n * Limits the number of times that the hook will be invoked.\n * Once the hook has been invoked this many times, it is automatically deregistered.\n */\n invokeLimit?: number;\n}\n\n/**\n * This interface specifies the api for registering Transition Hooks. Both the\n * [[TransitionService]] and also the [[Transition]] object itself implement this interface.\n * Note: the Transition object only allows hooks to be registered before the Transition is started.\n */\nexport interface IHookRegistry {\n /**\n * Registers a [[TransitionHookFn]], called *before a transition starts*.\n *\n * Registers a transition lifecycle hook, which is invoked before a transition even begins.\n * This hook can be useful to implement logic which prevents a transition from even starting, such\n * as authentication, redirection\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onBefore` hooks are invoked *before a Transition starts*.\n * No resolves have been fetched yet.\n * Each `onBefore` hook is invoked synchronously, in the same call stack as [[StateService.transitionTo]].\n * The registered `onBefore` hooks are invoked in priority order.\n *\n * Note: during the `onBefore` phase, additional hooks can be added to the specific [[Transition]] instance.\n * These \"on-the-fly\" hooks only affect the currently running transition..\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * If any hook modifies the transition *synchronously* (by throwing, returning `false`, or returning\n * a [[TargetState]]), the remainder of the hooks are skipped.\n * If a hook returns a promise, the remainder of the `onBefore` hooks are still invoked synchronously.\n * All promises are resolved, and processed asynchronously before the `onStart` phase of the Transition.\n *\n * ### Examples\n *\n * #### Default Substate\n *\n * This example redirects any transition from 'home' to 'home.dashboard'. This is commonly referred to as a\n * \"default substate\".\n *\n * @example\n * ```js\n * // ng2\n * transitionService.onBefore({ to: 'home' }, (trans: Transition) =>\n * trans.router.stateService.target(\"home.dashboard\"));\n * ```\n *\n * #### Data Driven Default Substate\n *\n * This example provides data-driven default substate functionality. It matches on a transition to any state\n * which has `defaultSubstate: \"some.sub.state\"` defined. See: [[Transition.to]] which returns the \"to state\"\n * definition.\n *\n * @example\n * ```js\n * // ng1\n * // state declaration\n * {\n * name: 'home',\n * template: '
',\n * defaultSubstate: 'home.dashboard'\n * }\n *\n * var criteria = {\n * to: function(state) {\n * return state.defaultSubstate != null;\n * }\n * }\n *\n * $transitions.onBefore(criteria, function(trans: Transition) {\n * var substate = trans.to().defaultSubstate;\n * return trans.router.stateService.target(substate);\n * });\n * ```\n *\n *\n * #### Require authentication\n *\n * This example cancels a transition to a state which requires authentication, if the user is not currently authenticated.\n *\n * This example assumes a state tree where all states which require authentication are children of a parent `'requireauth'` state.\n * This example assumes `MyAuthService` synchronously returns a boolean from `isAuthenticated()`.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onBefore( { to: 'requireauth.**' }, function(trans) {\n * var myAuthService = trans.injector().get('MyAuthService');\n * // If isAuthenticated returns false, the transition is cancelled.\n * return myAuthService.isAuthenticated();\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @returns a function which deregisters the hook.\n */\n onBefore(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called when a transition starts.\n *\n * Registers a transition lifecycle hook, which is invoked as a transition starts running.\n * This hook can be useful to perform some asynchronous action before completing a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onStart` hooks are invoked asynchronously when the Transition starts running.\n * This happens after the `onBefore` phase is complete.\n * At this point, the Transition has not yet exited nor entered any states.\n * The registered `onStart` hooks are invoked in priority order.\n *\n * Note: A built-in `onStart` hook with high priority is used to fetch any eager resolve data.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Example\n *\n * #### Login during transition\n *\n * This example intercepts any transition to a state which requires authentication, when the user is\n * not currently authenticated. It allows the user to authenticate asynchronously, then resumes the\n * transition. If the user did not authenticate successfully, it redirects to the \"guest\" state, which\n * does not require authentication.\n *\n * This example assumes:\n * - a state tree where all states which require authentication are children of a parent `'auth'` state.\n * - `MyAuthService.isAuthenticated()` synchronously returns a boolean.\n * - `MyAuthService.authenticate()` presents a login dialog, and returns a promise which is resolved\n * or rejected, whether or not the login attempt was successful.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onStart( { to: 'auth.**' }, function(trans) {\n * var $state = trans.router.stateService;\n * var MyAuthService = trans.injector().get('MyAuthService');\n *\n * // If the user is not authenticated\n * if (!MyAuthService.isAuthenticated()) {\n *\n * // Then return a promise for a successful login.\n * // The transition will wait for this promise to settle\n *\n * return MyAuthService.authenticate().catch(function() {\n *\n * // If the authenticate() method failed for whatever reason,\n * // redirect to a 'guest' state which doesn't require auth.\n * return $state.target(\"guest\");\n * });\n * }\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onStart(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is entered.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being entered.\n *\n * Since this hook is run only when the specific state is being *entered*, it can be useful for\n * performing tasks when entering a submodule/feature area such as initializing a stateful service,\n * or for guarding access to a submodule/feature area.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onEnter` hooks generally specify `{ entering: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onEnter` hooks are invoked when the Transition is entering a state.\n * States are entered after the `onRetain` phase is complete.\n * If more than one state is being entered, the parent state is entered first.\n * The registered `onEnter` hooks for a state are invoked in priority order.\n *\n * Note: A built-in `onEnter` hook with high priority is used to fetch lazy resolve data for states being entered.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onEnter` hooks using the [[TransitionService]], you may define an `onEnter` hook\n * directly on a state declaration (see: [[StateDeclaration.onEnter]]).\n *\n *\n * ### Examples\n *\n * #### Audit Log\n *\n * This example uses a service to log that a user has entered the admin section of an app.\n * This assumes that there are substates of the \"admin\" state, such as \"admin.users\", \"admin.pages\", etc.\n * @example\n * ```\n *\n * $transitions.onEnter({ entering: 'admin' }, function(transition, state) {\n * var AuditService = trans.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * ```\n *\n * #### Audit Log (inside a state declaration)\n *\n * The `onEnter` inside this state declaration is syntactic sugar for the previous Audit Log example.\n * ```\n * {\n * name: 'admin',\n * component: 'admin',\n * onEnter: function($transition$, $state$) {\n * var AuditService = $transition$.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * }\n * ```\n *\n * Note: A state declaration's `onEnter` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onEnter(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is retained/kept.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) for\n * a specific state that was previously active will remain active (is not being entered nor exited).\n *\n * This hook is invoked when a state is \"retained\" or \"kept\".\n * It means the transition is coming *from* a substate of the retained state *to* a substate of the retained state.\n * This hook can be used to perform actions when the user moves from one substate to another, such as between steps in a wizard.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onRetain` hooks generally specify `{ retained: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onRetain` hooks are invoked after any `onExit` hooks have been fired.\n * If more than one state is retained, the child states' `onRetain` hooks are invoked first.\n * The registered `onRetain` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onRetain` hooks using the [[TransitionService]], you may define an `onRetain` hook\n * directly on a state declaration (see: [[StateDeclaration.onRetain]]).\n *\n * Note: A state declaration's `onRetain` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onRetain(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is exited.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being exited.\n *\n * Since this hook is run only when the specific state is being *exited*, it can be useful for\n * performing tasks when leaving a submodule/feature area such as cleaning up a stateful service,\n * or for preventing the user from leaving a state or submodule until some criteria is satisfied.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onExit` hooks generally specify `{ exiting: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onExit` hooks are invoked when the Transition is exiting a state.\n * States are exited after any `onStart` phase is complete.\n * If more than one state is being exited, the child states are exited first.\n * The registered `onExit` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onExit` hooks using the [[TransitionService]], you may define an `onExit` hook\n * directly on a state declaration (see: [[StateDeclaration.onExit]]).\n *\n * Note: A state declaration's `onExit` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onExit(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called *just before a transition finishes*.\n *\n * Registers a transition lifecycle hook, which is invoked just before a transition finishes.\n * This hook is a last chance to cancel or redirect a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onFinish` hooks are invoked after the `onEnter` phase is complete.\n * These hooks are invoked just before the transition is \"committed\".\n * Each hook is invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onFinish(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a successful transition completed.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition successfully completes.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onSuccess` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If the Transition is successful and its promise is resolved, then the `onSuccess` hooks are invoked.\n * Since these hooks are run after the transition is over, their return value is ignored.\n * The `onSuccess` hooks are invoked in priority order.\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onSuccess(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a transition has errored.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition has been rejected for any reason.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * The `onError` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If a Transition fails, its promise is rejected and the `onError` hooks are invoked.\n * The `onError` hooks are invoked in priority order.\n *\n * Since these hooks are run after the transition is over, their return value is ignored.\n *\n * A transition \"errors\" if it was started, but failed to complete (for any reason).\n * A *non-exhaustive list* of reasons a transition can error:\n *\n * - A transition was cancelled because a new transition started while it was still running (`Transition superseded`)\n * - A transition was cancelled by a Transition Hook returning false\n * - A transition was redirected by a Transition Hook returning a [[TargetState]]\n * - A Transition Hook or resolve function threw an error\n * - A Transition Hook returned a rejected promise\n * - A resolve function returned a rejected promise\n *\n * To check the failure reason, inspect the return value of [[Transition.error]].\n *\n * Note: `onError` should be used for targeted error handling, or error recovery.\n * For simple catch-all error reporting, use [[StateService.defaultErrorHandler]].\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onError(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Returns all the registered hooks of a given `hookName` type\n *\n * #### Example:\n * ```\n * $transitions.getHooks(\"onEnter\")\n * ```\n */\n getHooks(hookName: string): RegisteredHook[];\n\n /** @hidden place to store the hooks */\n _registeredHooks: { [key: string]: RegisteredHook[] };\n}\n\n/** A predicate type which tests if a [[StateObject]] passes some test. Returns a boolean. */\nexport type IStateMatch = Predicate;\n\n/**\n * This object is used to configure whether or not a Transition Hook is invoked for a particular transition,\n * based on the Transition's \"to state\" and \"from state\".\n *\n * Each property (`to`, `from`, `exiting`, `retained`, and `entering`) can be a state [[Glob]] string,\n * a boolean, or a function that takes a state and returns a boolean (see [[HookMatchCriterion]])\n *\n * All properties are optional. If any property is omitted, it is replaced with the value `true`, and always matches.\n * To match any transition, use an empty criteria object `{}`.\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from the `parent` state and going to the `parent.child` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.child'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any substate of `parent` and going directly to the `parent` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any substate of `mymodule`\n * var match = {\n * to: 'mymodule.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any state that has `data.authRequired`\n * // set to a truthy value.\n * var match = {\n * to: function(state) {\n * return state.data != null && state.data.authRequired === true;\n * }\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition that is exiting `parent.child`\n * var match = {\n * exiting: 'parent.child'\n * }\n * ```\n */\nexport interface HookMatchCriteria {\n [key: string]: HookMatchCriterion | undefined;\n\n /** A [[HookMatchCriterion]] to match the destination state */\n to?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match the original (from) state */\n from?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be exiting */\n exiting?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be retained */\n retained?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be entering */\n entering?: HookMatchCriterion;\n}\n\nexport interface IMatchingNodes {\n [key: string]: PathNode[];\n\n to: PathNode[];\n from: PathNode[];\n exiting: PathNode[];\n retained: PathNode[];\n entering: PathNode[];\n}\n\n/** @hidden */\nexport interface RegisteredHooks {\n [key: string]: RegisteredHook[];\n}\n\n/** @hidden */\nexport interface PathTypes {\n [key: string]: PathType;\n\n to: PathType;\n from: PathType;\n exiting: PathType;\n retained: PathType;\n entering: PathType;\n}\n\n/** @hidden */\nexport interface PathType {\n name: string;\n scope: TransitionHookScope;\n}\n\n/**\n * Hook Criterion used to match a transition.\n *\n * A [[Glob]] string that matches the name of a state.\n *\n * Or, a function with the signature `function(state) { return matches; }`\n * which should return a boolean to indicate if a state matches.\n *\n * Or, `true` to always match\n */\nexport type HookMatchCriterion = (string|IStateMatch|boolean)\n\nexport enum TransitionHookPhase { CREATE, BEFORE, RUN, SUCCESS, ERROR }\nexport enum TransitionHookScope { TRANSITION, STATE }\n","/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateDeclaration, StateOrName, TargetStateDef } from \"./interface\";\nimport { TransitionOptions } from \"../transition/interface\";\nimport { StateObject } from \"./stateObject\";\nimport { isString } from \"../common/predicates\";\nimport { stringify } from '../common/strings';\nimport { extend } from '../common';\nimport { StateRegistry } from './stateRegistry';\nimport { RawParams } from '../params';\n\n/**\n * Encapsulate the target (destination) state/params/options of a [[Transition]].\n *\n * This class is frequently used to redirect a transition to a new destination.\n *\n * See:\n *\n * - [[HookResult]]\n * - [[TransitionHookFn]]\n * - [[TransitionService.onStart]]\n *\n * To create a `TargetState`, use [[StateService.target]].\n *\n * ---\n *\n * This class wraps:\n *\n * 1) an identifier for a state\n * 2) a set of parameters\n * 3) and transition options\n * 4) the registered state object (the [[StateDeclaration]])\n *\n * Many UI-Router APIs such as [[StateService.go]] take a [[StateOrName]] argument which can\n * either be a *state object* (a [[StateDeclaration]] or [[StateObject]]) or a *state name* (a string).\n * The `TargetState` class normalizes those options.\n *\n * A `TargetState` may be valid (the state being targeted exists in the registry)\n * or invalid (the state being targeted is not registered).\n */\nexport class TargetState {\n private _definition: StateObject;\n private _params: RawParams;\n private _options: TransitionOptions;\n\n /**\n * The TargetState constructor\n *\n * Note: Do not construct a `TargetState` manually.\n * To create a `TargetState`, use the [[StateService.target]] factory method.\n *\n * @param _stateRegistry The StateRegistry to use to look up the _definition\n * @param _identifier An identifier for a state.\n * Either a fully-qualified state name, or the object used to define the state.\n * @param _params Parameters for the target state\n * @param _options Transition options.\n *\n * @internalapi\n */\n constructor(\n private _stateRegistry: StateRegistry,\n private _identifier: StateOrName,\n _params?: RawParams,\n _options?: TransitionOptions,\n ) {\n this._identifier = _identifier;\n this._params = extend({}, _params || {});\n this._options = extend({}, _options || {});\n this._definition = _stateRegistry.matcher.find(_identifier, this._options.relative);\n }\n\n /** The name of the state this object targets */\n name(): string {\n return this._definition && this._definition.name || this._identifier;\n }\n\n /** The identifier used when creating this TargetState */\n identifier(): StateOrName {\n return this._identifier;\n }\n\n /** The target parameter values */\n params(): RawParams {\n return this._params;\n }\n\n /** The internal state object (if it was found) */\n $state(): StateObject {\n return this._definition;\n }\n\n /** The internal state declaration (if it was found) */\n state(): StateDeclaration {\n return this._definition && this._definition.self;\n }\n\n /** The target options */\n options() {\n return this._options;\n }\n\n /** True if the target state was found */\n exists(): boolean {\n return !!(this._definition && this._definition.self);\n }\n\n /** True if the object is valid */\n valid(): boolean {\n return !this.error();\n }\n\n /** If the object is invalid, returns the reason why */\n error(): string {\n let base = this.options().relative;\n if (!this._definition && !!base) {\n let stateName = base.name ? base.name : base;\n return `Could not resolve '${this.name()}' from state '${stateName}'`;\n }\n if (!this._definition)\n return `No such state '${this.name()}'`;\n if (!this._definition.self)\n return `State '${this.name()}' has an invalid definition`;\n }\n\n toString() {\n return `'${this.name()}'${stringify(this.params())}`;\n }\n\n /** Returns true if the object has a state property that might be a state or state name */\n static isDef = (obj): obj is TargetStateDef =>\n obj && obj.state && (isString(obj.state) || isString(obj.state.name));\n\n /**\n * Returns a copy of this TargetState which targets a different state.\n * The new TargetState has the same parameter values and transition options.\n *\n * @param state The new state that should be targeted\n */\n withState(state: StateOrName): TargetState {\n return new TargetState(this._stateRegistry, state, this._params, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified parameter values.\n *\n * @param params the new parameter values to use\n * @param replace When false (default) the new parameter values will be merged with the current values.\n * When true the parameter values will be used instead of the current values.\n */\n withParams(params: RawParams, replace = false): TargetState {\n const newParams: RawParams = replace ? params : extend({}, this._params, params);\n return new TargetState(this._stateRegistry, this._identifier, newParams, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified Transition Options.\n *\n * @param options the new options to use\n * @param replace When false (default) the new options will be merged with the current options.\n * When true the options will be used instead of the current options.\n */\n withOptions(options: TransitionOptions, replace = false): TargetState {\n const newOpts = replace ? options : extend({}, this._options, options);\n return new TargetState(this._stateRegistry, this._identifier, this._params, newOpts);\n }\n}\n","/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { TransitionHookOptions, HookResult, TransitionHookPhase } from './interface';\nimport { defaults, noop, silentRejection } from '../common/common';\nimport { fnToString, maxLength } from '../common/strings';\nimport { isPromise } from '../common/predicates';\nimport { is, parse } from '../common/hof';\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { Rejection } from './rejectFactory';\nimport { TargetState } from '../state/targetState';\nimport { Transition } from './transition';\nimport { TransitionEventType } from './transitionEventType';\nimport { RegisteredHook } from './hookRegistry';\nimport { StateDeclaration } from '../state/interface';\n\nlet defaultOptions: TransitionHookOptions = {\n current: noop,\n transition: null,\n traceData: {},\n bind: null,\n};\n\nexport type GetResultHandler = (hook: TransitionHook) => ResultHandler;\nexport type GetErrorHandler = (hook: TransitionHook) => ErrorHandler;\n\nexport type ResultHandler = (result: HookResult) => Promise;\nexport type ErrorHandler = (error: any) => Promise;\n\n/** @hidden */\nexport class TransitionHook {\n type: TransitionEventType;\n constructor(private transition: Transition,\n private stateContext: StateDeclaration,\n private registeredHook: RegisteredHook,\n private options: TransitionHookOptions) {\n this.options = defaults(options, defaultOptions);\n this.type = registeredHook.eventType;\n }\n\n /**\n * These GetResultHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetResultHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static HANDLE_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) =>\n hook.handleHookResult(result);\n\n /**\n * If the result is a promise rejection, log it.\n * Otherwise, ignore the result.\n */\n static LOG_REJECTED_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) => {\n isPromise(result) && result.catch(err =>\n hook.logError(Rejection.normalize(err)));\n return undefined;\n }\n\n /**\n * These GetErrorHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetErrorHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static LOG_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n hook.logError(error);\n\n static REJECT_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n silentRejection(error);\n\n static THROW_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) => {\n throw error;\n }\n\n private isSuperseded = () =>\n this.type.hookPhase === TransitionHookPhase.RUN && !this.options.transition.isActive();\n\n logError(err): any {\n this.transition.router.stateService.defaultErrorHandler()(err);\n }\n\n invokeHook(): Promise | void {\n let hook = this.registeredHook;\n if (hook._deregistered) return;\n\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n let options = this.options;\n trace.traceHookInvocation(this, this.transition, options);\n\n const invokeCallback = () =>\n hook.callback.call(options.bind, this.transition, this.stateContext);\n\n const normalizeErr = err =>\n Rejection.normalize(err).toPromise();\n\n const handleError = err =>\n hook.eventType.getErrorHandler(this)(err);\n\n const handleResult = result =>\n hook.eventType.getResultHandler(this)(result);\n\n try {\n let result = invokeCallback();\n\n if (!this.type.synchronous && isPromise(result)) {\n return result.catch(normalizeErr)\n .then(handleResult, handleError);\n } else {\n return handleResult(result);\n }\n } catch (err) {\n // If callback throws (synchronously)\n return handleError(Rejection.normalize(err));\n } finally {\n if (hook.invokeLimit && ++hook.invokeCount >= hook.invokeLimit) {\n hook.deregister();\n }\n }\n }\n\n /**\n * This method handles the return value of a Transition Hook.\n *\n * A hook can return false (cancel), a TargetState (redirect),\n * or a promise (which may later resolve to false or a redirect)\n *\n * This also handles \"transition superseded\" -- when a new transition\n * was started while the hook was still running\n */\n handleHookResult(result: HookResult): Promise {\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n // Hook returned a promise\n if (isPromise(result)) {\n // Wait for the promise, then reprocess with the resulting value\n return result.then(val => this.handleHookResult(val));\n }\n\n trace.traceHookResult(result, this.transition, this.options);\n\n // Hook returned false\n if (result === false) {\n // Abort this Transition\n return Rejection.aborted(\"Hook aborted transition\").toPromise();\n }\n\n const isTargetState = is(TargetState);\n // hook returned a TargetState\n if (isTargetState(result)) {\n // Halt the current Transition and redirect (a new Transition) to the TargetState.\n return Rejection.redirected(result).toPromise();\n }\n }\n\n\n /**\n * Return a Rejection promise if the transition is no longer current due\n * to a stopped router (disposed), or a new transition has started and superseded this one.\n */\n private getNotCurrentRejection() {\n let router = this.transition.router;\n\n // The router is stopped\n if (router._disposed) {\n return Rejection.aborted(`UIRouter instance #${router.$id} has been stopped (disposed)`).toPromise();\n }\n\n if (this.transition._aborted) {\n return Rejection.aborted().toPromise();\n }\n\n // This transition is no longer current.\n // Another transition started while this hook was still running.\n if (this.isSuperseded()) {\n // Abort this transition\n return Rejection.superseded(this.options.current()).toPromise();\n }\n }\n\n toString() {\n let { options, registeredHook } = this;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = fnToString(registeredHook.callback);\n return `${event} context: ${context}, ${maxLength(200, name)}`;\n }\n\n /**\n * Chains together an array of TransitionHooks.\n *\n * Given a list of [[TransitionHook]] objects, chains them together.\n * Each hook is invoked after the previous one completes.\n *\n * #### Example:\n * ```js\n * var hooks: TransitionHook[] = getHooks();\n * let promise: Promise = TransitionHook.chain(hooks);\n *\n * promise.then(handleSuccess, handleError);\n * ```\n *\n * @param hooks the list of hooks to chain together\n * @param waitFor if provided, the chain is `.then()`'ed off this promise\n * @returns a `Promise` for sequentially invoking the hooks (in order)\n */\n static chain(hooks: TransitionHook[], waitFor?: Promise): Promise {\n // Chain the next hook off the previous\n const createHookChainR = (prev: Promise, nextHook: TransitionHook) =>\n prev.then(() => nextHook.invokeHook());\n return hooks.reduce(createHookChainR, waitFor || services.$q.when());\n }\n\n\n /**\n * Invokes all the provided TransitionHooks, in order.\n * Each hook's return value is checked.\n * If any hook returns a promise, then the rest of the hooks are chained off that promise, and the promise is returned.\n * If no hook returns a promise, then all hooks are processed synchronously.\n *\n * @param hooks the list of TransitionHooks to invoke\n * @param doneCallback a callback that is invoked after all the hooks have successfully completed\n *\n * @returns a promise for the async result, or the result of the callback\n */\n static invokeHooks(hooks: TransitionHook[], doneCallback: (result?: HookResult) => T): Promise | T {\n for (let idx = 0; idx < hooks.length; idx++) {\n let hookResult = hooks[idx].invokeHook();\n\n if (isPromise(hookResult)) {\n let remainingHooks = hooks.slice(idx + 1);\n\n return TransitionHook.chain(remainingHooks, hookResult)\n .then(doneCallback);\n }\n }\n\n return doneCallback();\n }\n\n /**\n * Run all TransitionHooks, ignoring their return value.\n */\n static runAllHooks(hooks: TransitionHook[]): void {\n hooks.forEach(hook => hook.invokeHook());\n }\n\n}\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport { extend, removeFrom, tail, values, identity, map } from \"../common/common\";\nimport {isString, isFunction} from \"../common/predicates\";\nimport {PathNode} from \"../path/pathNode\";\nimport {\n TransitionStateHookFn, TransitionHookFn, TransitionHookPhase, TransitionHookScope, IHookRegistry, PathType,\n} from \"./interface\"; // has or is using\n\nimport {\n HookRegOptions, HookMatchCriteria, TreeChanges,\n HookMatchCriterion, IMatchingNodes, HookFn,\n} from \"./interface\";\nimport {Glob} from \"../common/glob\";\nimport {StateObject} from \"../state/stateObject\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport { TransitionService } from \"./transitionService\";\n\n/**\n * Determines if the given state matches the matchCriteria\n *\n * @hidden\n *\n * @param state a State Object to test against\n * @param criterion\n * - If a string, matchState uses the string as a glob-matcher against the state name\n * - If an array (of strings), matchState uses each string in the array as a glob-matchers against the state name\n * and returns a positive match if any of the globs match.\n * - If a function, matchState calls the function with the state and returns true if the function's result is truthy.\n * @returns {boolean}\n */\nexport function matchState(state: StateObject, criterion: HookMatchCriterion) {\n let toMatch = isString(criterion) ? [criterion] : criterion;\n\n function matchGlobs(_state: StateObject) {\n let globStrings = toMatch;\n for (let i = 0; i < globStrings.length; i++) {\n let glob = new Glob(globStrings[i]);\n\n if ((glob && glob.matches(_state.name)) || (!glob && globStrings[i] === _state.name)) {\n return true;\n }\n }\n return false;\n }\n\n let matchFn = (isFunction(toMatch) ? toMatch : matchGlobs);\n return !!matchFn(state);\n}\n\n/**\n * @internalapi\n * The registration data for a registered transition hook\n */\nexport class RegisteredHook {\n priority: number;\n bind: any;\n invokeCount = 0;\n invokeLimit: number;\n _deregistered = false;\n\n constructor(public tranSvc: TransitionService,\n public eventType: TransitionEventType,\n public callback: HookFn,\n public matchCriteria: HookMatchCriteria,\n public removeHookFromRegistry: (hook: RegisteredHook) => void,\n options: HookRegOptions = {} as any) {\n this.priority = options.priority || 0;\n this.bind = options.bind || null;\n this.invokeLimit = options.invokeLimit;\n }\n\n /**\n * Gets the matching [[PathNode]]s\n *\n * Given an array of [[PathNode]]s, and a [[HookMatchCriterion]], returns an array containing\n * the [[PathNode]]s that the criteria matches, or `null` if there were no matching nodes.\n *\n * Returning `null` is significant to distinguish between the default\n * \"match-all criterion value\" of `true` compared to a `() => true` function,\n * when the nodes is an empty array.\n *\n * This is useful to allow a transition match criteria of `entering: true`\n * to still match a transition, even when `entering === []`. Contrast that\n * with `entering: (state) => true` which only matches when a state is actually\n * being entered.\n */\n private _matchingNodes(nodes: PathNode[], criterion: HookMatchCriterion): PathNode[] {\n if (criterion === true) return nodes;\n let matching = nodes.filter(node => matchState(node.state, criterion));\n return matching.length ? matching : null;\n }\n\n /**\n * Gets the default match criteria (all `true`)\n *\n * Returns an object which has all the criteria match paths as keys and `true` as values, i.e.:\n *\n * ```js\n * {\n * to: true,\n * from: true,\n * entering: true,\n * exiting: true,\n * retained: true,\n * }\n */\n private _getDefaultMatchCriteria(): HookMatchCriteria {\n return map(this.tranSvc._pluginapi._getPathTypes(), () => true);\n }\n\n /**\n * Gets matching nodes as [[IMatchingNodes]]\n *\n * Create a IMatchingNodes object from the TransitionHookTypes that is roughly equivalent to:\n *\n * ```js\n * let matches: IMatchingNodes = {\n * to: _matchingNodes([tail(treeChanges.to)], mc.to),\n * from: _matchingNodes([tail(treeChanges.from)], mc.from),\n * exiting: _matchingNodes(treeChanges.exiting, mc.exiting),\n * retained: _matchingNodes(treeChanges.retained, mc.retained),\n * entering: _matchingNodes(treeChanges.entering, mc.entering),\n * };\n * ```\n */\n private _getMatchingNodes(treeChanges: TreeChanges): IMatchingNodes {\n let criteria = extend(this._getDefaultMatchCriteria(), this.matchCriteria);\n let paths: PathType[] = values(this.tranSvc._pluginapi._getPathTypes());\n\n return paths.reduce((mn: IMatchingNodes, pathtype: PathType) => {\n // STATE scope criteria matches against every node in the path.\n // TRANSITION scope criteria matches against only the last node in the path\n let isStateHook = pathtype.scope === TransitionHookScope.STATE;\n let path = treeChanges[pathtype.name] || [];\n let nodes: PathNode[] = isStateHook ? path : [tail(path)];\n\n mn[pathtype.name] = this._matchingNodes(nodes, criteria[pathtype.name]);\n return mn;\n }, {} as IMatchingNodes);\n }\n\n /**\n * Determines if this hook's [[matchCriteria]] match the given [[TreeChanges]]\n *\n * @returns an IMatchingNodes object, or null. If an IMatchingNodes object is returned, its values\n * are the matching [[PathNode]]s for each [[HookMatchCriterion]] (to, from, exiting, retained, entering)\n */\n matches(treeChanges: TreeChanges): IMatchingNodes {\n let matches = this._getMatchingNodes(treeChanges);\n\n // Check if all the criteria matched the TreeChanges object\n let allMatched = values(matches).every(identity);\n return allMatched ? matches : null;\n }\n\n deregister() {\n this.removeHookFromRegistry(this);\n this._deregistered = true;\n }\n}\n\n/** @hidden Return a registration function of the requested type. */\nexport function makeEvent(registry: IHookRegistry, transitionService: TransitionService, eventType: TransitionEventType) {\n // Create the object which holds the registered transition hooks.\n const _registeredHooks = registry._registeredHooks = (registry._registeredHooks || {});\n const hooks = _registeredHooks[eventType.name] = [];\n const removeHookFn: (hook: RegisteredHook) => void = removeFrom(hooks);\n\n // Create hook registration function on the IHookRegistry for the event\n registry[eventType.name] = hookRegistrationFn;\n\n function hookRegistrationFn(matchObject, callback, options = {}) {\n const registeredHook = new RegisteredHook(transitionService, eventType, callback, matchObject, removeHookFn, options);\n hooks.push(registeredHook);\n return registeredHook.deregister.bind(registeredHook);\n }\n\n return hookRegistrationFn;\n}\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\nimport {extend, tail, assertPredicate, unnestR, identity} from \"../common/common\";\nimport {isArray} from \"../common/predicates\";\n\nimport {\n TransitionOptions, TransitionHookOptions, IHookRegistry, TreeChanges, IMatchingNodes,\n TransitionHookPhase, TransitionHookScope\n} from \"./interface\";\n\nimport {Transition} from \"./transition\";\nimport {TransitionHook} from \"./transitionHook\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TransitionService} from \"./transitionService\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * This class returns applicable TransitionHooks for a specific Transition instance.\n *\n * Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.\n * myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is\n * determined by the type of hook)\n *\n * The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.\n *\n * The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder\n * instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private\n * in the Transition class, so we must also provide the Transition's _treeChanges)\n *\n */\nexport class HookBuilder {\n constructor(private transition: Transition) { }\n\n buildHooksForPhase(phase: TransitionHookPhase): TransitionHook[] {\n let $transitions = this.transition.router.transitionService;\n return $transitions._pluginapi._getEvents(phase)\n .map(type => this.buildHooks(type))\n .reduce(unnestR, [])\n .filter(identity);\n }\n\n /**\n * Returns an array of newly built TransitionHook objects.\n *\n * - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].\n * - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)\n * - For each of the [[PathNode]]s, creates a TransitionHook\n *\n * @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.\n */\n buildHooks(hookType: TransitionEventType): TransitionHook[] {\n let transition = this.transition;\n let treeChanges = transition.treeChanges();\n\n // Find all the matching registered hooks for a given hook type\n let matchingHooks = this.getMatchingHooks(hookType, treeChanges);\n if (!matchingHooks) return [];\n\n let baseHookOptions = {\n transition: transition,\n current: transition.options().current\n };\n\n const makeTransitionHooks = (hook: RegisteredHook) => {\n // Fetch the Nodes that caused this hook to match.\n let matches: IMatchingNodes = hook.matches(treeChanges);\n // Select the PathNode[] that will be used as TransitionHook context objects\n let matchingNodes: PathNode[] = matches[hookType.criteriaMatchPath.name];\n\n // Return an array of HookTuples\n return matchingNodes.map(node => {\n let _options = extend({\n bind: hook.bind,\n traceData: { hookType: hookType.name, context: node }\n }, baseHookOptions);\n\n let state = hookType.criteriaMatchPath.scope === TransitionHookScope.STATE ? node.state.self : null;\n let transitionHook = new TransitionHook(transition, state, hook, _options);\n return { hook, node, transitionHook };\n });\n };\n\n return matchingHooks.map(makeTransitionHooks)\n .reduce(unnestR, [])\n .sort(tupleSort(hookType.reverseSort))\n .map(tuple => tuple.transitionHook);\n }\n\n /**\n * Finds all RegisteredHooks from:\n * - The Transition object instance hook registry\n * - The TransitionService ($transitions) global hook registry\n *\n * which matched:\n * - the eventType\n * - the matchCriteria (to, from, exiting, retained, entering)\n *\n * @returns an array of matched [[RegisteredHook]]s\n */\n public getMatchingHooks(hookType: TransitionEventType, treeChanges: TreeChanges): RegisteredHook[] {\n let isCreate = hookType.hookPhase === TransitionHookPhase.CREATE;\n\n // Instance and Global hook registries\n let $transitions = this.transition.router.transitionService;\n let registries = isCreate ? [ $transitions ] : [ this.transition, $transitions ];\n\n return registries.map((reg: IHookRegistry) => reg.getHooks(hookType.name)) // Get named hooks from registries\n .filter(assertPredicate(isArray, `broken event named: ${hookType.name}`)) // Sanity check\n .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array\n .filter(hook => hook.matches(treeChanges)); // Only those satisfying matchCriteria\n }\n}\n\ninterface HookTuple { hook: RegisteredHook, node: PathNode, transitionHook: TransitionHook }\n\n/**\n * A factory for a sort function for HookTuples.\n *\n * The sort function first compares the PathNode depth (how deep in the state tree a node is), then compares\n * the EventHook priority.\n *\n * @param reverseDepthSort a boolean, when true, reverses the sort order for the node depth\n * @returns a tuple sort function\n */\nfunction tupleSort(reverseDepthSort = false) {\n return function nodeDepthThenPriority(l: HookTuple, r: HookTuple): number {\n let factor = reverseDepthSort ? -1 : 1;\n let depthDelta = (l.node.state.path.length - r.node.state.path.length) * factor;\n return depthDelta !== 0 ? depthDelta : r.hook.priority - l.hook.priority;\n }\n}","/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, filter, map} from \"../common/common\";\nimport {isArray, isDefined} from \"../common/predicates\";\nimport {ParamTypeDefinition} from \"./interface\";\n\n/**\n * An internal class which implements [[ParamTypeDefinition]].\n *\n * A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.\n * When a param type definition is registered, an instance of this class is created internally.\n *\n * This class has naive implementations for all the [[ParamTypeDefinition]] methods.\n *\n * Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.\n *\n * #### Example:\n * ```js\n * var paramTypeDef = {\n * decode: function(val) { return parseInt(val, 10); },\n * encode: function(val) { return val && val.toString(); },\n * equals: function(a, b) { return this.is(a) && a === b; },\n * is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },\n * pattern: /\\d+/\n * }\n *\n * var paramType = new ParamType(paramTypeDef);\n * ```\n * @internalapi\n */\nexport class ParamType implements ParamTypeDefinition {\n /** @inheritdoc */\n pattern: RegExp = /.*/;\n /** The name/id of the parameter type */\n name: string;\n /** @inheritdoc */\n raw: boolean;\n /** @inheritdoc */\n dynamic: boolean;\n /** @inheritdoc */\n inherit = true;\n\n /**\n * @param def A configuration object which contains the custom type definition. The object's\n * properties will override the default methods and/or pattern in `ParamType`'s public interface.\n * @returns a new ParamType object\n */\n constructor(def: ParamTypeDefinition) {\n extend(this, def);\n }\n\n\n // consider these four methods to be \"abstract methods\" that should be overridden\n /** @inheritdoc */\n is(val: any, key?: string): boolean { return true; }\n /** @inheritdoc */\n encode(val: any, key?: string): (string|string[]) { return val; }\n /** @inheritdoc */\n decode(val: string, key?: string): any { return val; }\n /** @inheritdoc */\n equals(a: any, b: any): boolean { return a == b; }\n\n\n $subPattern() {\n let sub = this.pattern.toString();\n return sub.substr(1, sub.length - 2);\n }\n\n toString() {\n return `{ParamType:${this.name}}`;\n }\n\n /** Given an encoded string, or a decoded object, returns a decoded object */\n $normalize(val: any) {\n return this.is(val) ? val : this.decode(val);\n }\n\n /**\n * Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.\n * e.g.:\n * - urlmatcher pattern \"/path?{queryParam[]:int}\"\n * - url: \"/path?queryParam=1&queryParam=2\n * - $stateParams.queryParam will be [1, 2]\n * if `mode` is \"auto\", then\n * - url: \"/path?queryParam=1 will create $stateParams.queryParam: 1\n * - url: \"/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]\n */\n $asArray(mode: (boolean|\"auto\"), isSearch: boolean) {\n if (!mode) return this;\n if (mode === \"auto\" && !isSearch) throw new Error(\"'auto' array mode is for query parameters only\");\n return new ( ArrayType)(this, mode);\n }\n}\n\n/**\n * Wraps up a `ParamType` object to handle array values.\n * @internalapi\n */\nfunction ArrayType(type: ParamType, mode: (boolean|\"auto\")) {\n // Wrap non-array value as array\n function arrayWrap(val: any): any[] {\n return isArray(val) ? val : (isDefined(val) ? [ val ] : []);\n }\n\n // Unwrap array value for \"auto\" mode. Return undefined for empty array.\n function arrayUnwrap(val: any) {\n switch (val.length) {\n case 0: return undefined;\n case 1: return mode === \"auto\" ? val[0] : val;\n default: return val;\n }\n }\n\n // Wraps type (.is/.encode/.decode) functions to operate on each value of an array\n function arrayHandler(callback: (x: any) => any, allTruthyMode?: boolean) {\n return function handleArray(val: any) {\n if (isArray(val) && val.length === 0) return val;\n let arr = arrayWrap(val);\n let result = map(arr, callback);\n return (allTruthyMode === true) ? filter(result, x => !x).length === 0 : arrayUnwrap(result);\n };\n }\n\n // Wraps type (.equals) functions to operate on each value of an array\n function arrayEqualsHandler(callback: (l: any, r: any) => boolean) {\n return function handleArray(val1: any, val2: any) {\n let left = arrayWrap(val1), right = arrayWrap(val2);\n if (left.length !== right.length) return false;\n for (let i = 0; i < left.length; i++) {\n if (!callback(left[i], right[i])) return false;\n }\n return true;\n };\n }\n\n ['encode', 'decode', 'equals', '$normalize'].forEach(name => {\n var paramTypeFn = type[name].bind(type);\n var wrapperFn: Function = name === 'equals' ? arrayEqualsHandler : arrayHandler;\n this[name] = wrapperFn(paramTypeFn);\n });\n\n extend(this, {\n dynamic: type.dynamic,\n name: type.name,\n pattern: type.pattern,\n inherit: type.inherit,\n is: arrayHandler(type.is.bind(type), true),\n $arrayMode: mode\n });\n}\n","/**\n * @coreapi\n * @module params\n */ /** for typedoc */\nimport { extend, filter, map, allTrueR } from \"../common/common\";\nimport { prop } from \"../common/hof\";\nimport { isInjectable, isDefined, isString, isArray, isUndefined } from \"../common/predicates\";\nimport { RawParams, ParamDeclaration } from \"../params/interface\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypes } from \"./paramTypes\";\nimport { UrlMatcherFactory } from \"../url/urlMatcherFactory\";\n\n/** @hidden */ let hasOwn = Object.prototype.hasOwnProperty;\n/** @hidden */ let isShorthand = (cfg: ParamDeclaration) =>\n [\"value\", \"type\", \"squash\", \"array\", \"dynamic\"].filter(hasOwn.bind(cfg || {})).length === 0;\n\n/** @internalapi */\nexport enum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\n\n/** @hidden */\nfunction unwrapShorthand(cfg: ParamDeclaration): ParamDeclaration {\n cfg = isShorthand(cfg) && { value: cfg } as any || cfg;\n\n getStaticDefaultValue['__cacheable'] = true;\n function getStaticDefaultValue() {\n return cfg.value;\n }\n\n return extend(cfg, {\n $$fn: isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue,\n });\n}\n\n/** @hidden */\nfunction getType(cfg: ParamDeclaration, urlType: ParamType, location: DefType, id: string, paramTypes: ParamTypes) {\n if (cfg.type && urlType && urlType.name !== 'string') throw new Error(`Param '${id}' has two type configurations.`);\n if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type as string)) return paramTypes.type(cfg.type as string);\n if (urlType) return urlType;\n if (!cfg.type) {\n let type = location === DefType.CONFIG ? \"any\" :\n location === DefType.PATH ? \"path\" :\n location === DefType.SEARCH ? \"query\" : \"string\";\n return paramTypes.type(type);\n }\n return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type as string);\n}\n\n/**\n * @internalapi\n * returns false, true, or the squash value to indicate the \"default parameter url squash policy\".\n */\nfunction getSquashPolicy(config: ParamDeclaration, isOptional: boolean, defaultPolicy: (boolean|string)) {\n let squash = config.squash;\n if (!isOptional || squash === false) return false;\n if (!isDefined(squash) || squash == null) return defaultPolicy;\n if (squash === true || isString(squash)) return squash;\n throw new Error(`Invalid squash policy: '${squash}'. Valid policies: false, true, or arbitrary string`);\n}\n\n/** @internalapi */\nfunction getReplace(config: ParamDeclaration, arrayMode: boolean, isOptional: boolean, squash: (string|boolean)) {\n let replace: any, configuredKeys: string[], defaultPolicy = [\n {from: \"\", to: (isOptional || arrayMode ? undefined : \"\")},\n {from: null, to: (isOptional || arrayMode ? undefined : \"\")},\n ];\n replace = isArray(config.replace) ? config.replace : [];\n if (isString(squash)) replace.push({ from: squash, to: undefined });\n configuredKeys = map(replace, prop(\"from\"));\n return filter(defaultPolicy, item => configuredKeys.indexOf(item.from) === -1).concat(replace);\n}\n\n\n/** @internalapi */\nexport class Param {\n id: string;\n type: ParamType;\n location: DefType;\n isOptional: boolean;\n dynamic: boolean;\n raw: boolean;\n squash: (boolean|string);\n replace: [{ to: any, from: any }];\n inherit: boolean;\n array: boolean;\n config: any;\n /** Cache the default value if it is a static value */\n _defaultValueCache: {\n defaultValue: any,\n };\n\n constructor(id: string, type: ParamType, config: ParamDeclaration, location: DefType, urlMatcherFactory: UrlMatcherFactory) {\n config = unwrapShorthand(config);\n type = getType(config, type, location, id, urlMatcherFactory.paramTypes);\n let arrayMode = getArrayMode();\n type = arrayMode ? type.$asArray(arrayMode, location === DefType.SEARCH) : type;\n let isOptional = config.value !== undefined || location === DefType.SEARCH;\n let dynamic = isDefined(config.dynamic) ? !!config.dynamic : !!type.dynamic;\n let raw = isDefined(config.raw) ? !!config.raw : !!type.raw;\n let squash = getSquashPolicy(config, isOptional, urlMatcherFactory.defaultSquashPolicy());\n let replace = getReplace(config, arrayMode, isOptional, squash);\n let inherit = isDefined(config.inherit) ? !!config.inherit : !!type.inherit;\n\n // array config: param name (param[]) overrides default settings. explicit config overrides param name.\n function getArrayMode() {\n let arrayDefaults = { array: (location === DefType.SEARCH ? \"auto\" : false) };\n let arrayParamNomenclature = id.match(/\\[\\]$/) ? { array: true } : {};\n return extend(arrayDefaults, arrayParamNomenclature, config).array;\n }\n\n extend(this, {id, type, location, isOptional, dynamic, raw, squash, replace, inherit, array: arrayMode, config });\n }\n\n isDefaultValue(value: any): boolean {\n return this.isOptional && this.type.equals(this.value(), value);\n }\n\n /**\n * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the\n * default value, which may be the result of an injectable function.\n */\n value(value?: any): any {\n /**\n * [Internal] Get the default value of a parameter, which may be an injectable function.\n */\n const getDefaultValue = () => {\n if (this._defaultValueCache) return this._defaultValueCache.defaultValue;\n\n if (!services.$injector) throw new Error(\"Injectable functions cannot be called at configuration time\");\n\n let defaultValue = services.$injector.invoke(this.config.$$fn);\n\n if (defaultValue !== null && defaultValue !== undefined && !this.type.is(defaultValue))\n throw new Error(`Default value (${defaultValue}) for parameter '${this.id}' is not an instance of ParamType (${this.type.name})`);\n\n if (this.config.$$fn['__cacheable']) {\n this._defaultValueCache = { defaultValue };\n }\n\n return defaultValue;\n };\n\n const replaceSpecialValues = (val: any) => {\n for (let tuple of this.replace) {\n if (tuple.from === val) return tuple.to;\n }\n return val;\n };\n\n value = replaceSpecialValues(value);\n\n return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);\n }\n\n isSearch(): boolean {\n return this.location === DefType.SEARCH;\n }\n\n validates(value: any): boolean {\n // There was no parameter value, but the param is optional\n if ((isUndefined(value) || value === null) && this.isOptional) return true;\n\n // The value was not of the correct ParamType, and could not be decoded to the correct ParamType\n const normalized = this.type.$normalize(value);\n if (!this.type.is(normalized)) return false;\n\n // The value was of the correct type, but when encoded, did not match the ParamType's regexp\n const encoded = this.type.encode(normalized);\n return !(isString(encoded) && !this.type.pattern.exec( encoded));\n }\n\n toString() {\n return `{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`;\n }\n\n static values(params: Param[], values: RawParams = {}): RawParams {\n const paramValues = {} as RawParams;\n for (let param of params) {\n paramValues[param.id] = param.value(values[param.id]);\n }\n return paramValues;\n }\n\n /**\n * Finds [[Param]] objects which have different param values\n *\n * Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects\n *\n * @param params: The list of Param objects to filter\n * @param values1: The first set of parameter values\n * @param values2: the second set of parameter values\n *\n * @returns any Param objects whose values were different between values1 and values2\n */\n static changed(params: Param[], values1: RawParams = {}, values2: RawParams = {}): Param[] {\n return params.filter(param => !param.type.equals(values1[param.id], values2[param.id]));\n }\n\n /**\n * Checks if two param value objects are equal (for a set of [[Param]] objects)\n *\n * @param params The list of [[Param]] objects to check\n * @param values1 The first set of param values\n * @param values2 The second set of param values\n *\n * @returns true if the param values in values1 and values2 are equal\n */\n static equals(params: Param[], values1 = {}, values2 = {}): boolean {\n return Param.changed(params, values1, values2).length === 0;\n }\n\n /** Returns true if a the parameter values are valid, according to the Param definitions */\n static validates(params: Param[], values: RawParams = {}): boolean {\n return params.map(param => param.validates(values[param.id])).reduce(allTrueR, true);\n }\n}","/** @module path */ /** for typedoc */\nimport {extend, applyPairs, find, allTrueR, pairs, arrayTuples} from \"../common/common\";\nimport {propEq} from \"../common/hof\";\nimport {StateObject} from \"../state/stateObject\";\nimport {RawParams} from \"../params/interface\";\nimport {Param} from \"../params/param\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {ViewConfig} from \"../view/interface\";\n\n/**\n * @internalapi\n *\n * A node in a [[TreeChanges]] path\n *\n * For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.\n * Each PathNode corresponds to a state being entered, exited, or retained.\n * The stateful information includes parameter values and resolve data.\n */\nexport class PathNode {\n /** The state being entered, exited, or retained */\n public state: StateObject;\n /** The parameters declared on the state */\n public paramSchema: Param[];\n /** The parameter values that belong to the state */\n public paramValues: { [key: string]: any };\n /** The individual (stateful) resolvable objects that belong to the state */\n public resolvables: Resolvable[];\n /** The state's declared view configuration objects */\n public views: ViewConfig[];\n\n /** Creates a copy of a PathNode */\n constructor(node: PathNode);\n /** Creates a new (empty) PathNode for a State */\n constructor(state: StateObject);\n constructor(stateOrNode: any) {\n if (stateOrNode instanceof PathNode) {\n let node: PathNode = stateOrNode;\n this.state = node.state;\n this.paramSchema = node.paramSchema.slice();\n this.paramValues = extend({}, node.paramValues);\n this.resolvables = node.resolvables.slice();\n this.views = node.views && node.views.slice();\n } else {\n let state: StateObject = stateOrNode;\n this.state = state;\n this.paramSchema = state.parameters({ inherit: false });\n this.paramValues = {};\n this.resolvables = state.resolvables.map(res => res.clone());\n }\n }\n\n /** Sets [[paramValues]] for the node, from the values of an object hash */\n applyRawParams(params: RawParams): PathNode {\n const getParamVal = (paramDef: Param) => [ paramDef.id, paramDef.value(params[paramDef.id]) ];\n this.paramValues = this.paramSchema.reduce((memo, pDef) => applyPairs(memo, getParamVal(pDef)), {});\n return this;\n }\n\n /** Gets a specific [[Param]] metadata that belongs to the node */\n parameter(name: string): Param {\n return find(this.paramSchema, propEq(\"id\", name));\n }\n\n /**\n * @returns true if the state and parameter values for another PathNode are\n * equal to the state and param values for this PathNode\n */\n equals(node: PathNode, paramsFn?: GetParamsFn): boolean {\n const diff = this.diff(node, paramsFn);\n return diff && diff.length === 0;\n }\n\n /**\n * Finds Params with different parameter values on another PathNode.\n *\n * Given another node (of the same state), finds the parameter values which differ.\n * Returns the [[Param]] (schema objects) whose parameter values differ.\n *\n * Given another node for a different state, returns `false`\n *\n * @param node The node to compare to\n * @param paramsFn A function that returns which parameters should be compared.\n * @returns The [[Param]]s which differ, or null if the two nodes are for different states\n */\n diff(node: PathNode, paramsFn?: GetParamsFn): Param[] | false {\n if (this.state !== node.state) return false;\n\n const params: Param[] = paramsFn ? paramsFn(this) : this.paramSchema;\n return Param.changed(params, this.paramValues, node.paramValues);\n }\n\n /** Returns a clone of the PathNode */\n static clone(node: PathNode) {\n return new PathNode(node);\n }\n}\n\n/** @hidden */\nexport type GetParamsFn = (pathNode: PathNode) => Param[];","/** @module path */ /** for typedoc */\n\nimport {\n extend, find, pick, omit, tail, mergeR, values, unnestR, Predicate, inArray, arrayTuples,\n} from \"../common/common\";\nimport {prop, propEq, not} from \"../common/hof\";\n\nimport {RawParams} from \"../params/interface\";\nimport {TreeChanges} from \"../transition/interface\";\nimport {ViewConfig} from \"../view/interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nimport {StateObject} from \"../state/stateObject\";\nimport {TargetState} from \"../state/targetState\";\nimport {GetParamsFn, PathNode} from \"./pathNode\";\nimport {ViewService} from \"../view/view\";\nimport { Param } from '../params/param';\nimport { StateRegistry } from '../state';\n\n/**\n * This class contains functions which convert TargetStates, Nodes and paths from one type to another.\n */\nexport class PathUtils {\n\n constructor() { }\n\n /** Given a PathNode[], create an TargetState */\n static makeTargetState(registry: StateRegistry, path: PathNode[]): TargetState {\n let state = tail(path).state;\n return new TargetState(registry, state, path.map(prop(\"paramValues\")).reduce(mergeR, {}), {});\n }\n\n static buildPath(targetState: TargetState) {\n let toParams = targetState.params();\n return targetState.$state().path.map(state => new PathNode(state).applyRawParams(toParams));\n }\n\n /** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */\n static buildToPath(fromPath: PathNode[], targetState: TargetState): PathNode[] {\n let toPath: PathNode[] = PathUtils.buildPath(targetState);\n if (targetState.options().inherit) {\n return PathUtils.inheritParams(fromPath, toPath, Object.keys(targetState.params()));\n }\n return toPath;\n }\n\n /**\n * Creates ViewConfig objects and adds to nodes.\n *\n * On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state\n */\n static applyViewConfigs($view: ViewService, path: PathNode[], states: StateObject[]) {\n // Only apply the viewConfigs to the nodes for the given states\n path.filter(node => inArray(states, node.state)).forEach(node => {\n let viewDecls: _ViewDeclaration[] = values(node.state.views || {});\n let subPath = PathUtils.subPath(path, n => n === node);\n let viewConfigs: ViewConfig[][] = viewDecls.map(view => $view.createViewConfig(subPath, view));\n node.views = viewConfigs.reduce(unnestR, []);\n });\n }\n\n /**\n * Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath\n *\n * For a parameter in a node to be inherited from the from path:\n * - The toPath's node must have a matching node in the fromPath (by state).\n * - The parameter name must not be found in the toKeys parameter array.\n *\n * Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some\n * caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,\n * it is not inherited from the fromPath.\n */\n static inheritParams(fromPath: PathNode[], toPath: PathNode[], toKeys: string[] = []): PathNode[] {\n function nodeParamVals(path: PathNode[], state: StateObject): RawParams {\n let node: PathNode = find(path, propEq('state', state));\n return extend({}, node && node.paramValues);\n }\n\n let noInherit = fromPath.map(node => node.paramSchema)\n .reduce(unnestR, [])\n .filter(param => !param.inherit)\n .map(prop('id'));\n\n /**\n * Given an [[PathNode]] \"toNode\", return a new [[PathNode]] with param values inherited from the\n * matching node in fromPath. Only inherit keys that aren't found in \"toKeys\" from the node in \"fromPath\"\"\n */\n function makeInheritedParamsNode(toNode: PathNode): PathNode {\n // All param values for the node (may include default key/vals, when key was not found in toParams)\n let toParamVals = extend({}, toNode && toNode.paramValues);\n // limited to only those keys found in toParams\n let incomingParamVals = pick(toParamVals, toKeys);\n toParamVals = omit(toParamVals, toKeys);\n let fromParamVals = omit(nodeParamVals(fromPath, toNode.state) || {}, noInherit);\n // extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals\n let ownParamVals: RawParams = extend(toParamVals, fromParamVals, incomingParamVals);\n return new PathNode(toNode.state).applyRawParams(ownParamVals);\n }\n\n // The param keys specified by the incoming toParams\n return toPath.map(makeInheritedParamsNode);\n }\n\n static nonDynamicParams = (node: PathNode): Param[] =>\n node.state.parameters({ inherit: false })\n .filter(param => !param.dynamic);\n\n /**\n * Computes the tree changes (entering, exiting) between a fromPath and toPath.\n */\n static treeChanges(fromPath: PathNode[], toPath: PathNode[], reloadState: StateObject): TreeChanges {\n let keep = 0, max = Math.min(fromPath.length, toPath.length);\n\n const nodesMatch = (node1: PathNode, node2: PathNode) =>\n node1.equals(node2, PathUtils.nonDynamicParams);\n\n while (keep < max && fromPath[keep].state !== reloadState && nodesMatch(fromPath[keep], toPath[keep])) {\n keep++;\n }\n\n /** Given a retained node, return a new node which uses the to node's param values */\n function applyToParams(retainedNode: PathNode, idx: number): PathNode {\n let cloned = PathNode.clone(retainedNode);\n cloned.paramValues = toPath[idx].paramValues;\n return cloned;\n }\n\n let from: PathNode[], retained: PathNode[], exiting: PathNode[], entering: PathNode[], to: PathNode[];\n\n from = fromPath;\n retained = from.slice(0, keep);\n exiting = from.slice(keep);\n\n // Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped\n let retainedWithToParams = retained.map(applyToParams);\n entering = toPath.slice(keep);\n to = (retainedWithToParams).concat(entering);\n\n return { from, to, retained, exiting, entering };\n }\n\n /**\n * Returns a new path which is: the subpath of the first path which matches the second path.\n *\n * The new path starts from root and contains any nodes that match the nodes in the second path.\n * It stops before the first non-matching node.\n *\n * Nodes are compared using their state property and their parameter values.\n * If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.\n *\n * @param pathA the first path\n * @param pathB the second path\n * @param paramsFn a function which returns the parameters to consider when comparing\n *\n * @returns an array of PathNodes from the first path which match the nodes in the second path\n */\n static matching(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): PathNode[] {\n let done = false;\n let tuples: PathNode[][] = arrayTuples(pathA, pathB);\n return tuples.reduce((matching, [nodeA, nodeB]) => {\n done = done || !nodeA.equals(nodeB, paramsFn);\n return done ? matching : matching.concat(nodeA);\n }, []);\n }\n\n /**\n * Returns true if two paths are identical.\n *\n * @param pathA\n * @param pathB\n * @param paramsFn a function which returns the parameters to consider when comparing\n * @returns true if the the states and parameter values for both paths are identical\n */\n static equals(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): boolean {\n return pathA.length === pathB.length &&\n PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length;\n }\n\n /**\n * Return a subpath of a path, which stops at the first matching node\n *\n * Given an array of nodes, returns a subset of the array starting from the first node,\n * stopping when the first node matches the predicate.\n *\n * @param path a path of [[PathNode]]s\n * @param predicate a [[Predicate]] fn that matches [[PathNode]]s\n * @returns a subpath up to the matching node, or undefined if no match is found\n */\n static subPath(path: PathNode[], predicate: Predicate): PathNode[] {\n let node = find(path, predicate);\n let elementIdx = path.indexOf(node);\n return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);\n }\n\n /** Gets the raw parameter values from a path */\n static paramValues = (path: PathNode[]) =>\n path.reduce((acc, node) => extend(acc, node.paramValues), {});\n}\n","/**\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {extend, equals, inArray, identity} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {trace} from \"../common/trace\";\nimport {ResolvePolicy, ResolvableLiteral, resolvePolicies} from \"./interface\";\n\nimport {ResolveContext} from \"./resolveContext\";\nimport {stringify} from \"../common/strings\";\nimport {isFunction, isObject} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport { isNullOrUndefined } from '../common';\n\n\n// TODO: explicitly make this user configurable\nexport let defaultResolvePolicy: ResolvePolicy = {\n when: \"LAZY\",\n async: \"WAIT\"\n};\n\n/**\n * The basic building block for the resolve system.\n *\n * Resolvables encapsulate a state's resolve's resolveFn, the resolveFn's declared dependencies, the wrapped (.promise),\n * and the unwrapped-when-complete (.data) result of the resolveFn.\n *\n * Resolvable.get() either retrieves the Resolvable's existing promise, or else invokes resolve() (which invokes the\n * resolveFn) and returns the resulting promise.\n *\n * Resolvable.get() and Resolvable.resolve() both execute within a context path, which is passed as the first\n * parameter to those fns.\n */\nexport class Resolvable implements ResolvableLiteral {\n token: any;\n policy: ResolvePolicy;\n resolveFn: Function;\n deps: any[];\n\n data: any;\n resolved: boolean = false;\n promise: Promise = undefined;\n\n /** This constructor creates a Resolvable copy */\n constructor(resolvable: Resolvable)\n\n /** This constructor creates a new Resolvable from the plain old [[ResolvableLiteral]] javascript object */\n constructor(resolvable: ResolvableLiteral)\n\n /**\n * This constructor creates a new `Resolvable`\n *\n * #### Example:\n * ```js\n * var resolvable1 = new Resolvable('mytoken', http => http.get('foo.json').toPromise(), [Http]);\n *\n * var resolvable2 = new Resolvable(UserService, dep => new UserService(dep.data), [SomeDependency]);\n *\n * var resolvable1Clone = new Resolvable(resolvable1);\n * ```\n *\n * @param token The new resolvable's injection token, such as `\"userList\"` (a string) or `UserService` (a class).\n * When this token is used during injection, the resolved value will be injected.\n * @param resolveFn The function that returns the resolved value, or a promise for the resolved value\n * @param deps An array of dependencies, which will be injected into the `resolveFn`\n * @param policy the [[ResolvePolicy]] defines when and how the Resolvable is processed\n * @param data Pre-resolved data. If the resolve value is already known, it may be provided here.\n */\n constructor(token: any, resolveFn: Function, deps?: any[], policy?: ResolvePolicy, data?: any)\n constructor(arg1: any, resolveFn?: Function, deps?: any[], policy?: ResolvePolicy, data?: any) {\n if (arg1 instanceof Resolvable) {\n extend(this, arg1);\n } else if (isFunction(resolveFn)) {\n if (isNullOrUndefined(arg1)) throw new Error(\"new Resolvable(): token argument is required\");\n if (!isFunction(resolveFn)) throw new Error(\"new Resolvable(): resolveFn argument must be a function\");\n\n this.token = arg1;\n this.policy = policy;\n this.resolveFn = resolveFn;\n this.deps = deps || [];\n\n this.data = data;\n this.resolved = data !== undefined;\n this.promise = this.resolved ? services.$q.when(this.data) : undefined;\n } else if (isObject(arg1) && arg1.token && isFunction(arg1.resolveFn)) {\n let literal = arg1;\n return new Resolvable(literal.token, literal.resolveFn, literal.deps, literal.policy, literal.data);\n }\n }\n\n getPolicy(state: StateObject): ResolvePolicy {\n let thisPolicy = this.policy || {};\n let statePolicy = state && state.resolvePolicy || {};\n return {\n when: thisPolicy.when || statePolicy.when || defaultResolvePolicy.when,\n async: thisPolicy.async || statePolicy.async || defaultResolvePolicy.async,\n };\n }\n\n /**\n * Asynchronously resolve this Resolvable's data\n *\n * Given a ResolveContext that this Resolvable is found in:\n * Wait for this Resolvable's dependencies, then invoke this Resolvable's function\n * and update the Resolvable's state\n */\n resolve(resolveContext: ResolveContext, trans?: Transition) {\n let $q = services.$q;\n\n // Gets all dependencies from ResolveContext and wait for them to be resolved\n const getResolvableDependencies = () =>\n $q.all(resolveContext.getDependencies(this).map(resolvable =>\n resolvable.get(resolveContext, trans))) as Promise;\n\n // Invokes the resolve function passing the resolved dependencies as arguments\n const invokeResolveFn = (resolvedDeps: any[]) =>\n this.resolveFn.apply(null, resolvedDeps);\n\n /**\n * For RXWAIT policy:\n *\n * Given an observable returned from a resolve function:\n * - enables .cache() mode (this allows multicast subscribers)\n * - then calls toPromise() (this triggers subscribe() and thus fetches)\n * - Waits for the promise, then return the cached observable (not the first emitted value).\n */\n const waitForRx = (observable$: any) => {\n let cached = observable$.cache(1);\n return cached.take(1).toPromise().then(() => cached);\n };\n\n // If the resolve policy is RXWAIT, wait for the observable to emit something. otherwise pass through.\n let node: PathNode = resolveContext.findNode(this);\n let state: StateObject = node && node.state;\n let maybeWaitForRx = this.getPolicy(state).async === \"RXWAIT\" ? waitForRx : identity;\n\n // After the final value has been resolved, update the state of the Resolvable\n const applyResolvedValue = (resolvedValue: any) => {\n this.data = resolvedValue;\n this.resolved = true;\n trace.traceResolvableResolved(this, trans);\n return this.data;\n };\n\n // Sets the promise property first, then getsResolvableDependencies in the context of the promise chain. Always waits one tick.\n return this.promise = $q.when()\n .then(getResolvableDependencies)\n .then(invokeResolveFn)\n .then(maybeWaitForRx)\n .then(applyResolvedValue);\n }\n\n /**\n * Gets a promise for this Resolvable's data.\n *\n * Fetches the data and returns a promise.\n * Returns the existing promise if it has already been fetched once.\n */\n get(resolveContext: ResolveContext, trans?: Transition): Promise {\n return this.promise || this.resolve(resolveContext, trans);\n }\n\n toString() {\n return `Resolvable(token: ${stringify(this.token)}, requires: [${this.deps.map(stringify)}])`;\n }\n\n clone(): Resolvable {\n return new Resolvable(this);\n }\n \n static fromData = (token: any, data: any) => \n new Resolvable(token, () => data, null, null, data);\n}\n","/**\n * # The Resolve subsystem\n *\n * This subsystem is an asynchronous, hierarchical Dependency Injection system.\n *\n * Typically, resolve is configured on a state using a [[StateDeclaration.resolve]] declaration.\n *\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {Resolvable} from \"./resolvable\";\n\n/**\n * An interface which is similar to an Angular 2 `Provider`\n */\nexport interface ProviderLike {\n provide: any,\n useClass?: any,\n useFactory?: Function,\n useValue?: any,\n useExisting?: any,\n deps?: any[]\n}\n\n/**\n * A plain object used to describe a [[Resolvable]]\n *\n * These objects may be used in the [[StateDeclaration.resolve]] array to declare\n * async data that the state or substates require.\n *\n * #### Example:\n * ```js\n *\n * var state = {\n * name: 'main',\n * resolve: [\n * { token: 'myData', deps: [MyDataApi], resolveFn: (myDataApi) => myDataApi.getData() },\n * ],\n * }\n * ```\n */\nexport interface ResolvableLiteral {\n /**\n * A Dependency Injection token\n *\n * This Resolvable's DI token.\n * The Resolvable will be injectable elsewhere using the token.\n */\n token: any;\n\n /**\n * A function which fetches the Resolvable's data\n *\n * A function which returns one of:\n *\n * - The resolved value (synchronously)\n * - A promise for the resolved value\n * - An Observable of the resolved value(s)\n *\n * This function will be provided the dependencies listed in [[deps]] as its arguments.\n * The resolve system will asynchronously fetch the dependencies before invoking this function.\n */\n resolveFn: Function;\n\n /**\n * Defines the Resolve Policy\n *\n * A policy that defines when to invoke the resolve,\n * and whether to wait for async and unwrap the data\n */\n policy?: ResolvePolicy;\n\n /**\n * The Dependency Injection tokens\n *\n * This is an array of Dependency Injection tokens for the dependencies of the [[resolveFn]].\n *\n * The DI tokens are references to other `Resolvables`, or to other\n * services from the native DI system.\n */\n deps?: any[];\n\n /** Pre-resolved data. */\n data?: any\n}\n\n/**\n * Defines how a resolve is processed during a transition\n *\n * This object is the [[StateDeclaration.resolvePolicy]] property.\n *\n * #### Example:\n * ```js\n * // Fetched when the resolve's state is being entered.\n * // Wait for the promise to resolve.\n * var policy1 = { when: \"LAZY\", async: \"WAIT\" }\n *\n * // Fetched when the Transition is starting.\n * // Do not wait for the returned promise to resolve.\n * // Inject the raw promise/value\n * var policy2 = { when: \"EAGER\", async: \"NOWAIT\" }\n * ```\n *\n * The policy for a given Resolvable is merged from three sources (highest priority first):\n *\n * - 1) Individual resolve definition\n * - 2) State definition\n * - 3) Global default\n *\n * #### Example:\n * ```js\n * // Wait for an Observable to emit one item.\n * // Since `wait` is not specified, it uses the `wait`\n * // policy defined on the state, or the global default\n * // if no `wait` policy is defined on the state\n * var myResolvablePolicy = { async: \"RXWAIT\" }\n * ```\n */\nexport interface ResolvePolicy {\n /**\n * Defines when a Resolvable is resolved (fetched) during a transition\n *\n * - `LAZY` (default)\n * - Resolved as the resolve's state is being entered\n * - `EAGER`\n * - Resolved as the transition is starting\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched when each state is entered.\n * All of `main` resolves are processed before fetching `main.home` resolves.\n * ```js\n * var state = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n *\n * var state = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n * ```\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched at the same time when the transition starts.\n * This happens earlier in the lifecycle than when states are entered.\n * All of the `main` and `main.home` resolves are fetched as soon as possible.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n *\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n * ```\n */\n when?: PolicyWhen;\n\n /**\n * Determines the unwrapping behavior of asynchronous resolve values.\n *\n * - `WAIT` (default)\n * - If a promise is returned from the resolveFn, wait for the promise before proceeding\n * - The unwrapped value from the promise\n * - `NOWAIT`\n * - If a promise is returned from the resolve, do not wait for the promise.\n * - Any other value returned is wrapped in a promise.\n * - The promise will not be unwrapped.\n * - The promise itself will be provided when the resolve is injected or bound elsewhere.\n * - `RXWAIT`\n * - When an Observable is returned from the resolveFn, wait until the Observable emits at least one item.\n * - The Observable item will not be unwrapped.\n * - The Observable stream itself will be provided when the resolve is injected or bound elsewhere.\n *\n * #### Example:\n * The `Transition` will not wait for the resolve promise(s) from `main` to settle before continuing.\n * Resolves for `main` will be provided to components wrapped in a `Promise`.\n *\n * The `Transition` will wait for the `main.home` resolve promises.\n * Resolved values will be unwrapped before being provided to components.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { async: 'NOWAIT' },\n * }\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { async: 'WAIT' }, // default\n * }\n * ```\n */\n async?: PolicyAsync;\n}\n\nexport type PolicyWhen = \"LAZY\" | \"EAGER\" ;\nexport type PolicyAsync = \"WAIT\" | \"NOWAIT\" | \"RXWAIT\" ;\n\n/** @internalapi */\nexport let resolvePolicies = {\n when: {\n LAZY: \"LAZY\",\n EAGER: \"EAGER\"\n },\n async: {\n WAIT: \"WAIT\",\n NOWAIT: \"NOWAIT\",\n RXWAIT: \"RXWAIT\"\n }\n};\n","/** @module resolve */\n/** for typedoc */\nimport { find, tail, uniqR, unnestR, inArray } from \"../common/common\";\nimport { propEq, not } from \"../common/hof\";\nimport { trace } from \"../common/trace\";\nimport { services, $InjectorLike } from \"../common/coreservices\";\nimport { resolvePolicies, PolicyWhen, ResolvePolicy } from \"./interface\";\nimport { PathNode } from \"../path/pathNode\";\nimport { Resolvable } from \"./resolvable\";\nimport { StateObject } from \"../state/stateObject\";\nimport { PathUtils } from \"../path/pathFactory\";\nimport { stringify } from \"../common/strings\";\nimport { Transition } from \"../transition/transition\";\nimport { UIInjector } from \"../interface\";\nimport { isUndefined } from '../common';\n\nconst whens = resolvePolicies.when;\nconst ALL_WHENS = [whens.EAGER, whens.LAZY];\nconst EAGER_WHENS = [whens.EAGER];\n\nexport const NATIVE_INJECTOR_TOKEN: string = \"Native Injector\";\n\n/**\n * Encapsulates Dependency Injection for a path of nodes\n *\n * UI-Router states are organized as a tree.\n * A nested state has a path of ancestors to the root of the tree.\n * When a state is being activated, each element in the path is wrapped as a [[PathNode]].\n * A `PathNode` is a stateful object that holds things like parameters and resolvables for the state being activated.\n *\n * The ResolveContext closes over the [[PathNode]]s, and provides DI for the last node in the path.\n */\nexport class ResolveContext {\n _injector: UIInjector;\n\n constructor(private _path: PathNode[]) { }\n\n /** Gets all the tokens found in the resolve context, de-duplicated */\n getTokens(): any[] {\n return this._path.reduce((acc, node) => acc.concat(node.resolvables.map(r => r.token)), []).reduce(uniqR, []);\n }\n\n /**\n * Gets the Resolvable that matches the token\n *\n * Gets the last Resolvable that matches the token in this context, or undefined.\n * Throws an error if it doesn't exist in the ResolveContext\n */\n getResolvable(token: any): Resolvable {\n let matching = this._path.map(node => node.resolvables)\n .reduce(unnestR, [])\n .filter((r: Resolvable) => r.token === token);\n return tail(matching);\n }\n\n /** Returns the [[ResolvePolicy]] for the given [[Resolvable]] */\n getPolicy(resolvable: Resolvable): ResolvePolicy {\n let node = this.findNode(resolvable);\n return resolvable.getPolicy(node.state);\n }\n\n /**\n * Returns a ResolveContext that includes a portion of this one\n *\n * Given a state, this method creates a new ResolveContext from this one.\n * The new context starts at the first node (root) and stops at the node for the `state` parameter.\n *\n * #### Why\n *\n * When a transition is created, the nodes in the \"To Path\" are injected from a ResolveContext.\n * A ResolveContext closes over a path of [[PathNode]]s and processes the resolvables.\n * The \"To State\" can inject values from its own resolvables, as well as those from all its ancestor state's (node's).\n * This method is used to create a narrower context when injecting ancestor nodes.\n *\n * @example\n * `let ABCD = new ResolveContext([A, B, C, D]);`\n *\n * Given a path `[A, B, C, D]`, where `A`, `B`, `C` and `D` are nodes for states `a`, `b`, `c`, `d`:\n * When injecting `D`, `D` should have access to all resolvables from `A`, `B`, `C`, `D`.\n * However, `B` should only be able to access resolvables from `A`, `B`.\n *\n * When resolving for the `B` node, first take the full \"To Path\" Context `[A,B,C,D]` and limit to the subpath `[A,B]`.\n * `let AB = ABCD.subcontext(a)`\n */\n subContext(state: StateObject): ResolveContext {\n return new ResolveContext(PathUtils.subPath(this._path, node => node.state === state));\n }\n\n /**\n * Adds Resolvables to the node that matches the state\n *\n * This adds a [[Resolvable]] (generally one created on the fly; not declared on a [[StateDeclaration.resolve]] block).\n * The resolvable is added to the node matching the `state` parameter.\n *\n * These new resolvables are not automatically fetched.\n * The calling code should either fetch them, fetch something that depends on them,\n * or rely on [[resolvePath]] being called when some state is being entered.\n *\n * Note: each resolvable's [[ResolvePolicy]] is merged with the state's policy, and the global default.\n *\n * @param newResolvables the new Resolvables\n * @param state Used to find the node to put the resolvable on\n */\n addResolvables(newResolvables: Resolvable[], state: StateObject) {\n let node = find(this._path, propEq('state', state));\n let keys = newResolvables.map(r => r.token);\n node.resolvables = node.resolvables.filter(r => keys.indexOf(r.token) === -1).concat(newResolvables);\n }\n\n /**\n * Returns a promise for an array of resolved path Element promises\n *\n * @param when\n * @param trans\n * @returns {Promise|any}\n */\n resolvePath(when: PolicyWhen = \"LAZY\", trans?: Transition): Promise<{ token: any, value: any }[]> {\n // This option determines which 'when' policy Resolvables we are about to fetch.\n let whenOption: string = inArray(ALL_WHENS, when) ? when : \"LAZY\";\n // If the caller specified EAGER, only the EAGER Resolvables are fetched.\n // if the caller specified LAZY, both EAGER and LAZY Resolvables are fetched.`\n let matchedWhens = whenOption === resolvePolicies.when.EAGER ? EAGER_WHENS : ALL_WHENS;\n\n // get the subpath to the state argument, if provided\n trace.traceResolvePath(this._path, when, trans);\n\n const matchesPolicy = (acceptedVals: string[], whenOrAsync: \"when\"|\"async\") =>\n (resolvable: Resolvable) =>\n inArray(acceptedVals, this.getPolicy(resolvable)[whenOrAsync]);\n\n // Trigger all the (matching) Resolvables in the path\n // Reduce all the \"WAIT\" Resolvables into an array\n let promises: Promise[] = this._path.reduce((acc, node) => {\n let nodeResolvables = node.resolvables.filter(matchesPolicy(matchedWhens, 'when'));\n let nowait = nodeResolvables.filter(matchesPolicy(['NOWAIT'], 'async'));\n let wait = nodeResolvables.filter(not(matchesPolicy(['NOWAIT'], 'async')));\n\n // For the matching Resolvables, start their async fetch process.\n let subContext = this.subContext(node.state);\n let getResult = (r: Resolvable) => r.get(subContext, trans)\n // Return a tuple that includes the Resolvable's token\n .then(value => ({ token: r.token, value: value }));\n nowait.forEach(getResult);\n return acc.concat(wait.map(getResult));\n }, []);\n\n // Wait for all the \"WAIT\" resolvables\n return services.$q.all(promises);\n }\n\n injector(): UIInjector {\n return this._injector || (this._injector = new UIInjectorImpl(this));\n }\n\n findNode(resolvable: Resolvable): PathNode {\n return find(this._path, (node: PathNode) => inArray(node.resolvables, resolvable));\n }\n\n /**\n * Gets the async dependencies of a Resolvable\n *\n * Given a Resolvable, returns its dependencies as a Resolvable[]\n */\n getDependencies(resolvable: Resolvable): Resolvable[] {\n let node = this.findNode(resolvable);\n // Find which other resolvables are \"visible\" to the `resolvable` argument\n // subpath stopping at resolvable's node, or the whole path (if the resolvable isn't in the path)\n let subPath: PathNode[] = PathUtils.subPath(this._path, x => x === node) || this._path;\n let availableResolvables: Resolvable[] = subPath\n .reduce((acc, _node) => acc.concat(_node.resolvables), []) //all of subpath's resolvables\n .filter(res => res !== resolvable); // filter out the `resolvable` argument\n\n const getDependency = (token: any) => {\n let matching = availableResolvables.filter(r => r.token === token);\n if (matching.length) return tail(matching);\n\n let fromInjector = this.injector().getNative(token);\n if (isUndefined(fromInjector)) {\n throw new Error(\"Could not find Dependency Injection token: \" + stringify(token));\n }\n\n return new Resolvable(token, () => fromInjector, [], fromInjector);\n };\n\n return resolvable.deps.map(getDependency);\n }\n}\n\nclass UIInjectorImpl implements UIInjector {\n native: $InjectorLike;\n\n constructor(public context: ResolveContext) {\n this.native = this.get(NATIVE_INJECTOR_TOKEN) || services.$injector;\n }\n\n get(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) {\n if (this.context.getPolicy(resolvable).async === 'NOWAIT') {\n return resolvable.get(this.context);\n }\n\n if (!resolvable.resolved) {\n throw new Error(\"Resolvable async .get() not complete:\" + stringify(resolvable.token))\n }\n return resolvable.data;\n }\n\n return this.getNative(token);\n }\n\n getAsync(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) return resolvable.get(this.context);\n return services.$q.when(this.native.get(token));\n }\n\n getNative(token: any) {\n return this.native && this.native.get(token);\n }\n}\n","/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { stringify } from '../common/strings';\nimport { map, find, extend, mergeR, tail, omit, arrayTuples, unnestR, identity, anyTrueR } from '../common/common';\nimport {isObject, isUndefined} from '../common/predicates';\nimport { prop, propEq, val, not, is } from '../common/hof';\nimport { StateDeclaration, StateOrName } from '../state/interface';\nimport {\n TransitionOptions, TreeChanges, IHookRegistry, TransitionHookPhase, RegisteredHooks, HookRegOptions,\n HookMatchCriteria, TransitionStateHookFn, TransitionHookFn,\n} from './interface'; // has or is using\nimport { TransitionHook } from './transitionHook';\nimport { matchState, makeEvent, RegisteredHook } from './hookRegistry';\nimport { HookBuilder } from './hookBuilder';\nimport { PathNode } from '../path/pathNode';\nimport { PathUtils } from '../path/pathFactory';\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { RawParams } from '../params/interface';\nimport { ResolvableLiteral } from '../resolve/interface';\n\n/** @hidden */\nconst stateSelf: (_state: StateObject) => StateDeclaration = prop(\"self\");\n\n/**\n * Represents a transition between two states.\n *\n * When navigating to a state, we are transitioning **from** the current state **to** the new state.\n *\n * This object contains all contextual information about the to/from states, parameters, resolves.\n * It has information about all states being entered and exited as a result of the transition.\n */\nexport class Transition implements IHookRegistry {\n\n /** @hidden */\n static diToken = Transition;\n\n /**\n * A unique identifier for the transition.\n *\n * This is an auto incrementing integer, starting from `0`.\n */\n $id: number;\n\n /**\n * A reference to the [[UIRouter]] instance\n *\n * This reference can be used to access the router services, such as the [[StateService]]\n */\n router: UIRouter;\n\n /** @hidden */\n private _deferred = services.$q.defer();\n /**\n * This promise is resolved or rejected based on the outcome of the Transition.\n *\n * When the transition is successful, the promise is resolved\n * When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error\n */\n promise: Promise = this._deferred.promise;\n /**\n * A boolean which indicates if the transition was successful\n *\n * After a successful transition, this value is set to true.\n * After an unsuccessful transition, this value is set to false.\n *\n * The value will be undefined if the transition is not complete\n */\n success: boolean;\n /** @hidden */\n _aborted: boolean;\n /** @hidden */\n private _error: any;\n\n /** @hidden Holds the hook registration functions such as those passed to Transition.onStart() */\n _registeredHooks: RegisteredHooks = { };\n\n /** @hidden */\n private _options: TransitionOptions;\n /** @hidden */\n private _treeChanges: TreeChanges;\n /** @hidden */\n private _targetState: TargetState;\n /** @hidden */\n private _hookBuilder = new HookBuilder(this);\n\n\n /** @hidden */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n\n /** @hidden\n * Creates the transition-level hook registration functions\n * (which can then be used to register hooks)\n */\n private createTransitionHookRegFns() {\n this.router.transitionService._pluginapi._getEvents()\n .filter(type => type.hookPhase !== TransitionHookPhase.CREATE)\n .forEach(type => makeEvent(this, this.router.transitionService, type));\n }\n\n /** @internalapi */\n getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /**\n * Creates a new Transition object.\n *\n * If the target state is not valid, an error is thrown.\n *\n * @internalapi\n *\n * @param fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`\n * encapsulates the \"from state\".\n * @param targetState The target state and parameters being transitioned to (also, the transition options)\n * @param router The [[UIRouter]] instance\n */\n constructor(fromPath: PathNode[], targetState: TargetState, router: UIRouter) {\n this.router = router;\n this._targetState = targetState;\n\n if (!targetState.valid()) {\n throw new Error(targetState.error());\n }\n\n // current() is assumed to come from targetState.options, but provide a naive implementation otherwise.\n this._options = extend({ current: val(this) }, targetState.options());\n this.$id = router.transitionService._transitionCount++;\n let toPath = PathUtils.buildToPath(fromPath, targetState);\n this._treeChanges = PathUtils.treeChanges(fromPath, toPath, this._options.reloadState);\n this.createTransitionHookRegFns();\n\n let onCreateHooks = this._hookBuilder.buildHooksForPhase(TransitionHookPhase.CREATE);\n TransitionHook.invokeHooks(onCreateHooks, () => null);\n\n this.applyViewConfigs(router);\n }\n\n private applyViewConfigs(router: UIRouter) {\n let enteringStates = this._treeChanges.entering.map(node => node.state);\n PathUtils.applyViewConfigs(router.transitionService.$view, this._treeChanges.to, enteringStates);\n }\n\n /**\n * @internalapi\n *\n * @returns the internal from [State] object\n */\n $from() {\n return tail(this._treeChanges.from).state;\n }\n\n /**\n * @internalapi\n *\n * @returns the internal to [State] object\n */\n $to() {\n return tail(this._treeChanges.to).state;\n }\n\n /**\n * Returns the \"from state\"\n *\n * Returns the state that the transition is coming *from*.\n *\n * @returns The state declaration object for the Transition's (\"from state\").\n */\n from(): StateDeclaration {\n return this.$from().self;\n }\n\n /**\n * Returns the \"to state\"\n *\n * Returns the state that the transition is going *to*.\n *\n * @returns The state declaration object for the Transition's target state (\"to state\").\n */\n to(): StateDeclaration {\n return this.$to().self;\n }\n\n /**\n * Gets the Target State\n *\n * A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.\n *\n * @returns the [[TargetState]] of this Transition\n */\n targetState() {\n return this._targetState;\n }\n\n /**\n * Determines whether two transitions are equivalent.\n * @deprecated\n */\n is(compare: (Transition|{to?: any, from?: any})): boolean {\n if (compare instanceof Transition) {\n // TODO: Also compare parameters\n return this.is({ to: compare.$to().name, from: compare.$from().name });\n }\n return !(\n (compare.to && !matchState(this.$to(), compare.to)) ||\n (compare.from && !matchState(this.$from(), compare.from))\n );\n }\n\n /**\n * Gets transition parameter values\n *\n * Returns the parameter values for a transition as key/value pairs.\n * This object is immutable.\n *\n * By default, returns the new parameter values (for the \"to state\").\n * To return the previous parameter values, supply `'from'` as the `pathname` argument.\n *\n * @param pathname the name of the treeChanges path to get parameter values for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n *\n * @returns transition parameter values for the desired path.\n */\n params(pathname?: string): any;\n params(pathname?: string): T;\n params(pathname: string = \"to\") {\n return Object.freeze(this._treeChanges[pathname].map(prop(\"paramValues\")).reduce(mergeR, {}));\n }\n\n\n /**\n * Creates a [[UIInjector]] Dependency Injector\n *\n * Returns a Dependency Injector for the Transition's target state (to state).\n * The injector provides resolve values which the target state has access to.\n *\n * The `UIInjector` can also provide values from the native root/global injector (ng1/ng2).\n *\n * #### Example:\n * ```js\n * .onEnter({ entering: 'myState' }, trans => {\n * var myResolveValue = trans.injector().get('myResolve');\n * // Inject a global service from the global/native injector (if it exists)\n * var MyService = trans.injector().get('MyService');\n * })\n * ```\n *\n * In some cases (such as `onBefore`), you may need access to some resolve data but it has not yet been fetched.\n * You can use [[UIInjector.getAsync]] to get a promise for the data.\n * #### Example:\n * ```js\n * .onBefore({}, trans => {\n * return trans.injector().getAsync('myResolve').then(myResolveValue =>\n * return myResolveValue !== 'ABORT';\n * });\n * });\n * ```\n *\n * If a `state` is provided, the injector that is returned will be limited to resolve values that the provided state has access to.\n * This can be useful if both a parent state `foo` and a child state `foo.bar` have both defined a resolve such as `data`.\n * #### Example:\n * ```js\n * .onEnter({ to: 'foo.bar' }, trans => {\n * // returns result of `foo` state's `data` resolve\n * // even though `foo.bar` also has a `data` resolve\n * var fooData = trans.injector('foo').get('data');\n * });\n * ```\n *\n * If you need resolve data from the exiting states, pass `'from'` as `pathName`.\n * The resolve data from the `from` path will be returned.\n * #### Example:\n * ```js\n * .onExit({ exiting: 'foo.bar' }, trans => {\n * // Gets the resolve value of `data` from the exiting state.\n * var fooData = trans.injector(null, 'foo.bar').get('data');\n * });\n * ```\n *\n *\n * @param state Limits the resolves provided to only the resolves the provided state has access to.\n * @param pathName Default: `'to'`: Chooses the path for which to create the injector. Use this to access resolves for `exiting` states.\n *\n * @returns a [[UIInjector]]\n */\n injector(state?: StateOrName, pathName = \"to\"): UIInjector {\n let path: PathNode[] = this._treeChanges[pathName];\n if (state) path = PathUtils.subPath(path, node => node.state === state || node.state.name === state);\n return new ResolveContext(path).injector();\n }\n\n /**\n * Gets all available resolve tokens (keys)\n *\n * This method can be used in conjunction with [[injector]] to inspect the resolve values\n * available to the Transition.\n *\n * This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states\n * in the Transition's [[TreeChanges.to]] path.\n *\n * #### Example:\n * This example logs all resolve values\n * ```js\n * let tokens = trans.getResolveTokens();\n * tokens.forEach(token => console.log(token + \" = \" + trans.injector().get(token)));\n * ```\n *\n * #### Example:\n * This example creates promises for each resolve value.\n * This triggers fetches of resolves (if any have not yet been fetched).\n * When all promises have all settled, it logs the resolve values.\n * ```js\n * let tokens = trans.getResolveTokens();\n * let promise = tokens.map(token => trans.injector().getAsync(token));\n * Promise.all(promises).then(values => console.log(\"Resolved values: \" + values));\n * ```\n *\n * Note: Angular 1 users whould use `$q.all()`\n *\n * @param pathname resolve context's path name (e.g., `to` or `from`)\n *\n * @returns an array of resolve tokens (keys)\n */\n getResolveTokens(pathname: string = \"to\"): any[] {\n return new ResolveContext(this._treeChanges[pathname]).getTokens();\n }\n\n /**\n * Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.\n *\n * #### Example:\n * ```js\n * transitionService.onBefore({}, transition => {\n * transition.addResolvable({\n * token: 'myResolve',\n * deps: ['MyService'],\n * resolveFn: myService => myService.getData()\n * });\n * });\n * ```\n *\n * @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])\n * @param state the state in the \"to path\" which should receive the new resolve (otherwise, the root state)\n */\n addResolvable(resolvable: Resolvable|ResolvableLiteral, state: StateOrName = \"\"): void {\n resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);\n\n let stateName: string = (typeof state === \"string\") ? state : state.name;\n let topath = this._treeChanges.to;\n let targetNode = find(topath, node => node.state.name === stateName);\n let resolveContext: ResolveContext = new ResolveContext(topath);\n resolveContext.addResolvables([resolvable as Resolvable], targetNode.state);\n }\n\n /**\n * Gets the transition from which this transition was redirected.\n *\n * If the current transition is a redirect, this method returns the transition that was redirected.\n *\n * #### Example:\n * ```js\n * let transitionA = $state.go('A').transition\n * transitionA.onStart({}, () => $state.target('B'));\n * $transitions.onSuccess({ to: 'B' }, (trans) => {\n * trans.to().name === 'B'; // true\n * trans.redirectedFrom() === transitionA; // true\n * });\n * ```\n *\n * @returns The previous Transition, or null if this Transition is not the result of a redirection\n */\n redirectedFrom(): Transition {\n return this._options.redirectedFrom || null;\n }\n\n /**\n * Gets the original transition in a redirect chain\n *\n * A transition might belong to a long chain of multiple redirects.\n * This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.\n *\n * #### Example:\n * ```js\n * // states\n * registry.register({ name: 'A', redirectTo: 'B' });\n * registry.register({ name: 'B', redirectTo: 'C' });\n * registry.register({ name: 'C', redirectTo: 'D' });\n * registry.register({ name: 'D' });\n *\n * let transitionA = $state.go('A').transition\n *\n * $transitions.onSuccess({ to: 'D' }, (trans) => {\n * trans.to().name === 'D'; // true\n * trans.redirectedFrom().to().name === 'C'; // true\n * trans.originalTransition() === transitionA; // true\n * trans.originalTransition().to().name === 'A'; // true\n * });\n * ```\n *\n * @returns The original Transition that started a redirect chain\n */\n originalTransition(): Transition {\n let rf = this.redirectedFrom();\n return (rf && rf.originalTransition()) || this;\n }\n\n /**\n * Get the transition options\n *\n * @returns the options for this Transition.\n */\n options(): TransitionOptions {\n return this._options;\n }\n\n /**\n * Gets the states being entered.\n *\n * @returns an array of states that will be entered during this transition.\n */\n entering(): StateDeclaration[] {\n return map(this._treeChanges.entering, prop('state')).map(stateSelf);\n }\n\n /**\n * Gets the states being exited.\n *\n * @returns an array of states that will be exited during this transition.\n */\n exiting(): StateDeclaration[] {\n return map(this._treeChanges.exiting, prop('state')).map(stateSelf).reverse();\n }\n\n /**\n * Gets the states being retained.\n *\n * @returns an array of states that are already entered from a previous Transition, that will not be\n * exited during this Transition\n */\n retained(): StateDeclaration[] {\n return map(this._treeChanges.retained, prop('state')).map(stateSelf);\n }\n\n /**\n * Get the [[ViewConfig]]s associated with this Transition\n *\n * Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.\n * This method fetches the `ViewConfigs` for a given path in the Transition (e.g., \"to\" or \"entering\").\n *\n * @param pathname the name of the path to fetch views for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n * @param state If provided, only returns the `ViewConfig`s for a single state in the path\n *\n * @returns a list of ViewConfig objects for the given path.\n */\n views(pathname: string = \"entering\", state?: StateObject): ViewConfig[] {\n let path = this._treeChanges[pathname];\n path = !state ? path : path.filter(propEq('state', state));\n return path.map(prop(\"views\")).filter(identity).reduce(unnestR, []);\n }\n\n /**\n * Return the transition's tree changes\n *\n * A transition goes from one state/parameters to another state/parameters.\n * During a transition, states are entered and/or exited.\n *\n * This function returns various branches (paths) which represent the changes to the\n * active state tree that are caused by the transition.\n *\n * @param pathname The name of the tree changes path to get:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n */\n treeChanges(pathname: string): PathNode[];\n treeChanges(): TreeChanges;\n treeChanges(pathname?: string) {\n return pathname ? this._treeChanges[pathname] : this._treeChanges;\n }\n\n /**\n * Creates a new transition that is a redirection of the current one.\n *\n * This transition can be returned from a [[TransitionService]] hook to\n * redirect a transition to a new state and/or set of parameters.\n *\n * @internalapi\n *\n * @returns Returns a new [[Transition]] instance.\n */\n redirect(targetState: TargetState): Transition {\n let redirects = 1, trans: Transition = this;\n while ((trans = trans.redirectedFrom()) != null) {\n if (++redirects > 20) throw new Error(`Too many consecutive Transition redirects (20+)`);\n }\n\n let redirectOpts: TransitionOptions = { redirectedFrom: this, source: \"redirect\" };\n // If the original transition was caused by URL sync, then use { location: 'replace' }\n // on the new transition (unless the target state explicitly specifies location: false).\n // This causes the original url to be replaced with the url for the redirect target\n // so the original url disappears from the browser history.\n if (this.options().source === 'url' && targetState.options().location !== false) {\n redirectOpts.location = 'replace';\n }\n\n let newOptions = extend({}, this.options(), targetState.options(), redirectOpts);\n targetState = targetState.withOptions(newOptions, true);\n\n let newTransition = this.router.transitionService.create(this._treeChanges.from, targetState);\n let originalEnteringNodes = this._treeChanges.entering;\n let redirectEnteringNodes = newTransition._treeChanges.entering;\n\n // --- Re-use resolve data from original transition ---\n // When redirecting from a parent state to a child state where the parent parameter values haven't changed\n // (because of the redirect), the resolves fetched by the original transition are still valid in the\n // redirected transition.\n //\n // This allows you to define a redirect on a parent state which depends on an async resolve value.\n // You can wait for the resolve, then redirect to a child state based on the result.\n // The redirected transition does not have to re-fetch the resolve.\n // ---------------------------------------------------------\n\n const nodeIsReloading = (reloadState: StateObject) => (node: PathNode) => {\n return reloadState && node.state.includes[reloadState.name];\n };\n\n // Find any \"entering\" nodes in the redirect path that match the original path and aren't being reloaded\n let matchingEnteringNodes: PathNode[] = PathUtils.matching(redirectEnteringNodes, originalEnteringNodes, PathUtils.nonDynamicParams)\n .filter(not(nodeIsReloading(targetState.options().reloadState)));\n\n // Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.\n matchingEnteringNodes.forEach((node, idx) => {\n node.resolvables = originalEnteringNodes[idx].resolvables;\n });\n\n return newTransition;\n }\n\n /** @hidden If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */\n private _changedParams(): Param[] {\n let tc = this._treeChanges;\n\n /** Return undefined if it's not a \"dynamic\" transition, for the following reasons */\n // If user explicitly wants a reload\n if (this._options.reload) return undefined;\n // If any states are exiting or entering\n if (tc.exiting.length || tc.entering.length) return undefined;\n // If to/from path lengths differ\n if (tc.to.length !== tc.from.length) return undefined;\n // If the to/from paths are different\n let pathsDiffer: boolean = arrayTuples(tc.to, tc.from)\n .map(tuple => tuple[0].state !== tuple[1].state)\n .reduce(anyTrueR, false);\n if (pathsDiffer) return undefined;\n\n // Find any parameter values that differ\n let nodeSchemas: Param[][] = tc.to.map((node: PathNode) => node.paramSchema);\n let [toValues, fromValues] = [tc.to, tc.from].map(path => path.map(x => x.paramValues));\n let tuples = arrayTuples(nodeSchemas, toValues, fromValues);\n\n return tuples.map(([schema, toVals, fromVals]) => Param.changed(schema, toVals, fromVals)).reduce(unnestR, []);\n }\n\n /**\n * Returns true if the transition is dynamic.\n *\n * A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.\n *\n * @returns true if the Transition is dynamic\n */\n dynamic(): boolean {\n let changes = this._changedParams();\n return !changes ? false : changes.map(x => x.dynamic).reduce(anyTrueR, false);\n }\n\n /**\n * Returns true if the transition is ignored.\n *\n * A transition is ignored if no states are entered nor exited, and no parameter values have changed.\n *\n * @returns true if the Transition is ignored.\n */\n ignored(): boolean {\n return !!this._ignoredReason();\n }\n\n /** @hidden */\n _ignoredReason(): \"SameAsCurrent\"|\"SameAsPending\"|undefined {\n const pending = this.router.globals.transition;\n const reloadState = this._options.reloadState;\n\n const same = (pathA, pathB) => {\n if (pathA.length !== pathB.length) return false;\n const matching = PathUtils.matching(pathA, pathB);\n return pathA.length === matching.filter(node => !reloadState || !node.state.includes[reloadState.name]).length;\n };\n\n let newTC = this.treeChanges();\n let pendTC = pending && pending.treeChanges();\n\n if (pendTC && same(pendTC.to, newTC.to) && same(pendTC.exiting, newTC.exiting)) return \"SameAsPending\";\n if (newTC.exiting.length === 0 && newTC.entering.length === 0 && same(newTC.from, newTC.to)) return \"SameAsCurrent\";\n }\n\n /**\n * Runs the transition\n *\n * This method is generally called from the [[StateService.transitionTo]]\n *\n * @internalapi\n *\n * @returns a promise for a successful transition.\n */\n run(): Promise {\n let runAllHooks = TransitionHook.runAllHooks;\n\n // Gets transition hooks array for the given phase\n const getHooksFor = (phase: TransitionHookPhase) =>\n this._hookBuilder.buildHooksForPhase(phase);\n\n // When the chain is complete, then resolve or reject the deferred\n const transitionSuccess = () => {\n trace.traceSuccess(this.$to(), this);\n this.success = true;\n this._deferred.resolve(this.to());\n runAllHooks(getHooksFor(TransitionHookPhase.SUCCESS));\n };\n\n const transitionError = (reason: any) => {\n trace.traceError(reason, this);\n this.success = false;\n this._deferred.reject(reason);\n this._error = reason;\n runAllHooks(getHooksFor(TransitionHookPhase.ERROR));\n };\n\n const runTransition = () => {\n // Wait to build the RUN hook chain until the BEFORE hooks are done\n // This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.\n let allRunHooks = getHooksFor(TransitionHookPhase.RUN);\n let done = () => services.$q.when(undefined);\n return TransitionHook.invokeHooks(allRunHooks, done);\n };\n\n const startTransition = () => {\n let globals = this.router.globals;\n\n globals.lastStartedTransitionId = this.$id;\n globals.transition = this;\n globals.transitionHistory.enqueue(this);\n\n trace.traceTransitionStart(this);\n\n return services.$q.when(undefined);\n };\n\n let allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);\n TransitionHook.invokeHooks(allBeforeHooks, startTransition)\n .then(runTransition)\n .then(transitionSuccess, transitionError);\n\n return this.promise;\n }\n\n /** Checks if this transition is currently active/running. */\n isActive = () =>\n this.router.globals.transition === this;\n\n /**\n * Checks if the Transition is valid\n *\n * @returns true if the Transition is valid\n */\n valid() {\n return !this.error() || this.success !== undefined;\n }\n\n /**\n * Aborts this transition\n *\n * Imperative API to abort a Transition.\n * This only applies to Transitions that are not yet complete.\n */\n abort() {\n // Do not set flag if the transition is already complete\n if (isUndefined(this.success)) {\n this._aborted = true;\n }\n }\n\n /**\n * The Transition error reason.\n *\n * If the transition is invalid (and could not be run), returns the reason the transition is invalid.\n * If the transition was valid and ran, but was not successful, returns the reason the transition failed.\n *\n * @returns an error message explaining why the transition is invalid, or the reason the transition failed.\n */\n error() {\n let state: StateObject = this.$to();\n\n if (state.self.abstract)\n return `Cannot transition to abstract state '${state.name}'`;\n\n const paramDefs = state.parameters(), values = this.params();\n const invalidParams = paramDefs.filter(param => !param.validates(values[param.id]));\n if (invalidParams.length) {\n return `Param values not valid for state '${state.name}'. Invalid params: [ ${invalidParams.map(param => param.id).join(', ')} ]`;\n }\n\n if (this.success === false)\n return this._error;\n }\n\n /**\n * A string representation of the Transition\n *\n * @returns A string representation of the Transition\n */\n toString () {\n let fromStateOrName = this.from();\n let toStateOrName = this.to();\n\n const avoidEmptyHash = (params: RawParams) =>\n (params[\"#\"] !== null && params[\"#\"] !== undefined) ? params : omit(params, [\"#\"]);\n\n // (X) means the to state is invalid.\n let id = this.$id,\n from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName,\n fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))),\n toValid = this.valid() ? \"\" : \"(X) \",\n to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName,\n toParams = stringify(avoidEmptyHash(this.params()));\n\n return `Transition#${id}( '${from}'${fromParams} -> ${toValid}'${to}'${toParams} )`;\n }\n}\n","/**\n * Functions that manipulate strings\n *\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_strings\n */ /** */\n\nimport { isString, isArray, isDefined, isNull, isPromise, isInjectable, isObject } from \"./predicates\";\nimport { Rejection } from \"../transition/rejectFactory\";\nimport { IInjectable, identity, Obj, tail, pushR } from \"./common\";\nimport { pattern, is, not, val, invoke } from \"./hof\";\nimport { Transition } from \"../transition/transition\";\nimport { Resolvable } from \"../resolve/resolvable\";\n\n/**\n * Returns a string shortened to a maximum length\n *\n * If the string is already less than the `max` length, return the string.\n * Else return the string, shortened to `max - 3` and append three dots (\"...\").\n *\n * @param max the maximum length of the string to return\n * @param str the input string\n */\nexport function maxLength(max: number, str: string) {\n if (str.length <= max) return str;\n return str.substr(0, max - 3) + \"...\";\n}\n\n/**\n * Returns a string, with spaces added to the end, up to a desired str length\n *\n * If the string is already longer than the desired length, return the string.\n * Else returns the string, with extra spaces on the end, such that it reaches `length` characters.\n *\n * @param length the desired length of the string to return\n * @param str the input string\n */\nexport function padString(length: number, str: string) {\n while (str.length < length) str += \" \";\n return str;\n}\n\nexport function kebobString(camelCase: string) {\n return camelCase\n .replace(/^([A-Z])/, $1 => $1.toLowerCase()) // replace first char\n .replace(/([A-Z])/g, $1 => \"-\" + $1.toLowerCase()); // replace rest\n}\n\nfunction _toJson(obj: Obj) {\n return JSON.stringify(obj);\n}\n\nfunction _fromJson(json: string) {\n return isString(json) ? JSON.parse(json) : json;\n}\n\n\nfunction promiseToString(p: Promise) {\n return `Promise(${JSON.stringify(p)})`;\n}\n\nexport function functionToString(fn: Function) {\n let fnStr = fnToString(fn);\n let namedFunctionMatch = fnStr.match(/^(function [^ ]+\\([^)]*\\))/);\n let toStr = namedFunctionMatch ? namedFunctionMatch[1] : fnStr;\n\n let fnName = fn['name'] || \"\";\n if (fnName && toStr.match(/function \\(/)) {\n return 'function ' + fnName + toStr.substr(9);\n }\n return toStr;\n}\n\nexport function fnToString(fn: IInjectable) {\n let _fn = isArray(fn) ? fn.slice(-1)[0] : fn;\n return _fn && _fn.toString() || \"undefined\";\n}\n\nlet stringifyPatternFn: (val: any) => string = null;\nlet stringifyPattern = function(value: any) {\n let isRejection = Rejection.isRejectionPromise;\n\n stringifyPatternFn = stringifyPatternFn || pattern([\n [not(isDefined), val(\"undefined\")],\n [isNull, val(\"null\")],\n [isPromise, val(\"[Promise]\")],\n [isRejection, (x: any) => x._transitionRejection.toString()],\n [is(Rejection), invoke(\"toString\")],\n [is(Transition), invoke(\"toString\")],\n [is(Resolvable), invoke(\"toString\")],\n [isInjectable, functionToString],\n [val(true), identity]\n ]);\n\n return stringifyPatternFn(value);\n};\n\nexport function stringify(o: any) {\n var seen: any[] = [];\n\n function format(val: any) {\n if (isObject(val)) {\n if (seen.indexOf(val) !== -1) return '[circular ref]';\n seen.push(val);\n }\n return stringifyPattern(val);\n }\n\n return JSON.stringify(o, (key, val) => format(val)).replace(/\\\\\"/g, '\"');\n}\n\n/** Returns a function that splits a string on a character or substring */\nexport const beforeAfterSubstr = (char: string) => (str: string): string[] => {\n if (!str) return [\"\", \"\"];\n let idx = str.indexOf(char);\n if (idx === -1) return [str, \"\"];\n return [str.substr(0, idx), str.substr(idx + 1)];\n};\n\nexport const hostRegex = new RegExp('^(?:[a-z]+:)?//[^/]+/');\nexport const stripFile = (str: string) => str.replace(/\\/[^/]*$/, '');\nexport const splitHash = beforeAfterSubstr(\"#\");\nexport const splitQuery = beforeAfterSubstr(\"?\");\nexport const splitEqual = beforeAfterSubstr(\"=\");\nexport const trimHashVal = (str: string) => str ? str.replace(/^#/, \"\") : \"\";\n\n/**\n * Splits on a delimiter, but returns the delimiters in the array\n *\n * #### Example:\n * ```js\n * var splitOnSlashes = splitOnDelim('/');\n * splitOnSlashes(\"/foo\"); // [\"/\", \"foo\"]\n * splitOnSlashes(\"/foo/\"); // [\"/\", \"foo\", \"/\"]\n * ```\n */\nexport function splitOnDelim(delim: string) {\n let re = new RegExp(\"(\" + delim + \")\", \"g\");\n return (str: string) =>\n str.split(re).filter(identity);\n};\n\n\n/**\n * Reduce fn that joins neighboring strings\n *\n * Given an array of strings, returns a new array\n * where all neighboring strings have been joined.\n *\n * #### Example:\n * ```js\n * let arr = [\"foo\", \"bar\", 1, \"baz\", \"\", \"qux\" ];\n * arr.reduce(joinNeighborsR, []) // [\"foobar\", 1, \"bazqux\" ]\n * ```\n */\nexport function joinNeighborsR(acc: any[], x: any) {\n if (isString(tail(acc)) && isString(x))\n return acc.slice(0, -1).concat(tail(acc)+ x);\n return pushR(acc, x);\n};\n\n","/** @module common */ /** for typedoc */\nexport * from \"./common\";\nexport * from \"./coreservices\";\nexport * from \"./glob\";\nexport * from \"./hof\";\nexport * from \"./predicates\";\nexport * from \"./queue\";\nexport * from \"./strings\";\nexport * from \"./trace\";\n","/**\n * @coreapi\n * @module params\n */\n/** */\nimport { fromJson, toJson, identity, equals, inherit, map, extend, pick } from \"../common/common\";\nimport { isDefined, isNullOrUndefined } from \"../common/predicates\";\nimport { is } from \"../common/hof\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypeDefinition } from \"./interface\";\n\n/**\n * A registry for parameter types.\n *\n * This registry manages the built-in (and custom) parameter types.\n *\n * The built-in parameter types are:\n *\n * - [[string]]\n * - [[path]]\n * - [[query]]\n * - [[hash]]\n * - [[int]]\n * - [[bool]]\n * - [[date]]\n * - [[json]]\n * - [[any]]\n */\nexport class ParamTypes {\n /** @hidden */\n types: any;\n /** @hidden */\n enqueue: boolean = true;\n /** @hidden */\n typeQueue: any[] = [];\n\n /**\n * Built-in parameter type: `string`\n *\n * This parameter type coerces values to strings.\n * It matches anything (`new RegExp(\".*\")`) in the URL\n */\n static string: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `path`\n *\n * This parameter type is the default type for path parameters.\n * A path parameter is any parameter declared in the path portion of a url\n *\n * - `/foo/:param1/:param2`: two path parameters\n *\n * This parameter type behaves exactly like the [[string]] type with one exception.\n * When matching parameter values in the URL, the `path` type does not match forward slashes `/`.\n *\n * #### Angular 1 note:\n * In ng1, this type is overridden with one that pre-encodes slashes as `~2F` instead of `%2F`.\n * For more details about this angular 1 behavior, see: https://github.com/angular-ui/ui-router/issues/2598\n */\n static path: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `query`\n *\n * This parameter type is the default type for query/search parameters.\n * It behaves the same as the [[string]] parameter type.\n *\n * A query parameter is any parameter declared in the query/search portion of a url\n *\n * - `/bar?param2`: a query parameter\n */\n static query: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `hash`\n *\n * This parameter type is used for the `#` parameter (the hash)\n * It behaves the same as the [[string]] parameter type.\n * @coreapi\n */\n static hash: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `int`\n *\n * This parameter type serializes javascript integers (`number`s which represent an integer) to the URL.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'user',\n * url: '/user/{id:int}'\n * });\n * ```\n * ```js\n * $state.go('user', { id: 1298547 });\n * ```\n *\n * The URL will serialize to: `/user/1298547`.\n *\n * When the parameter value is read, it will be the `number` `1298547`, not the string `\"1298547\"`.\n */\n static int: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `bool`\n *\n * This parameter type serializes `true`/`false` as `1`/`0`\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'inbox',\n * url: '/inbox?{unread:bool}'\n * });\n * ```\n * ```js\n * $state.go('inbox', { unread: true });\n * ```\n *\n * The URL will serialize to: `/inbox?unread=1`.\n *\n * Conversely, if the url is `/inbox?unread=0`, the value of the `unread` parameter will be a `false`.\n */\n static bool: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `date`\n *\n * This parameter type can be used to serialize Javascript dates as parameter values.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'search',\n * url: '/search?{start:date}'\n * });\n * ```\n * ```js\n * $state.go('search', { start: new Date(2000, 0, 1) });\n * ```\n *\n * The URL will serialize to: `/search?start=2000-01-01`.\n *\n * Conversely, if the url is `/search?start=2016-12-25`, the value of the `start` parameter will be a `Date` object where:\n *\n * - `date.getFullYear() === 2016`\n * - `date.getMonth() === 11` (month is 0-based)\n * - `date.getDate() === 25`\n */\n static date: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `json`\n *\n * This parameter type can be used to serialize javascript objects into the URL using JSON serialization.\n *\n * #### Example:\n * This example serializes an plain javascript object to the URL\n * ```js\n * .state({\n * name: 'map',\n * url: '/map/{coords:json}'\n * });\n * ```\n * ```js\n * $state.go('map', { coords: { x: 10399.2, y: 49071 });\n * ```\n *\n * The URL will serialize to: `/map/%7B%22x%22%3A10399.2%2C%22y%22%3A49071%7D`\n */\n static json: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `any`\n *\n * This parameter type is used by default for url-less parameters (parameters that do not appear in the URL).\n * This type does not encode or decode.\n * It is compared using a deep `equals` comparison.\n *\n * #### Example:\n * This example defines a non-url parameter on a [[StateDeclaration]].\n * ```js\n * .state({\n * name: 'new',\n * url: '/new',\n * params: {\n * inrepyto: null\n * }\n * });\n * ```\n * ```js\n * $state.go('new', { inreplyto: currentMessage });\n * ```\n */\n static any: ParamTypeDefinition;\n\n\n /** @internalapi */\n private defaultTypes: any = pick(ParamTypes.prototype, [\"hash\", \"string\", \"query\", \"path\", \"int\", \"bool\", \"date\", \"json\", \"any\"]);\n\n /** @internalapi */\n constructor() {\n // Register default types. Store them in the prototype of this.types.\n const makeType = (definition: ParamTypeDefinition, name: string) =>\n new ParamType(extend({ name }, definition));\n this.types = inherit(map(this.defaultTypes, makeType), {});\n }\n\n /** @internalapi */\n dispose() {\n this.types = {};\n }\n\n /**\n * Registers a parameter type\n *\n * End users should call [[UrlMatcherFactory.type]], which delegates to this method.\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n if (!isDefined(definition)) return this.types[name];\n if (this.types.hasOwnProperty(name)) throw new Error(`A type named '${name}' has already been defined.`);\n\n this.types[name] = new ParamType(extend({ name }, definition));\n\n if (definitionFn) {\n this.typeQueue.push({ name, def: definitionFn });\n if (!this.enqueue) this._flushTypeQueue();\n }\n\n return this;\n }\n\n /** @internalapi */\n _flushTypeQueue() {\n while (this.typeQueue.length) {\n let type = this.typeQueue.shift();\n if (type.pattern) throw new Error(\"You cannot override a type's .pattern at runtime.\");\n extend(this.types[type.name], services.$injector.invoke(type.def));\n }\n }\n}\n\n/** @hidden */\nfunction initDefaultTypes() {\n\n const makeDefaultType = (def) => {\n const valToString = (val: any) =>\n val != null ? val.toString() : val;\n\n const defaultTypeBase = {\n encode: valToString,\n decode: valToString,\n is: is(String),\n pattern: /.*/,\n equals: (a: any, b: any) => a == b, // allow coersion for null/undefined/\"\"\n };\n\n return extend({}, defaultTypeBase, def) as ParamTypeDefinition;\n };\n\n // Default Parameter Type Definitions\n extend(ParamTypes.prototype, {\n string: makeDefaultType({}),\n\n path: makeDefaultType({\n pattern: /[^/]*/,\n }),\n\n query: makeDefaultType({}),\n\n hash: makeDefaultType({\n inherit: false,\n }),\n\n int: makeDefaultType({\n decode: (val: string) => parseInt(val, 10),\n is: function(val: any) {\n return !isNullOrUndefined(val) && this.decode(val.toString()) === val;\n },\n pattern: /-?\\d+/,\n }),\n\n bool: makeDefaultType({\n encode: (val: any) => val && 1 || 0,\n decode: (val: string) => parseInt(val, 10) !== 0,\n is: is(Boolean),\n pattern: /0|1/,\n }),\n\n date: makeDefaultType({\n encode: function(val: any) {\n return !this.is(val) ? undefined : [\n val.getFullYear(),\n ('0' + (val.getMonth() + 1)).slice(-2),\n ('0' + val.getDate()).slice(-2),\n ].join(\"-\");\n },\n decode: function(val: string) {\n if (this.is(val)) return val as Date;\n let match = this.capture.exec(val);\n return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;\n },\n is: (val: any) => val instanceof Date && !isNaN(val.valueOf()),\n equals(l: any, r: any) {\n return ['getFullYear', 'getMonth', 'getDate']\n .reduce((acc, fn) => acc && l[fn]() === r[fn](), true);\n },\n pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,\n capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,\n }),\n\n json: makeDefaultType({\n encode: toJson,\n decode: fromJson,\n is: is(Object),\n equals: equals,\n pattern: /[^/]*/,\n }),\n\n // does not encode/decode\n any: makeDefaultType({\n encode: identity,\n decode: identity,\n is: () => true,\n equals: equals,\n }),\n });\n}\n\ninitDefaultTypes();\n\n","/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, ancestors, Obj} from \"../common/common\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @internalapi */\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n let parents = ancestors($current, $to),\n parentParams: string[],\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (let i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n parentParams = Object.keys(parents[i].params);\n if (!parentParams.length) continue;\n\n for (let j in parentParams) {\n if (inheritList.indexOf(parentParams[j]) >= 0) continue;\n inheritList.push(parentParams[j]);\n inherited[parentParams[j]] = this[parentParams[j]];\n }\n }\n return extend({}, inherited, newParams);\n };\n}\n\n","/** @module path */ /** for typedoc */\nexport * from \"./pathNode\";\nexport * from \"./pathFactory\";","/** @module resolve */ /** for typedoc */\nexport * from \"./interface\";\nexport * from \"./resolvable\";\nexport * from \"./resolveContext\";\n","/** @module state */ /** for typedoc */\nimport {Obj, omit, noop, extend, inherit, values, applyPairs, tail, mapObj, identity} from \"../common/common\";\nimport {isDefined, isFunction, isString, isArray} from \"../common/predicates\";\nimport {stringify} from \"../common/strings\";\nimport {prop, pattern, is, pipe, val} from \"../common/hof\";\nimport {StateDeclaration} from \"./interface\";\n\nimport {StateObject} from \"./stateObject\";\nimport {StateMatcher} from \"./stateMatcher\";\nimport {Param} from \"../params/param\";\nimport {UrlMatcherFactory} from \"../url/urlMatcherFactory\";\nimport {UrlMatcher} from \"../url/urlMatcher\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {services} from \"../common/coreservices\";\nimport {ResolvePolicy} from \"../resolve/interface\";\nimport { ParamFactory } from \"../url/interface\";\n\nconst parseUrl = (url: string): any => {\n if (!isString(url)) return false;\n let root = url.charAt(0) === '^';\n return { val: root ? url.substring(1) : url, root };\n};\n\nexport type BuilderFunction = (state: StateObject, parent?: BuilderFunction) => any;\n\ninterface Builders {\n [key: string]: BuilderFunction[];\n\n name: BuilderFunction[];\n parent: BuilderFunction[];\n data: BuilderFunction[];\n url: BuilderFunction[];\n navigable: BuilderFunction[];\n params: BuilderFunction[];\n views: BuilderFunction[];\n path: BuilderFunction[];\n includes: BuilderFunction[];\n resolvables: BuilderFunction[];\n}\n\n\nfunction nameBuilder(state: StateObject) {\n return state.name;\n}\n\nfunction selfBuilder(state: StateObject) {\n state.self.$$state = () => state;\n return state.self;\n}\n\nfunction dataBuilder(state: StateObject) {\n if (state.parent && state.parent.data) {\n state.data = state.self.data = inherit(state.parent.data, state.data);\n }\n return state.data;\n}\n\nconst getUrlBuilder = ($urlMatcherFactoryProvider: UrlMatcherFactory, root: () => StateObject) =>\nfunction urlBuilder(state: StateObject) {\n let stateDec: StateDeclaration = state;\n\n // For future states, i.e., states whose name ends with `.**`,\n // match anything that starts with the url prefix\n if (stateDec && stateDec.url && stateDec.name && stateDec.name.match(/\\.\\*\\*$/)) {\n stateDec.url += \"{remainder:any}\"; // match any path (.*)\n }\n\n const parsed = parseUrl(stateDec.url), parent = state.parent;\n const url = !parsed ? stateDec.url : $urlMatcherFactoryProvider.compile(parsed.val, {\n params: state.params || {},\n paramMap: function (paramConfig: any, isSearch: boolean) {\n if (stateDec.reloadOnSearch === false && isSearch) paramConfig = extend(paramConfig || {}, {dynamic: true});\n return paramConfig;\n }\n });\n\n if (!url) return null;\n if (!$urlMatcherFactoryProvider.isMatcher(url)) throw new Error(`Invalid url '${url}' in state '${state}'`);\n return (parsed && parsed.root) ? url : ((parent && parent.navigable) || root()).url.append( url);\n};\n\nconst getNavigableBuilder = (isRoot: (state: StateObject) => boolean) =>\nfunction navigableBuilder(state: StateObject) {\n return !isRoot(state) && state.url ? state : (state.parent ? state.parent.navigable : null);\n};\n\nconst getParamsBuilder = (paramFactory: ParamFactory) =>\nfunction paramsBuilder(state: StateObject): { [key: string]: Param } {\n const makeConfigParam = (config: any, id: string) => paramFactory.fromConfig(id, null, config);\n let urlParams: Param[] = (state.url && state.url.parameters({inherit: false})) || [];\n let nonUrlParams: Param[] = values(mapObj(omit(state.params || {}, urlParams.map(prop('id'))), makeConfigParam));\n return urlParams.concat(nonUrlParams).map(p => [p.id, p]).reduce(applyPairs, {});\n};\n\nfunction pathBuilder(state: StateObject) {\n return state.parent ? state.parent.path.concat(state) : /*root*/ [state];\n}\n\nfunction includesBuilder(state: StateObject) {\n let includes = state.parent ? extend({}, state.parent.includes) : {};\n includes[state.name] = true;\n return includes;\n}\n\n/**\n * This is a [[StateBuilder.builder]] function for the `resolve:` block on a [[StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * validates the `resolve` property and converts it to a [[Resolvable]] array.\n *\n * resolve: input value can be:\n *\n * {\n * // analyzed but not injected\n * myFooResolve: function() { return \"myFooData\"; },\n *\n * // function.toString() parsed, \"DependencyName\" dep as string (not min-safe)\n * myBarResolve: function(DependencyName) { return DependencyName.fetchSomethingAsPromise() },\n *\n * // Array split; \"DependencyName\" dep as string\n * myBazResolve: [ \"DependencyName\", function(dep) { return dep.fetchSomethingAsPromise() },\n *\n * // Array split; DependencyType dep as token (compared using ===)\n * myQuxResolve: [ DependencyType, function(dep) { return dep.fetchSometingAsPromise() },\n *\n * // val.$inject used as deps\n * // where:\n * // corgeResolve.$inject = [\"DependencyName\"];\n * // function corgeResolve(dep) { dep.fetchSometingAsPromise() }\n * // then \"DependencyName\" dep as string\n * myCorgeResolve: corgeResolve,\n *\n * // inject service by name\n * // When a string is found, desugar creating a resolve that injects the named service\n * myGraultResolve: \"SomeService\"\n * }\n *\n * or:\n *\n * [\n * new Resolvable(\"myFooResolve\", function() { return \"myFooData\" }),\n * new Resolvable(\"myBarResolve\", function(dep) { return dep.fetchSomethingAsPromise() }, [ \"DependencyName\" ]),\n * { provide: \"myBazResolve\", useFactory: function(dep) { dep.fetchSomethingAsPromise() }, deps: [ \"DependencyName\" ] }\n * ]\n */\nexport function resolvablesBuilder(state: StateObject): Resolvable[] {\n interface Tuple { token: any, val: any, deps: any[], policy: ResolvePolicy }\n \n /** convert resolve: {} and resolvePolicy: {} objects to an array of tuples */\n const objects2Tuples = (resolveObj: Obj, resolvePolicies: { [key: string]: ResolvePolicy }) =>\n Object.keys(resolveObj || {}).map(token => ({token, val: resolveObj[token], deps: undefined, policy: resolvePolicies[token]}));\n\n /** fetch DI annotations from a function or ng1-style array */\n const annotate = (fn: Function) => {\n let $injector = services.$injector;\n // ng1 doesn't have an $injector until runtime.\n // If the $injector doesn't exist, use \"deferred\" literal as a\n // marker indicating they should be annotated when runtime starts\n return fn['$inject'] || ($injector && $injector.annotate(fn, $injector.strictDi)) || \"deferred\";\n };\n\n /** true if the object has both `token` and `resolveFn`, and is probably a [[ResolveLiteral]] */\n const isResolveLiteral = (obj: any) => !!(obj.token && obj.resolveFn);\n\n /** true if the object looks like a provide literal, or a ng2 Provider */\n const isLikeNg2Provider = (obj: any) => !!((obj.provide || obj.token) && (obj.useValue || obj.useFactory || obj.useExisting || obj.useClass));\n\n /** true if the object looks like a tuple from obj2Tuples */\n const isTupleFromObj = (obj: any) => !!(obj && obj.val && (isString(obj.val) || isArray(obj.val) || isFunction(obj.val)));\n\n /** extracts the token from a Provider or provide literal */\n const token = (p: any) => p.provide || p.token;\n\n /** Given a literal resolve or provider object, returns a Resolvable */\n const literal2Resolvable = pattern([\n [prop('resolveFn'), p => new Resolvable(token(p), p.resolveFn, p.deps, p.policy)],\n [prop('useFactory'), p => new Resolvable(token(p), p.useFactory, (p.deps || p.dependencies), p.policy)],\n [prop('useClass'), p => new Resolvable(token(p), () => new (p.useClass)(), [], p.policy)],\n [prop('useValue'), p => new Resolvable(token(p), () => p.useValue, [], p.policy, p.useValue)],\n [prop('useExisting'), p => new Resolvable(token(p), identity, [p.useExisting], p.policy)],\n ]);\n\n const tuple2Resolvable = pattern([\n [pipe(prop(\"val\"), isString), (tuple: Tuple) => new Resolvable(tuple.token, identity, [ tuple.val ], tuple.policy)],\n [pipe(prop(\"val\"), isArray), (tuple: Tuple) => new Resolvable(tuple.token, tail( tuple.val), tuple.val.slice(0, -1), tuple.policy)],\n [pipe(prop(\"val\"), isFunction), (tuple: Tuple) => new Resolvable(tuple.token, tuple.val, annotate(tuple.val), tuple.policy)],\n ]);\n\n const item2Resolvable = <(obj: any) => Resolvable> pattern([\n [is(Resolvable), (r: Resolvable) => r],\n [isResolveLiteral, literal2Resolvable],\n [isLikeNg2Provider, literal2Resolvable],\n [isTupleFromObj, tuple2Resolvable],\n [val(true), (obj: any) => { throw new Error(\"Invalid resolve value: \" + stringify(obj)) }]\n ]);\n\n // If resolveBlock is already an array, use it as-is.\n // Otherwise, assume it's an object and convert to an Array of tuples\n let decl = state.resolve;\n let items: any[] = isArray(decl) ? decl : objects2Tuples(decl, state.resolvePolicy || {});\n return items.map(item2Resolvable);\n}\n\n/**\n * @internalapi A internal global service\n *\n * StateBuilder is a factory for the internal [[StateObject]] objects.\n *\n * When you register a state with the [[StateRegistry]], you register a plain old javascript object which\n * conforms to the [[StateDeclaration]] interface. This factory takes that object and builds the corresponding\n * [[StateObject]] object, which has an API and is used internally.\n *\n * Custom properties or API may be added to the internal [[StateObject]] object by registering a decorator function\n * using the [[builder]] method.\n */\nexport class StateBuilder {\n /** An object that contains all the BuilderFunctions registered, key'd by the name of the State property they build */\n private builders: Builders;\n\n constructor(private matcher: StateMatcher, urlMatcherFactory: UrlMatcherFactory) {\n let self = this;\n\n const root = () => matcher.find(\"\");\n const isRoot = (state: StateObject) => state.name === \"\";\n\n function parentBuilder(state: StateObject) {\n if (isRoot(state)) return null;\n return matcher.find(self.parentName(state)) || root();\n }\n\n this.builders = {\n name: [ nameBuilder ],\n self: [ selfBuilder ],\n parent: [ parentBuilder ],\n data: [ dataBuilder ],\n // Build a URLMatcher if necessary, either via a relative or absolute URL\n url: [ getUrlBuilder(urlMatcherFactory, root) ],\n // Keep track of the closest ancestor state that has a URL (i.e. is navigable)\n navigable: [ getNavigableBuilder(isRoot) ],\n params: [ getParamsBuilder(urlMatcherFactory.paramFactory) ],\n // Each framework-specific ui-router implementation should define its own `views` builder\n // e.g., src/ng1/statebuilders/views.ts\n views: [],\n // Keep a full path from the root down to this state as this is needed for state activation.\n path: [ pathBuilder ],\n // Speed up $state.includes() as it's used a lot\n includes: [ includesBuilder ],\n resolvables: [ resolvablesBuilder ]\n };\n }\n\n /**\n * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).\n * More than one BuilderFunction can be registered for a given property.\n *\n * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.\n *\n * @param name The name of the State property being registered for.\n * @param fn The BuilderFunction which will be used to build the State property\n * @returns a function which deregisters the BuilderFunction\n */\n builder(name: string, fn: BuilderFunction): (BuilderFunction|BuilderFunction[]|Function) {\n let builders = this.builders;\n let array = builders[name] || [];\n // Backwards compat: if only one builder exists, return it, else return whole arary.\n if (isString(name) && !isDefined(fn)) return array.length > 1 ? array : array[0];\n if (!isString(name) || !isFunction(fn)) return;\n\n builders[name] = array;\n builders[name].push(fn);\n return () => builders[name].splice(builders[name].indexOf(fn, 1)) && null;\n }\n\n /**\n * Builds all of the properties on an essentially blank State object, returning a State object which has all its\n * properties and API built.\n *\n * @param state an uninitialized State object\n * @returns the built State object\n */\n build(state: StateObject): StateObject {\n let {matcher, builders} = this;\n let parent = this.parentName(state);\n\n if (parent && !matcher.find(parent, undefined, false)) {\n return null;\n }\n\n for (let key in builders) {\n if (!builders.hasOwnProperty(key)) continue;\n let chain = builders[key].reduce((parentFn: BuilderFunction, step: BuilderFunction) => (_state) => step(_state, parentFn), noop);\n state[key] = chain(state);\n }\n return state;\n }\n\n parentName(state: StateObject) {\n // name = 'foo.bar.baz.**'\n let name = state.name || \"\";\n // segments = ['foo', 'bar', 'baz', '.**']\n let segments = name.split('.');\n // segments = ['foo', 'bar', 'baz']\n let lastSegment = segments.pop();\n // segments = ['foo', 'bar'] (ignore .** segment for future states)\n if (lastSegment === '**') segments.pop();\n\n if (segments.length) {\n if (state.parent) {\n throw new Error(`States that specify the 'parent:' property should not have a '.' in their name (${name})`);\n }\n\n // 'foo.bar'\n return segments.join(\".\");\n }\n\n if (!state.parent) return \"\";\n return isString(state.parent) ? state.parent : state.parent.name;\n }\n\n name(state: StateObject) {\n let name = state.name;\n if (name.indexOf('.') !== -1 || !state.parent) return name;\n\n let parentName = isString(state.parent) ? state.parent : state.parent.name;\n return parentName ? parentName + \".\" + name : name;\n }\n}\n","/** @module state */ /** for typedoc */\nimport {isString} from \"../common/predicates\";\nimport {StateOrName} from \"./interface\";\nimport {StateObject} from \"./stateObject\";\nimport {values} from \"../common/common\";\n\nexport class StateMatcher {\n constructor (private _states: { [key: string]: StateObject }) { }\n \n isRelative(stateName: string) {\n stateName = stateName || \"\";\n return stateName.indexOf(\".\") === 0 || stateName.indexOf(\"^\") === 0;\n }\n\n\n find(stateOrName: StateOrName, base?: StateOrName, matchGlob = true): StateObject {\n if (!stateOrName && stateOrName !== \"\") return undefined;\n let isStr = isString(stateOrName);\n let name: string = isStr ? stateOrName : (stateOrName).name;\n\n if (this.isRelative(name)) name = this.resolvePath(name, base);\n let state = this._states[name];\n\n if (state && (isStr || (!isStr && (state === stateOrName || state.self === stateOrName)))) {\n return state;\n } else if (isStr && matchGlob) {\n let _states = values(this._states);\n let matches = _states.filter(state =>\n state.__stateObjectCache.nameGlob &&\n state.__stateObjectCache.nameGlob.matches(name)\n );\n\n if (matches.length > 1) {\n console.log(`stateMatcher.find: Found multiple matches for ${name} using glob: `, matches.map(match => match.name));\n }\n return matches[0];\n }\n return undefined;\n }\n\n resolvePath(name: string, base: StateOrName) {\n if (!base) throw new Error(`No reference point given for path '${name}'`);\n \n let baseState: StateObject = this.find(base);\n\n let splitName = name.split(\".\"), i = 0, pathLength = splitName.length, current = baseState;\n\n for (; i < pathLength; i++) {\n if (splitName[i] === \"\" && i === 0) {\n current = baseState;\n continue;\n }\n if (splitName[i] === \"^\") {\n if (!current.parent) throw new Error(`Path '${name}' not valid for state '${baseState.name}'`);\n current = current.parent;\n continue;\n }\n break;\n }\n let relName = splitName.slice(i).join(\".\");\n return current.name + (current.name && relName ? \".\" : \"\") + relName;\n }\n}\n","/** @module state */ /** for typedoc */\nimport { inArray } from \"../common/common\";\nimport { isString } from \"../common/predicates\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { StateObject } from \"./stateObject\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateRegistryListener, StateRegistry } from \"./stateRegistry\";\nimport { Disposable } from \"../interface\";\nimport { UrlRouter } from \"../url/urlRouter\";\nimport { prop } from \"../common/hof\";\nimport { StateMatcher } from \"./stateMatcher\";\n\n/** @internalapi */\nexport class StateQueueManager implements Disposable {\n queue: StateObject[];\n matcher: StateMatcher;\n\n constructor(\n private $registry: StateRegistry,\n private $urlRouter: UrlRouter,\n public states: { [key: string]: StateObject; },\n public builder: StateBuilder,\n public listeners: StateRegistryListener[]) {\n this.queue = [];\n this.matcher = $registry.matcher;\n }\n\n /** @internalapi */\n dispose() {\n this.queue = [];\n }\n\n register(stateDecl: _StateDeclaration) {\n let queue = this.queue;\n let state = StateObject.create(stateDecl);\n let name = state.name;\n\n if (!isString(name)) throw new Error(\"State must have a valid name\");\n if (this.states.hasOwnProperty(name) || inArray(queue.map(prop('name')), name))\n throw new Error(`State '${name}' is already defined`);\n\n queue.push(state);\n this.flush();\n\n return state;\n }\n\n flush() {\n let {queue, states, builder} = this;\n let registered: StateObject[] = [], // states that got registered\n orphans: StateObject[] = [], // states that don't yet have a parent registered\n previousQueueLength = {}; // keep track of how long the queue when an orphan was first encountered\n const getState = (name) =>\n this.states.hasOwnProperty(name) && this.states[name];\n\n while (queue.length > 0) {\n let state: StateObject = queue.shift();\n let name = state.name;\n let result: StateObject = builder.build(state);\n let orphanIdx: number = orphans.indexOf(state);\n\n if (result) {\n let existingState = getState(name);\n if (existingState && existingState.name === name) {\n throw new Error(`State '${name}' is already defined`);\n }\n\n let existingFutureState = getState(name + \".**\");\n if (existingFutureState) {\n // Remove future state of the same name\n this.$registry.deregister(existingFutureState);\n }\n\n states[name] = state;\n this.attachRoute(state);\n if (orphanIdx >= 0) orphans.splice(orphanIdx, 1);\n registered.push(state);\n continue;\n }\n\n let prev = previousQueueLength[name];\n previousQueueLength[name] = queue.length;\n if (orphanIdx >= 0 && prev === queue.length) {\n // Wait until two consecutive iterations where no additional states were dequeued successfully.\n // throw new Error(`Cannot register orphaned state '${name}'`);\n queue.push(state);\n return states;\n } else if (orphanIdx < 0) {\n orphans.push(state);\n }\n\n queue.push(state);\n }\n\n if (registered.length) {\n this.listeners.forEach(listener => listener(\"registered\", registered.map(s => s.self)));\n }\n\n return states;\n }\n\n attachRoute(state: StateObject) {\n if (state.abstract || !state.url) return;\n\n this.$urlRouter.rule(this.$urlRouter.urlRuleFactory.create(state));\n }\n}\n","/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateObject } from \"./stateObject\";\nimport { StateMatcher } from \"./stateMatcher\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateQueueManager } from \"./stateQueueManager\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { BuilderFunction } from \"./stateBuilder\";\nimport { StateOrName } from \"./interface\";\nimport { removeFrom } from \"../common/common\";\nimport { UIRouter } from \"../router\";\nimport { propEq } from \"../common/hof\";\n\n/**\n * The signature for the callback function provided to [[StateRegistry.onStatesChanged]].\n *\n * This callback receives two parameters:\n *\n * @param event a string; either \"registered\" or \"deregistered\"\n * @param states the list of [[StateDeclaration]]s that were registered (or deregistered).\n */\nexport type StateRegistryListener = (event: \"registered\"|\"deregistered\", states: StateDeclaration[]) => void;\n\nexport class StateRegistry {\n private _root: StateObject;\n private states: { [key: string]: StateObject } = {};\n\n matcher: StateMatcher;\n private builder: StateBuilder;\n stateQueue: StateQueueManager;\n\n listeners: StateRegistryListener[] = [];\n\n /** @internalapi */\n constructor(private _router: UIRouter) {\n this.matcher = new StateMatcher(this.states);\n this.builder = new StateBuilder(this.matcher, _router.urlMatcherFactory);\n this.stateQueue = new StateQueueManager(this, _router.urlRouter, this.states, this.builder, this.listeners);\n this._registerRoot();\n }\n\n /** @internalapi */\n private _registerRoot() {\n let rootStateDef: StateDeclaration = {\n name: '',\n url: '^',\n views: null,\n params: {\n '#': { value: null, type: 'hash', dynamic: true }\n },\n abstract: true\n };\n\n let _root = this._root = this.stateQueue.register(rootStateDef);\n _root.navigable = null;\n }\n\n /** @internalapi */\n dispose() {\n this.stateQueue.dispose();\n this.listeners = [];\n this.get().forEach(state => this.get(state) && this.deregister(state));\n }\n\n /**\n * Listen for a State Registry events\n *\n * Adds a callback that is invoked when states are registered or deregistered with the StateRegistry.\n *\n * #### Example:\n * ```js\n * let allStates = registry.get();\n *\n * // Later, invoke deregisterFn() to remove the listener\n * let deregisterFn = registry.onStatesChanged((event, states) => {\n * switch(event) {\n * case: 'registered':\n * states.forEach(state => allStates.push(state));\n * break;\n * case: 'deregistered':\n * states.forEach(state => {\n * let idx = allStates.indexOf(state);\n * if (idx !== -1) allStates.splice(idx, 1);\n * });\n * break;\n * }\n * });\n * ```\n *\n * @param listener a callback function invoked when the registered states changes.\n * The function receives two parameters, `event` and `state`.\n * See [[StateRegistryListener]]\n * @return a function that deregisters the listener\n */\n onStatesChanged(listener: StateRegistryListener): () => void {\n this.listeners.push(listener);\n return function deregisterListener() {\n removeFrom(this.listeners)(listener);\n }.bind(this);\n }\n\n /**\n * Gets the implicit root state\n *\n * Gets the root of the state tree.\n * The root state is implicitly created by UI-Router.\n * Note: this returns the internal [[StateObject]] representation, not a [[StateDeclaration]]\n *\n * @return the root [[StateObject]]\n */\n root() {\n return this._root;\n }\n\n /**\n * Adds a state to the registry\n *\n * Registers a [[StateDeclaration]] or queues it for registration.\n *\n * Note: a state will be queued if the state's parent isn't yet registered.\n *\n * @param stateDefinition the definition of the state to register.\n * @returns the internal [[StateObject]] object.\n * If the state was successfully registered, then the object is fully built (See: [[StateBuilder]]).\n * If the state was only queued, then the object is not fully built.\n */\n register(stateDefinition: _StateDeclaration): StateObject {\n return this.stateQueue.register(stateDefinition);\n }\n\n /** @hidden */\n private _deregisterTree(state: StateObject) {\n let all = this.get().map(s => s.$$state());\n const getChildren = (states: StateObject[]) => {\n let children = all.filter(s => states.indexOf(s.parent) !== -1);\n return children.length === 0 ? children : children.concat(getChildren(children));\n };\n\n let children = getChildren([state]);\n let deregistered: StateObject[] = [state].concat(children).reverse();\n\n deregistered.forEach(state => {\n let $ur = this._router.urlRouter;\n // Remove URL rule\n $ur.rules().filter(propEq(\"state\", state)).forEach($ur.removeRule.bind($ur));\n // Remove state from registry\n delete this.states[state.name];\n });\n\n return deregistered;\n }\n\n /**\n * Removes a state from the registry\n *\n * This removes a state from the registry.\n * If the state has children, they are are also removed from the registry.\n *\n * @param stateOrName the state's name or object representation\n * @returns {StateObject[]} a list of removed states\n */\n deregister(stateOrName: StateOrName) {\n let _state = this.get(stateOrName);\n if (!_state) throw new Error(\"Can't deregister state; not found: \" + stateOrName);\n let deregisteredStates = this._deregisterTree(_state.$$state());\n\n this.listeners.forEach(listener => listener(\"deregistered\", deregisteredStates.map(s => s.self)));\n return deregisteredStates;\n }\n\n /**\n * Gets all registered states\n *\n * Calling this method with no arguments will return a list of all the states that are currently registered.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @return a list of [[StateDeclaration]]s\n */\n get(): StateDeclaration[];\n\n /**\n * Gets a registered state\n *\n * Given a state or a name, finds and returns the [[StateDeclaration]] from the registry.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @param stateOrName either the name of a state, or a state object.\n * @param base the base state to use when stateOrName is relative.\n * @return a registered [[StateDeclaration]] that matched the `stateOrName`, or null if the state isn't registered.\n */\n get(stateOrName: StateOrName, base?: StateOrName): StateDeclaration;\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n if (arguments.length === 0)\n return Object.keys(this.states).map(name => this.states[name].self);\n let found = this.matcher.find(stateOrName, base);\n return found && found.self || null;\n }\n\n decorator(name: string, func: BuilderFunction) {\n return this.builder.builder(name, func);\n }\n}\n","/**\n * @coreapi\n * @module url\n */\n/** for typedoc */\nimport {\n map, defaults, inherit, identity, unnest, tail, find, Obj, pairs, allTrueR, unnestR, arrayTuples\n} from \"../common/common\";\nimport { prop, propEq } from \"../common/hof\";\nimport { isArray, isString, isDefined } from \"../common/predicates\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { RawParams } from \"../params/interface\";\nimport { ParamFactory } from \"./interface\";\nimport { joinNeighborsR, splitOnDelim } from \"../common/strings\";\n\n/** @hidden */\nfunction quoteRegExp(string: any, param?: any) {\n let surroundPattern = ['', ''], result = string.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, \"\\\\$&\");\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')]; break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:\\/(', ')|\\/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?']; break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\n/** @hidden */\nconst memoizeTo = (obj: Obj, prop: string, fn: Function) =>\n obj[prop] = obj[prop] || fn();\n\n/** @hidden */\nconst splitOnSlash = splitOnDelim('/');\n\n/** @hidden */\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @hidden */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @hidden */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @hidden */\n private _children: UrlMatcher[] = [];\n /** @hidden */\n private _params: Param[] = [];\n /** @hidden */\n private _segments: string[] = [];\n /** @hidden */\n private _compiled: string[] = [];\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param config A configuration object\n * - `caseInsensitive` - `true` if URL matching should be case insensitive, otherwise `false`, the default value (for backward compatibility) is `false`.\n * - `strict` - `false` if matching against a URL with a trailing slash should be treated as equivalent to a URL without a trailing slash, the default value is `true`.\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, public config?: any) {\n this.pattern = pattern;\n this.config = defaults(this.config, {\n params: {},\n strict: true,\n caseInsensitive: false,\n paramMap: identity\n });\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\:\\s*( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\]+ - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]+|\\\\.)*\\} - a matched set of curly braces containing other atoms\n let placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n searchPlaceholder = /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n last = 0, m: RegExpExecArray, patterns: any[][] = [];\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id))) throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean) => {\n // IE[78] returns '' for unmatched groups instead of null\n let id = m[2] || m[3];\n let regexp = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (regexp) => inherit(paramTypes.type(isSearch ? \"query\" : \"path\"), {\n pattern: new RegExp(regexp, this.config.caseInsensitive ? 'i' : undefined)\n });\n\n return {\n id,\n regexp,\n cfg: this.config.params[id],\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp)\n };\n };\n\n let p: any, segment: string;\n\n while ((m = placeholder.exec(pattern))) {\n p = matchDetails(m, false);\n if (p.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromPath(p.id, p.type, this.config.paramMap(p.cfg, false)));\n this._segments.push(p.segment);\n patterns.push([p.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n let i = segment.indexOf('?');\n\n if (i >= 0) {\n let search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n while ((m = searchPlaceholder.exec(search))) {\n p = matchDetails(m, true);\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromSearch(p.id, p.type, this.config.paramMap(p.cfg, true)));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map(pattern => quoteRegExp.apply(null, pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @hidden */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n let match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp([\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '\\/?' : '',\n '$'\n ].join(''), this.config.caseInsensitive ? 'i' : undefined);\n }).exec(path);\n\n if (!match) return null;\n\n //options = defaults(options, { isolate: false });\n\n let allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter(param => !param.isSearch()),\n searchParams: Param[] = allParams.filter(param => param.isSearch()),\n nPathSegments = this._cache.path.map(urlm => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1)\n throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(string: string) {\n const reverseString = (str: string) => str.split(\"\").reverse().join(\"\");\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, \"-\");\n\n let split = reverseString(string).split(/-(?!\\\\)/);\n let allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n let param: Param = pathParams[i];\n let value: (any|any[]) = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (value && param.array === true) value = decodePathArray(value);\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n }\n searchParams.forEach(param => {\n let value = search[param.id];\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n });\n\n if (hash) values[\"#\"] = hash;\n\n return values;\n }\n\n /**\n * @hidden\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map(matcher => matcher._params));\n }\n\n /**\n * @hidden\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (let param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n let parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) =>\n !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n let paramSchema = this.parameters().filter(paramDef => params.hasOwnProperty(paramDef.id));\n return paramSchema.map(paramDef => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n let urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n let pathSegmentsAndParams: Array = urlMatchers.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map(x => isString(x) ? x : getDetails(x));\n\n // Extract the query params into a separate array\n let queryParams: Array = urlMatchers.map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n let value = param.value(values[param.id]);\n let isValid = param.validates(value);\n let isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n let squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n let encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n let pathString = pathSegmentsAndParams.reduce((acc: string, x: string|ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n let { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return (acc.match(/\\/$/)) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map( encoded, UrlMatcher.encodeDashes).join(\"-\");\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent( encoded);\n }, \"\");\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n let queryString = queryParams.map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [ encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map( encoded, encodeURIComponent);\n\n return ( encoded).map(val => `${param.id}=${val}`);\n }).filter(identity).reduce(unnestR, []).join(\"&\");\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : \"\") + (values[\"#\"] ? \"#\" + values[\"#\"] : \"\");\n }\n\n /** @hidden */\n static encodeDashes(str: string) { // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, c => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @hidden Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n let staticSegments = matcher._segments;\n let pathParams = matcher._params.filter(p => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter(x => x !== \"\" && isDefined(x));\n }\n\n /** @hidden Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter(p => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n matcher._cache.segments = matcher._cache.segments ||\n matcher._cache.path.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map(x => isString(x) ? splitOnSlash(x) : x)\n .reduce(unnestR, []);\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n matcher._cache.weights = matcher._cache.weights ||\n segments(matcher).map(segment => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n });\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a), weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n let cmp, i, pairs = arrayTuples(weightsA, weightsB);\n\n for (i = 0; i < pairs.length; i++) {\n cmp = pairs[i][0] - pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n}\n\n/** @hidden */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: (boolean|string);\n encoded: (string|string[]);\n}\n","/**\n * @internalapi\n * @module url\n */ /** for typedoc */\nimport { forEach, extend } from \"../common/common\";\nimport { isObject, isDefined, isFunction, isString } from \"../common/predicates\";\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { ParamTypeDefinition } from \"../params/interface\";\nimport { Disposable } from \"../interface\";\nimport { ParamType } from \"../params/paramType\";\nimport { ParamFactory, UrlMatcherConfig } from \"./interface\";\n\n/**\n * Factory for [[UrlMatcher]] instances.\n *\n * The factory is available to ng1 services as\n * `$urlMatcherFactory` or ng1 providers as `$urlMatcherFactoryProvider`.\n */\nexport class UrlMatcherFactory implements Disposable, UrlMatcherConfig {\n /** @hidden */ paramTypes = new ParamTypes();\n /** @hidden */ _isCaseInsensitive: boolean = false;\n /** @hidden */ _isStrictMode: boolean = true;\n /** @hidden */ _defaultSquashPolicy: (boolean|string) = false;\n\n constructor() {\n extend(this, { UrlMatcher, Param });\n }\n\n /** @inheritdoc */\n caseInsensitive(value?: boolean): boolean {\n return this._isCaseInsensitive = isDefined(value) ? value : this._isCaseInsensitive;\n }\n\n /** @inheritdoc */\n strictMode(value?: boolean): boolean {\n return this._isStrictMode = isDefined(value) ? value : this._isStrictMode;\n }\n\n /** @inheritdoc */\n defaultSquashPolicy(value?: (boolean|string)) {\n if (isDefined(value) && value !== true && value !== false && !isString(value))\n throw new Error(`Invalid squash policy: ${value}. Valid policies: false, true, arbitrary-string`);\n return this._defaultSquashPolicy = isDefined(value) ? value : this._defaultSquashPolicy;\n }\n\n /** @hidden */\n private _getConfig = (config) =>\n extend({ strict: this._isStrictMode, caseInsensitive: this._isCaseInsensitive }, config);\n\n /**\n * Creates a [[UrlMatcher]] for the specified pattern.\n *\n * @param pattern The URL pattern.\n * @param config The config object hash.\n * @returns The UrlMatcher.\n */\n compile(pattern: string, config?: { [key: string]: any }) {\n return new UrlMatcher(pattern, this.paramTypes, this.paramFactory, this._getConfig(config));\n }\n\n /**\n * Returns true if the specified object is a [[UrlMatcher]], or false otherwise.\n *\n * @param object The object to perform the type check against.\n * @returns `true` if the object matches the `UrlMatcher` interface, by\n * implementing all the same methods.\n */\n isMatcher(object: any): boolean {\n // TODO: typeof?\n if (!isObject(object)) return false;\n let result = true;\n\n forEach(UrlMatcher.prototype, (val, name) => {\n if (isFunction(val)) result = result && (isDefined(object[name]) && isFunction(object[name]));\n });\n return result;\n };\n\n /**\n * Creates and registers a custom [[ParamType]] object\n *\n * A [[ParamType]] can be used to generate URLs with typed parameters.\n *\n * @param name The type name.\n * @param definition The type definition. See [[ParamTypeDefinition]] for information on the values accepted.\n * @param definitionFn A function that is injected before the app runtime starts.\n * The result of this function should be a [[ParamTypeDefinition]].\n * The result is merged into the existing `definition`.\n * See [[ParamType]] for information on the values accepted.\n *\n * @returns - if a type was registered: the [[UrlMatcherFactory]]\n * - if only the `name` parameter was specified: the currently registered [[ParamType]] object, or undefined\n *\n * Note: Register custom types *before using them* in a state definition.\n *\n * See [[ParamTypeDefinition]] for examples\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n let type = this.paramTypes.type(name, definition, definitionFn);\n return !isDefined(definition) ? type : this;\n };\n\n /** @hidden */\n $get() {\n this.paramTypes.enqueue = false;\n this.paramTypes._flushTypeQueue();\n return this;\n };\n\n /** @internalapi Creates a new [[Param]] for a given location (DefType) */\n paramFactory: ParamFactory = {\n /** Creates a new [[Param]] from a CONFIG block */\n fromConfig: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.CONFIG, this),\n\n /** Creates a new [[Param]] from a url PATH */\n fromPath: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.PATH, this),\n\n /** Creates a new [[Param]] from a url SEARCH */\n fromSearch: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.SEARCH, this),\n };\n\n /** @internalapi */\n dispose() {\n this.paramTypes.dispose();\n }\n}\n","/**\n * @coreapi\n * @module url\n */ /** */\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { isString, isDefined, isFunction, isState } from \"../common/predicates\";\nimport { UIRouter } from \"../router\";\nimport { identity, extend } from \"../common/common\";\nimport { is, pattern } from \"../common/hof\";\nimport { StateObject } from \"../state/stateObject\";\nimport { RawParams } from \"../params/interface\";\nimport {\n UrlRule, UrlRuleMatchFn, UrlRuleHandlerFn, UrlRuleType, UrlParts, MatcherUrlRule, StateRule, RegExpRule\n} from \"./interface\";\n\n/**\n * Creates a [[UrlRule]]\n *\n * Creates a [[UrlRule]] from a:\n *\n * - `string`\n * - [[UrlMatcher]]\n * - `RegExp`\n * - [[StateObject]]\n * @internalapi\n */\nexport class UrlRuleFactory {\n constructor(public router: UIRouter) { }\n\n compile(str: string) {\n return this.router.urlMatcherFactory.compile(str);\n }\n\n static isUrlRule = obj =>\n obj && ['type', 'match', 'handler'].every(key => isDefined(obj[key]));\n\n create(what: string|UrlMatcher|StateObject|RegExp|UrlRuleMatchFn, handler?: string|UrlRuleHandlerFn): UrlRule {\n const makeRule = pattern([\n [isString, (_what: string) => makeRule(this.compile(_what))],\n [is(UrlMatcher), (_what: UrlMatcher) => this.fromUrlMatcher(_what, handler)],\n [isState, (_what: StateObject) => this.fromState(_what, this.router)],\n [is(RegExp), (_what: RegExp) => this.fromRegExp(_what, handler)],\n [isFunction, (_what: UrlRuleMatchFn) => new BaseUrlRule(_what, handler as UrlRuleHandlerFn)],\n ]);\n\n let rule = makeRule(what);\n if (!rule) throw new Error(\"invalid 'what' in when()\");\n return rule;\n }\n\n /**\n * A UrlRule which matches based on a UrlMatcher\n *\n * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, match => \"/home/\" + match.fooId + \"/\" + match.barId);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n *\n * ## Handler as UrlMatcher\n *\n * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.\n * The `handler` UrlMatcher is formatted using the matched param from the first matcher.\n * The url is replaced with the result.\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var handler = $umf.compile(\"/home/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, handler);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n */\n fromUrlMatcher(urlMatcher: UrlMatcher, handler: string|UrlMatcher|UrlRuleHandlerFn): MatcherUrlRule {\n let _handler: UrlRuleHandlerFn = handler as any;\n if (isString(handler)) handler = this.router.urlMatcherFactory.compile(handler);\n if (is(UrlMatcher)(handler)) _handler = (match: RawParams) => (handler as UrlMatcher).format(match);\n\n function match(url: UrlParts) {\n let match = urlMatcher.exec(url.path, url.search, url.hash);\n return urlMatcher.validates(match) && match;\n }\n\n // Prioritize URLs, lowest to highest:\n // - Some optional URL parameters, but none matched\n // - No optional parameters in URL\n // - Some optional parameters, some matched\n // - Some optional parameters, all matched\n function matchPriority(params: RawParams): number {\n let optional = urlMatcher.parameters().filter(param => param.isOptional);\n if (!optional.length) return 0.000001;\n let matched = optional.filter(param => params[param.id]);\n return matched.length / optional.length;\n }\n\n let details = { urlMatcher, matchPriority, type: \"URLMATCHER\" };\n return extend(new BaseUrlRule(match, _handler), details) as MatcherUrlRule;\n }\n\n\n /**\n * A UrlRule which matches a state by its url\n *\n * #### Example:\n * ```js\n * var rule = factory.fromState($state.get('foo'), router);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match);\n * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }\n * ```\n */\n fromState(state: StateObject, router: UIRouter): StateRule {\n /**\n * Handles match by transitioning to matched state\n *\n * First checks if the router should start a new transition.\n * A new transition is not required if the current state's URL\n * and the new URL are already identical\n */\n const handler = (match: RawParams) => {\n let $state = router.stateService;\n let globals = router.globals;\n if ($state.href(state, match) !== $state.href(globals.current, globals.params)) {\n $state.transitionTo(state, match, { inherit: true, source: \"url\" });\n }\n };\n\n let details = { state, type: \"STATE\" };\n return extend(this.fromUrlMatcher(state.url, handler), details) as StateRule;\n }\n\n /**\n * A UrlRule which matches based on a regular expression\n *\n * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - regexp match array (from `regexp`)\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, match => \"/home/\" + match[1])\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n *\n * ## Handler as string\n *\n * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.\n * The string is first interpolated using `string.replace()` style pattern.\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, \"/home/$1\")\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n */\n fromRegExp(regexp: RegExp, handler: string|UrlRuleHandlerFn): RegExpRule {\n if (regexp.global || regexp.sticky) throw new Error(\"Rule RegExp must not be global or sticky\");\n\n /**\n * If handler is a string, the url will be replaced by the string.\n * If the string has any String.replace() style variables in it (like `$2`),\n * they will be replaced by the captures from [[match]]\n */\n const redirectUrlTo = (match: RegExpExecArray) =>\n // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern\n (handler as string).replace(/\\$(\\$|\\d{1,2})/, (m, what) =>\n match[what === '$' ? 0 : Number(what)]);\n\n const _handler = isString(handler) ? redirectUrlTo : handler;\n\n const match = (url: UrlParts): RegExpExecArray =>\n regexp.exec(url.path);\n\n let details = { regexp, type: \"REGEXP\" };\n return extend(new BaseUrlRule(match, _handler), details) as RegExpRule\n }\n}\n\n/**\n * A base rule which calls `match`\n *\n * The value from the `match` function is passed through to the `handler`.\n * @internalapi\n */\nexport class BaseUrlRule implements UrlRule {\n $id: number;\n priority: number;\n type: UrlRuleType = \"RAW\";\n handler: UrlRuleHandlerFn;\n matchPriority = (match) => 0 - this.$id;\n\n constructor(public match: UrlRuleMatchFn, handler?: UrlRuleHandlerFn) {\n this.handler = handler || identity;\n }\n}","/**\n * @internalapi\n * @module url\n */\n/** for typedoc */\nimport { createProxyFunctions, extend, removeFrom } from '../common/common';\nimport { isDefined, isFunction, isString } from '../common/predicates';\nimport { UrlMatcher } from './urlMatcher';\nimport { RawParams } from '../params/interface';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { is, pattern, val } from '../common/hof';\nimport { UrlRuleFactory } from './urlRule';\nimport { TargetState } from '../state/targetState';\nimport { MatcherUrlRule, MatchResult, UrlParts, UrlRule, UrlRuleHandlerFn, UrlRuleMatchFn, UrlRulesApi, UrlSyncApi, } from './interface';\nimport { TargetStateDef } from '../state/interface';\nimport { stripFile } from '../common';\n\n/** @hidden */\nfunction appendBasePath(url: string, isHtml5: boolean, absolute: boolean, baseHref: string): string {\n if (baseHref === '/') return url;\n if (isHtml5) return stripFile(baseHref) + url;\n if (absolute) return baseHref.slice(1) + url;\n return url;\n}\n\n/** @hidden */\nconst prioritySort = (a: UrlRule, b: UrlRule) =>\n (b.priority || 0) - (a.priority || 0);\n\n/** @hidden */\nconst typeSort = (a: UrlRule, b: UrlRule) => {\n const weights = { \"STATE\": 4, \"URLMATCHER\": 4, \"REGEXP\": 3, \"RAW\": 2, \"OTHER\": 1 };\n return (weights[a.type] || 0) - (weights[b.type] || 0);\n};\n\n/** @hidden */\nconst urlMatcherSort = (a: MatcherUrlRule, b: MatcherUrlRule) =>\n !a.urlMatcher || !b.urlMatcher ? 0 : UrlMatcher.compare(a.urlMatcher, b.urlMatcher);\n\n/** @hidden */\nconst idSort = (a: UrlRule, b: UrlRule) => {\n // Identically sorted STATE and URLMATCHER best rule will be chosen by `matchPriority` after each rule matches the URL\n const useMatchPriority = { STATE: true, URLMATCHER: true };\n const equal = useMatchPriority[a.type] && useMatchPriority[b.type];\n return equal ? 0 : (a.$id || 0) - (b.$id || 0);\n};\n\n/**\n * Default rule priority sorting function.\n *\n * Sorts rules by:\n *\n * - Explicit priority (set rule priority using [[UrlRulesApi.when]])\n * - Rule type (STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1)\n * - `UrlMatcher` specificity ([[UrlMatcher.compare]]): works for STATE and URLMATCHER types to pick the most specific rule.\n * - Rule registration order (for rule types other than STATE and URLMATCHER)\n * - Equally sorted State and UrlMatcher rules will each match the URL.\n * Then, the *best* match is chosen based on how many parameter values were matched.\n *\n * @coreapi\n */\nlet defaultRuleSortFn: (a: UrlRule, b: UrlRule) => number;\ndefaultRuleSortFn = (a, b) => {\n let cmp = prioritySort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = typeSort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = urlMatcherSort(a as MatcherUrlRule, b as MatcherUrlRule);\n if (cmp !== 0) return cmp;\n\n return idSort(a, b);\n};\n\n/**\n * Updates URL and responds to URL changes\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class updates the URL when the state changes.\n * It also responds to changes in the URL.\n */\nexport class UrlRouter implements UrlRulesApi, UrlSyncApi, Disposable {\n /** used to create [[UrlRule]] objects for common cases */\n public urlRuleFactory: UrlRuleFactory;\n\n /** @hidden */ private _router: UIRouter;\n /** @hidden */ private location: string;\n /** @hidden */ private _sortFn = defaultRuleSortFn;\n /** @hidden */ private _stopFn: Function;\n /** @hidden */ _rules: UrlRule[] = [];\n /** @hidden */ private _otherwiseFn: UrlRule;\n /** @hidden */ interceptDeferred = false;\n /** @hidden */ private _id = 0;\n /** @hidden */ private _sorted = false;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this.urlRuleFactory = new UrlRuleFactory(router);\n createProxyFunctions(val(UrlRouter.prototype), this, val(this));\n }\n\n /** @internalapi */\n dispose() {\n this.listen(false);\n this._rules = [];\n delete this._otherwiseFn;\n }\n\n /** @inheritdoc */\n sort(compareFn?: (a: UrlRule, b: UrlRule) => number) {\n this._rules = this.stableSort(this._rules, this._sortFn = compareFn || this._sortFn);\n this._sorted = true;\n }\n\n private ensureSorted() {\n this._sorted || this.sort();\n }\n\n private stableSort(arr, compareFn) {\n const arrOfWrapper = arr.map((elem, idx) => ({ elem, idx }));\n\n arrOfWrapper.sort((wrapperA, wrapperB) => {\n const cmpDiff = compareFn(wrapperA.elem, wrapperB.elem);\n return cmpDiff === 0\n ? wrapperA.idx - wrapperB.idx\n : cmpDiff;\n });\n\n return arrOfWrapper.map(wrapper => wrapper.elem);\n }\n\n /**\n * Given a URL, check all rules and return the best [[MatchResult]]\n * @param url\n * @returns {MatchResult}\n */\n match(url: UrlParts): MatchResult {\n this.ensureSorted();\n\n url = extend({path: '', search: {}, hash: '' }, url);\n let rules = this.rules();\n if (this._otherwiseFn) rules.push(this._otherwiseFn);\n\n // Checks a single rule. Returns { rule: rule, match: match, weight: weight } if it matched, or undefined\n\n let checkRule = (rule: UrlRule): MatchResult => {\n let match = rule.match(url, this._router);\n return match && { match, rule, weight: rule.matchPriority(match) };\n };\n\n // The rules are pre-sorted.\n // - Find the first matching rule.\n // - Find any other matching rule that sorted *exactly the same*, according to `.sort()`.\n // - Choose the rule with the highest match weight.\n let best: MatchResult;\n for (let i = 0; i < rules.length; i++) {\n // Stop when there is a 'best' rule and the next rule sorts differently than it.\n if (best && this._sortFn(rules[i], best.rule) !== 0) break;\n\n let current = checkRule(rules[i]);\n // Pick the best MatchResult\n best = (!best || current && current.weight > best.weight) ? current : best;\n }\n\n return best;\n }\n\n /** @inheritdoc */\n sync(evt?) {\n if (evt && evt.defaultPrevented) return;\n\n let router = this._router,\n $url = router.urlService,\n $state = router.stateService;\n\n let url: UrlParts = {\n path: $url.path(), search: $url.search(), hash: $url.hash(),\n };\n\n let best = this.match(url);\n\n let applyResult = pattern([\n [isString, (newurl: string) => $url.url(newurl, true)],\n [TargetState.isDef, (def: TargetStateDef) => $state.go(def.state, def.params, def.options)],\n [is(TargetState), (target: TargetState) => $state.go(target.state(), target.params(), target.options())],\n ]);\n\n applyResult(best && best.rule.handler(best.match, url, router));\n }\n\n /** @inheritdoc */\n listen(enabled?: boolean): Function {\n if (enabled === false) {\n this._stopFn && this._stopFn();\n delete this._stopFn;\n } else {\n return this._stopFn = this._stopFn || this._router.urlService.onChange(evt => this.sync(evt));\n }\n }\n\n /**\n * Internal API.\n * @internalapi\n */\n update(read?: boolean) {\n let $url = this._router.locationService;\n if (read) {\n this.location = $url.path();\n return;\n }\n if ($url.path() === this.location) return;\n\n $url.url(this.location, true);\n }\n\n /**\n * Internal API.\n *\n * Pushes a new location to the browser history.\n *\n * @internalapi\n * @param urlMatcher\n * @param params\n * @param options\n */\n push(urlMatcher: UrlMatcher, params?: RawParams, options?: { replace?: (string|boolean) }) {\n let replace = options && !!options.replace;\n this._router.urlService.url(urlMatcher.format(params || {}), replace);\n }\n\n /**\n * Builds and returns a URL with interpolated parameters\n *\n * #### Example:\n * ```js\n * matcher = $umf.compile(\"/about/:person\");\n * params = { person: \"bob\" };\n * $bob = $urlRouter.href(matcher, params);\n * // $bob == \"/about/bob\";\n * ```\n *\n * @param urlMatcher The [[UrlMatcher]] object which is used as the template of the URL to generate.\n * @param params An object of parameter values to fill the matcher's required parameters.\n * @param options Options object. The options are:\n *\n * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. \"http://www.example.com/fullurl\".\n *\n * @returns Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher`\n */\n href(urlMatcher: UrlMatcher, params?: any, options?: { absolute: boolean }): string {\n let url = urlMatcher.format(params);\n if (url == null) return null;\n\n options = options || { absolute: false };\n\n let cfg = this._router.urlService.config;\n let isHtml5 = cfg.html5Mode();\n if (!isHtml5 && url !== null) {\n url = \"#\" + cfg.hashPrefix() + url;\n }\n url = appendBasePath(url, isHtml5, options.absolute, cfg.baseHref());\n\n if (!options.absolute || !url) {\n return url;\n }\n\n let slash = (!isHtml5 && url ? '/' : ''), port = cfg.port();\n port = (port === 80 || port === 443 ? '' : ':' + port);\n\n return [cfg.protocol(), '://', cfg.host(), port, slash, url].join('');\n }\n\n\n /**\n * Manually adds a URL Rule.\n *\n * Usually, a url rule is added using [[StateDeclaration.url]] or [[when]].\n * This api can be used directly for more control (to register a [[BaseUrlRule]], for example).\n * Rules can be created using [[UrlRouter.urlRuleFactory]], or create manually as simple objects.\n *\n * A rule should have a `match` function which returns truthy if the rule matched.\n * It should also have a `handler` function which is invoked if the rule is the best match.\n *\n * @return a function that deregisters the rule\n */\n rule(rule: UrlRule): Function {\n if (!UrlRuleFactory.isUrlRule(rule)) throw new Error(\"invalid rule\");\n rule.$id = this._id++;\n rule.priority = rule.priority || 0;\n\n this._rules.push(rule);\n this._sorted = false;\n\n return () => this.removeRule(rule);\n }\n\n /** @inheritdoc */\n removeRule(rule): void {\n removeFrom(this._rules, rule);\n }\n\n /** @inheritdoc */\n rules(): UrlRule[] {\n this.ensureSorted();\n return this._rules.slice();\n }\n\n /** @inheritdoc */\n otherwise(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n this._otherwiseFn = this.urlRuleFactory.create(val(true), handlerFn);\n this._sorted = false;\n };\n\n /** @inheritdoc */\n initial(handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n let matchFn: UrlRuleMatchFn = (urlParts, router) =>\n router.globals.transitionHistory.size() === 0 && !!/^\\/?$/.exec(urlParts.path);\n\n this.rule(this.urlRuleFactory.create(matchFn, handlerFn));\n };\n\n /** @inheritdoc */\n when(matcher: (RegExp|UrlMatcher|string), handler: string|UrlRuleHandlerFn, options?: { priority: number }): UrlRule {\n let rule = this.urlRuleFactory.create(matcher, handler);\n if (isDefined(options && options.priority)) rule.priority = options.priority;\n this.rule(rule);\n return rule;\n };\n\n /** @inheritdoc */\n deferIntercept(defer?: boolean) {\n if (defer === undefined) defer = true;\n this.interceptDeferred = defer;\n };\n}\n\nfunction getHandlerFn(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef): UrlRuleHandlerFn {\n if (!isFunction(handler) && !isString(handler) && !is(TargetState)(handler) && !TargetState.isDef(handler)) {\n throw new Error(\"'handler' must be a string, function, TargetState, or have a state: 'newtarget' property\");\n }\n return isFunction(handler) ? handler as UrlRuleHandlerFn : val(handler);\n}\n","/**\n * @coreapi\n * @module view\n */ /** for typedoc */\nimport {equals, applyPairs, removeFrom, TypedMap} from \"../common/common\";\nimport {curry, prop} from \"../common/hof\";\nimport {isString, isArray} from \"../common/predicates\";\nimport {trace} from \"../common/trace\";\nimport {PathNode} from \"../path/pathNode\";\n\nimport {ActiveUIView, ViewContext, ViewConfig} from \"./interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nexport type ViewConfigFactory = (path: PathNode[], decl: _ViewDeclaration) => ViewConfig|ViewConfig[];\n\nexport interface ViewServicePluginAPI {\n _rootViewContext(context?: ViewContext): ViewContext;\n _viewConfigFactory(viewType: string, factory: ViewConfigFactory);\n _registeredUIViews(): ActiveUIView[];\n _activeViewConfigs(): ViewConfig[];\n}\n\n/**\n * The View service\n *\n * This service pairs existing `ui-view` components (which live in the DOM)\n * with view configs (from the state declaration objects: [[StateDeclaration.views]]).\n *\n * - After a successful Transition, the views from the newly entered states are activated via [[activateViewConfig]].\n * The views from exited states are deactivated via [[deactivateViewConfig]].\n * (See: the [[registerActivateViews]] Transition Hook)\n *\n * - As `ui-view` components pop in and out of existence, they register themselves using [[registerUIView]].\n *\n * - When the [[sync]] function is called, the registered `ui-view`(s) ([[ActiveUIView]])\n * are configured with the matching [[ViewConfig]](s)\n *\n */\nexport class ViewService {\n private _uiViews: ActiveUIView[] = [];\n private _viewConfigs: ViewConfig[] = [];\n private _rootContext: ViewContext;\n private _viewConfigFactories: { [key: string]: ViewConfigFactory } = {};\n\n constructor() { }\n\n public _pluginapi: ViewServicePluginAPI = {\n _rootViewContext: this._rootViewContext.bind(this),\n _viewConfigFactory: this._viewConfigFactory.bind(this),\n _registeredUIViews: () => this._uiViews,\n _activeViewConfigs: () => this._viewConfigs,\n };\n\n private _rootViewContext(context?: ViewContext): ViewContext {\n return this._rootContext = context || this._rootContext;\n };\n\n private _viewConfigFactory(viewType: string, factory: ViewConfigFactory) {\n this._viewConfigFactories[viewType] = factory;\n }\n\n createViewConfig(path: PathNode[], decl: _ViewDeclaration): ViewConfig[] {\n let cfgFactory = this._viewConfigFactories[decl.$type];\n if (!cfgFactory) throw new Error(\"ViewService: No view config factory registered for type \" + decl.$type);\n let cfgs = cfgFactory(path, decl);\n return isArray(cfgs) ? cfgs : [cfgs];\n }\n \n /**\n * Deactivates a ViewConfig.\n *\n * This function deactivates a `ViewConfig`.\n * After calling [[sync]], it will un-pair from any `ui-view` with which it is currently paired.\n *\n * @param viewConfig The ViewConfig view to deregister.\n */\n deactivateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"<- Removing\", viewConfig);\n removeFrom(this._viewConfigs, viewConfig);\n }\n\n activateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"-> Registering\", viewConfig);\n this._viewConfigs.push(viewConfig);\n }\n\n /**\n * Given a ui-view and a ViewConfig, determines if they \"match\".\n *\n * A ui-view has a fully qualified name (fqn) and a context object. The fqn is built from its overall location in\n * the DOM, describing its nesting relationship to any parent ui-view tags it is nested inside of.\n *\n * A ViewConfig has a target ui-view name and a context anchor. The ui-view name can be a simple name, or\n * can be a segmented ui-view path, describing a portion of a ui-view fqn.\n *\n * In order for a ui-view to match ViewConfig, ui-view's $type must match the ViewConfig's $type\n *\n * If the ViewConfig's target ui-view name is a simple name (no dots), then a ui-view matches if:\n * - the ui-view's name matches the ViewConfig's target name\n * - the ui-view's context matches the ViewConfig's anchor\n *\n * If the ViewConfig's target ui-view name is a segmented name (with dots), then a ui-view matches if:\n * - There exists a parent ui-view where:\n * - the parent ui-view's name matches the first segment (index 0) of the ViewConfig's target name\n * - the parent ui-view's context matches the ViewConfig's anchor\n * - And the remaining segments (index 1..n) of the ViewConfig's target name match the tail of the ui-view's fqn\n *\n * Example:\n *\n * DOM:\n * \n * \n * \n * \n * \n * \n * \n * \n *\n * uiViews: [\n * { fqn: \"$default\", creationContext: { name: \"\" } },\n * { fqn: \"$default.foo\", creationContext: { name: \"A\" } },\n * { fqn: \"$default.foo.$default\", creationContext: { name: \"A.B\" } }\n * { fqn: \"$default.foo.$default.bar\", creationContext: { name: \"A.B.C\" } }\n * ]\n *\n * These four view configs all match the ui-view with the fqn: \"$default.foo.$default.bar\":\n *\n * - ViewConfig1: { uiViewName: \"bar\", uiViewContextAnchor: \"A.B.C\" }\n * - ViewConfig2: { uiViewName: \"$default.bar\", uiViewContextAnchor: \"A.B\" }\n * - ViewConfig3: { uiViewName: \"foo.$default.bar\", uiViewContextAnchor: \"A\" }\n * - ViewConfig4: { uiViewName: \"$default.foo.$default.bar\", uiViewContextAnchor: \"\" }\n *\n * Using ViewConfig3 as an example, it matches the ui-view with fqn \"$default.foo.$default.bar\" because:\n * - The ViewConfig's segmented target name is: [ \"foo\", \"$default\", \"bar\" ]\n * - There exists a parent ui-view (which has fqn: \"$default.foo\") where:\n * - the parent ui-view's name \"foo\" matches the first segment \"foo\" of the ViewConfig's target name\n * - the parent ui-view's context \"A\" matches the ViewConfig's anchor context \"A\"\n * - And the remaining segments [ \"$default\", \"bar\" ].join(\".\"_ of the ViewConfig's target name match\n * the tail of the ui-view's fqn \"default.bar\"\n *\n * @internalapi\n */\n static matches = (uiViewsByFqn: TypedMap, uiView: ActiveUIView) => (viewConfig: ViewConfig) => {\n // Don't supply an ng1 ui-view with an ng2 ViewConfig, etc\n if (uiView.$type !== viewConfig.viewDecl.$type) return false;\n\n // Split names apart from both viewConfig and uiView into segments\n let vc = viewConfig.viewDecl;\n let vcSegments = vc.$uiViewName.split(\".\");\n let uivSegments = uiView.fqn.split(\".\");\n\n // Check if the tails of the segment arrays match. ex, these arrays' tails match:\n // vc: [\"foo\", \"bar\"], uiv fqn: [\"$default\", \"foo\", \"bar\"]\n if (!equals(vcSegments, uivSegments.slice(0 - vcSegments.length)))\n return false;\n\n // Now check if the fqn ending at the first segment of the viewConfig matches the context:\n // [\"$default\", \"foo\"].join(\".\") == \"$default.foo\", does the ui-view $default.foo context match?\n let negOffset = (1 - vcSegments.length) || undefined;\n let fqnToFirstSegment = uivSegments.slice(0, negOffset).join(\".\");\n let uiViewContext = uiViewsByFqn[fqnToFirstSegment].creationContext;\n return vc.$uiViewContextAnchor === (uiViewContext && uiViewContext.name);\n }\n\n sync() {\n let uiViewsByFqn: TypedMap =\n this._uiViews.map(uiv => [uiv.fqn, uiv]).reduce(applyPairs, {});\n\n // Return a weighted depth value for a uiView.\n // The depth is the nesting depth of ui-views (based on FQN; times 10,000)\n // plus the depth of the state that is populating the uiView\n function uiViewDepth(uiView: ActiveUIView) {\n const stateDepth = (context: ViewContext) =>\n context && context.parent ? stateDepth(context.parent) + 1 : 1;\n return (uiView.fqn.split(\".\").length * 10000) + stateDepth(uiView.creationContext);\n }\n\n // Return the ViewConfig's context's depth in the context tree.\n function viewConfigDepth(config: ViewConfig) {\n let context: ViewContext = config.viewDecl.$context, count = 0;\n while (++count && context.parent) context = context.parent;\n return count;\n }\n\n // Given a depth function, returns a compare function which can return either ascending or descending order\n const depthCompare = curry((depthFn, posNeg, left, right) => posNeg * (depthFn(left) - depthFn(right)));\n\n const matchingConfigPair = (uiView: ActiveUIView) => {\n let matchingConfigs = this._viewConfigs.filter(ViewService.matches(uiViewsByFqn, uiView));\n if (matchingConfigs.length > 1) {\n // This is OK. Child states can target a ui-view that the parent state also targets (the child wins)\n // Sort by depth and return the match from the deepest child\n // console.log(`Multiple matching view configs for ${uiView.fqn}`, matchingConfigs);\n matchingConfigs.sort(depthCompare(viewConfigDepth, -1)); // descending\n }\n return [uiView, matchingConfigs[0]];\n };\n\n const configureUIView = ([uiView, viewConfig]) => {\n // If a parent ui-view is reconfigured, it could destroy child ui-views.\n // Before configuring a child ui-view, make sure it's still in the active uiViews array.\n if (this._uiViews.indexOf(uiView) !== -1)\n uiView.configUpdated(viewConfig);\n };\n\n // Sort views by FQN and state depth. Process uiviews nearest the root first.\n const pairs = this._uiViews.sort(depthCompare(uiViewDepth, 1)).map(matchingConfigPair);\n\n trace.traceViewSync(pairs);\n\n pairs.forEach(configureUIView);\n };\n\n /**\n * Registers a `ui-view` component\n *\n * When a `ui-view` component is created, it uses this method to register itself.\n * After registration the [[sync]] method is used to ensure all `ui-view` are configured with the proper [[ViewConfig]].\n *\n * Note: the `ui-view` component uses the `ViewConfig` to determine what view should be loaded inside the `ui-view`,\n * and what the view's state context is.\n *\n * Note: There is no corresponding `deregisterUIView`.\n * A `ui-view` should hang on to the return value of `registerUIView` and invoke it to deregister itself.\n *\n * @param uiView The metadata for a UIView\n * @return a de-registration function used when the view is destroyed.\n */\n registerUIView(uiView: ActiveUIView) {\n trace.traceViewServiceUIViewEvent(\"-> Registering\", uiView);\n let uiViews = this._uiViews;\n const fqnAndTypeMatches = (uiv: ActiveUIView) => uiv.fqn === uiView.fqn && uiv.$type === uiView.$type;\n if (uiViews.filter(fqnAndTypeMatches).length)\n trace.traceViewServiceUIViewEvent(\"!!!! duplicate uiView named:\", uiView);\n\n uiViews.push(uiView);\n this.sync();\n\n return () => {\n let idx = uiViews.indexOf(uiView);\n if (idx === -1) {\n trace.traceViewServiceUIViewEvent(\"Tried removing non-registered uiView\", uiView);\n return;\n }\n trace.traceViewServiceUIViewEvent(\"<- Deregistering\", uiView);\n removeFrom(uiViews)(uiView);\n };\n };\n\n /**\n * Returns the list of views currently available on the page, by fully-qualified name.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n available() {\n return this._uiViews.map(prop(\"fqn\"));\n }\n\n /**\n * Returns the list of views on the page containing loaded content.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n active() {\n return this._uiViews.filter(prop(\"$config\")).map(prop(\"name\"));\n }\n\n /**\n * Normalizes a view's name from a state.views configuration block.\n *\n * This should be used by a framework implementation to calculate the values for\n * [[_ViewDeclaration.$uiViewName]] and [[_ViewDeclaration.$uiViewContextAnchor]].\n *\n * @param context the context object (state declaration) that the view belongs to\n * @param rawViewName the name of the view, as declared in the [[StateDeclaration.views]]\n *\n * @returns the normalized uiViewName and uiViewContextAnchor that the view targets\n */\n static normalizeUIViewTarget(context: ViewContext, rawViewName = \"\") {\n // TODO: Validate incoming view name with a regexp to allow:\n // ex: \"view.name@foo.bar\" , \"^.^.view.name\" , \"view.name@^.^\" , \"\" ,\n // \"@\" , \"$default@^\" , \"!$default.$default\" , \"!foo.bar\"\n let viewAtContext: string[] = rawViewName.split(\"@\");\n let uiViewName = viewAtContext[0] || \"$default\"; // default to unnamed view\n let uiViewContextAnchor = isString(viewAtContext[1]) ? viewAtContext[1] : \"^\"; // default to parent context\n\n // Handle relative view-name sugar syntax.\n // Matches rawViewName \"^.^.^.foo.bar\" into array: [\"^.^.^.foo.bar\", \"^.^.^\", \"foo.bar\"],\n let relativeViewNameSugar = /^(\\^(?:\\.\\^)*)\\.(.*$)/.exec(uiViewName);\n if (relativeViewNameSugar) {\n // Clobbers existing contextAnchor (rawViewName validation will fix this)\n uiViewContextAnchor = relativeViewNameSugar[1]; // set anchor to \"^.^.^\"\n uiViewName = relativeViewNameSugar[2]; // set view-name to \"foo.bar\"\n }\n\n if (uiViewName.charAt(0) === '!') {\n uiViewName = uiViewName.substr(1);\n uiViewContextAnchor = \"\"; // target absolutely from root\n }\n\n // handle parent relative targeting \"^.^.^\"\n let relativeMatch = /^(\\^(?:\\.\\^)*)$/;\n if (relativeMatch.exec(uiViewContextAnchor)) {\n let anchor = uiViewContextAnchor.split(\".\").reduce(((anchor, x) => anchor.parent), context);\n uiViewContextAnchor = anchor.name;\n } else if (uiViewContextAnchor === '.') {\n uiViewContextAnchor = context.name;\n }\n\n return {uiViewName, uiViewContextAnchor};\n }\n}","/**\n * @coreapi\n * @module core\n */ /** */\nimport {StateParams} from \"./params/stateParams\";\nimport {StateDeclaration} from \"./state/interface\";\nimport {StateObject} from \"./state/stateObject\";\nimport {Transition} from \"./transition/transition\";\nimport {Queue} from \"./common/queue\";\nimport { Disposable } from './interface';\n\n/**\n * Global router state\n *\n * This is where we hold the global mutable state such as current state, current\n * params, current transition, etc.\n */\nexport class UIRouterGlobals implements Disposable {\n /**\n * Current parameter values\n *\n * The parameter values from the latest successful transition\n */\n params: StateParams = new StateParams();\n\n /**\n * Current state\n *\n * The to-state from the latest successful transition\n */\n current: StateDeclaration;\n\n /**\n * Current state (internal object)\n *\n * The to-state from the latest successful transition\n * @internalapi\n */\n $current: StateObject;\n\n /**\n * The current started/running transition.\n * This transition has reached at least the onStart phase, but is not yet complete\n */\n transition: Transition;\n\n /** @internalapi */\n lastStartedTransitionId: number = -1;\n\n /** @internalapi */\n transitionHistory = new Queue([], 1);\n\n /** @internalapi */\n successfulTransitions = new Queue([], 1);\n\n dispose() {\n this.transitionHistory.clear();\n this.successfulTransitions.clear();\n this.transition = null;\n }\n}\n","/**\n * @coreapi\n * @module url\n */ /** */\n\nimport { UIRouter } from \"../router\";\nimport { LocationServices, notImplemented, LocationConfig } from \"../common/coreservices\";\nimport { noop, createProxyFunctions } from \"../common/common\";\nimport { UrlConfigApi, UrlSyncApi, UrlRulesApi, UrlParts, MatchResult } from \"./interface\";\n\n/** @hidden */\nconst makeStub = (keys: string[]): any =>\n keys.reduce((acc, key) => (acc[key] = notImplemented(key), acc), { dispose: noop });\n\n/** @hidden */ const locationServicesFns = [\"url\", \"path\", \"search\", \"hash\", \"onChange\"];\n/** @hidden */ const locationConfigFns = [\"port\", \"protocol\", \"host\", \"baseHref\", \"html5Mode\", \"hashPrefix\"];\n/** @hidden */ const umfFns = [\"type\", \"caseInsensitive\", \"strictMode\", \"defaultSquashPolicy\"];\n/** @hidden */ const rulesFns = [\"sort\", \"when\", \"initial\", \"otherwise\", \"rules\", \"rule\", \"removeRule\"];\n/** @hidden */ const syncFns = [\"deferIntercept\", \"listen\", \"sync\", \"match\"];\n\n/**\n * API for URL management\n */\nexport class UrlService implements LocationServices, UrlSyncApi {\n /** @hidden */\n static locationServiceStub: LocationServices = makeStub(locationServicesFns);\n /** @hidden */\n static locationConfigStub: LocationConfig = makeStub(locationConfigFns);\n\n /** @inheritdoc */\n url(): string;\n /** @inheritdoc */\n url(newurl: string, replace?: boolean, state?): void;\n url(newurl?, replace?, state?): any { return };\n /** @inheritdoc */\n path(): string { return };\n /** @inheritdoc */\n search(): { [key: string]: any } { return };\n /** @inheritdoc */\n hash(): string { return };\n /** @inheritdoc */\n onChange(callback: Function): Function { return };\n\n\n /**\n * Returns the current URL parts\n *\n * This method returns the current URL components as a [[UrlParts]] object.\n *\n * @returns the current url parts\n */\n parts(): UrlParts {\n return { path: this.path(), search: this.search(), hash: this.hash() }\n }\n\n dispose() { }\n\n /** @inheritdoc */\n sync(evt?) { return }\n /** @inheritdoc */\n listen(enabled?: boolean): Function { return };\n /** @inheritdoc */\n deferIntercept(defer?: boolean) { return }\n /** @inheritdoc */\n match(urlParts: UrlParts): MatchResult { return }\n\n /**\n * A nested API for managing URL rules and rewrites\n *\n * See: [[UrlRulesApi]] for details\n */\n rules: UrlRulesApi;\n\n /**\n * A nested API to configure the URL and retrieve URL information\n *\n * See: [[UrlConfigApi]] for details\n */\n config: UrlConfigApi;\n\n /** @hidden */\n private router: UIRouter;\n\n /** @hidden */\n constructor(router: UIRouter, lateBind = true) {\n this.router = router;\n this.rules = {} as any;\n this.config = {} as any;\n\n // proxy function calls from UrlService to the LocationService/LocationConfig\n const locationServices = () => router.locationService;\n createProxyFunctions(locationServices, this, locationServices, locationServicesFns, lateBind);\n\n const locationConfig = () => router.locationConfig;\n createProxyFunctions(locationConfig, this.config, locationConfig, locationConfigFns, lateBind);\n\n const umf = () => router.urlMatcherFactory;\n createProxyFunctions(umf, this.config, umf, umfFns);\n\n const urlRouter = () => router.urlRouter;\n createProxyFunctions(urlRouter, this.rules, urlRouter, rulesFns);\n createProxyFunctions(urlRouter, this, urlRouter, syncFns);\n }\n}\n","/**\n * @coreapi\n * @module core\n */ /** */\nimport { UrlMatcherFactory } from \"./url/urlMatcherFactory\";\nimport { UrlRouter } from \"./url/urlRouter\";\nimport { TransitionService } from \"./transition/transitionService\";\nimport { ViewService } from \"./view/view\";\nimport { StateRegistry } from \"./state/stateRegistry\";\nimport { StateService } from \"./state/stateService\";\nimport { UIRouterGlobals } from \"./globals\";\nimport { UIRouterPlugin, Disposable } from \"./interface\";\nimport { values, removeFrom } from \"./common/common\";\nimport { isFunction } from \"./common/predicates\";\nimport { UrlService } from \"./url/urlService\";\nimport { LocationServices, LocationConfig } from \"./common/coreservices\";\nimport { Trace, trace } from \"./common/trace\";\n\n/** @hidden */\nlet _routerInstance = 0;\n\n/**\n * The master class used to instantiate an instance of UI-Router.\n *\n * UI-Router (for each specific framework) will create an instance of this class during bootstrap.\n * This class instantiates and wires the UI-Router services together.\n *\n * After a new instance of the UIRouter class is created, it should be configured for your app.\n * For instance, app states should be registered with the [[UIRouter.stateRegistry]].\n *\n * ---\n *\n * Normally the framework code will bootstrap UI-Router.\n * If you are bootstrapping UIRouter manually, tell it to monitor the URL by calling\n * [[UrlService.listen]] then [[UrlService.sync]].\n */\nexport class UIRouter {\n /** @hidden */ $id = _routerInstance++;\n /** @hidden */ _disposed = false;\n /** @hidden */ private _disposables: Disposable[] = [];\n\n /** Provides trace information to the console */\n trace: Trace = trace;\n\n /** Provides services related to ui-view synchronization */\n viewService = new ViewService();\n\n /** Provides services related to Transitions */\n transitionService: TransitionService = new TransitionService(this);\n\n /** Global router state */\n globals: UIRouterGlobals = new UIRouterGlobals();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlMatcherFactory: UrlMatcherFactory = new UrlMatcherFactory();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlRouter: UrlRouter = new UrlRouter(this);\n\n /** Provides a registry for states, and related registration services */\n stateRegistry: StateRegistry = new StateRegistry(this);\n\n /** Provides services related to states */\n stateService = new StateService(this);\n\n /** Provides services related to the URL */\n urlService: UrlService = new UrlService(this);\n\n\n /** Registers an object to be notified when the router is disposed */\n disposable(disposable: Disposable) {\n this._disposables.push(disposable);\n }\n\n /**\n * Disposes this router instance\n *\n * When called, clears resources retained by the router by calling `dispose(this)` on all\n * registered [[disposable]] objects.\n *\n * Or, if a `disposable` object is provided, calls `dispose(this)` on that object only.\n *\n * @param disposable (optional) the disposable to dispose\n */\n dispose(disposable?: any): void {\n if (disposable && isFunction(disposable.dispose)) {\n disposable.dispose(this);\n return undefined;\n }\n\n this._disposed = true;\n this._disposables.slice().forEach(d => {\n try {\n typeof d.dispose === 'function' && d.dispose(this);\n removeFrom(this._disposables, d);\n } catch (ignored) {}\n });\n }\n\n /**\n * Creates a new `UIRouter` object\n *\n * @param locationService a [[LocationServices]] implementation\n * @param locationConfig a [[LocationConfig]] implementation\n * @internalapi\n */\n constructor(\n public locationService: LocationServices = UrlService.locationServiceStub,\n public locationConfig: LocationConfig = UrlService.locationConfigStub\n ) {\n\n this.viewService._pluginapi._rootViewContext(this.stateRegistry.root());\n this.globals.$current = this.stateRegistry.root();\n this.globals.current = this.globals.$current.self;\n\n this.disposable(this.globals);\n this.disposable(this.stateService);\n this.disposable(this.stateRegistry);\n this.disposable(this.transitionService);\n this.disposable(this.urlRouter);\n this.disposable(locationService);\n this.disposable(locationConfig);\n }\n\n /** @hidden */\n private _plugins: { [key: string]: UIRouterPlugin } = {};\n\n /** Add plugin (as ES6 class) */\n plugin(plugin: { new(router: UIRouter, options?: any): T }, options?: any): T;\n /** Add plugin (as javascript constructor function) */\n plugin(plugin: { (router: UIRouter, options?: any): void }, options?: any): T;\n /** Add plugin (as javascript factory function) */\n plugin(plugin: PluginFactory, options?: any): T;\n /**\n * Adds a plugin to UI-Router\n *\n * This method adds a UI-Router Plugin.\n * A plugin can enhance or change UI-Router behavior using any public API.\n *\n * #### Example:\n * ```js\n * import { MyCoolPlugin } from \"ui-router-cool-plugin\";\n *\n * var plugin = router.addPlugin(MyCoolPlugin);\n * ```\n *\n * ### Plugin authoring\n *\n * A plugin is simply a class (or constructor function) which accepts a [[UIRouter]] instance and (optionally) an options object.\n *\n * The plugin can implement its functionality using any of the public APIs of [[UIRouter]].\n * For example, it may configure router options or add a Transition Hook.\n *\n * The plugin can then be published as a separate module.\n *\n * #### Example:\n * ```js\n * export class MyAuthPlugin implements UIRouterPlugin {\n * constructor(router: UIRouter, options: any) {\n * this.name = \"MyAuthPlugin\";\n * let $transitions = router.transitionService;\n * let $state = router.stateService;\n *\n * let authCriteria = {\n * to: (state) => state.data && state.data.requiresAuth\n * };\n *\n * function authHook(transition: Transition) {\n * let authService = transition.injector().get('AuthService');\n * if (!authService.isAuthenticated()) {\n * return $state.target('login');\n * }\n * }\n *\n * $transitions.onStart(authCriteria, authHook);\n * }\n * }\n * ```\n *\n * @param plugin one of:\n * - a plugin class which implements [[UIRouterPlugin]]\n * - a constructor function for a [[UIRouterPlugin]] which accepts a [[UIRouter]] instance\n * - a factory function which accepts a [[UIRouter]] instance and returns a [[UIRouterPlugin]] instance\n * @param options options to pass to the plugin class/factory\n * @returns the registered plugin instance\n */\n plugin(plugin: any, options: any = {}): T {\n let pluginInstance = new plugin(this, options);\n if (!pluginInstance.name) throw new Error(\"Required property `name` missing on plugin: \" + pluginInstance);\n this._disposables.push(pluginInstance);\n return this._plugins[pluginInstance.name] = pluginInstance;\n }\n\n /**\n * Returns registered plugins\n *\n * Returns the registered plugin of the given `pluginName`.\n * If no `pluginName` is given, returns all registered plugins\n *\n * @param pluginName (optional) the name of the plugin to get\n * @return the named plugin (undefined if not found), or all plugins (if `pluginName` is omitted)\n */\n getPlugin(pluginName: string): UIRouterPlugin;\n getPlugin(): UIRouterPlugin[];\n getPlugin(pluginName?: string): UIRouterPlugin|UIRouterPlugin[] {\n return pluginName ? this._plugins[pluginName] : values(this._plugins);\n }\n}\n\n/** @internalapi */\nexport type PluginFactory = (router: UIRouter, options?: any) => T;\n","/** @module hooks */ /** */\nimport { Transition } from \"../transition/transition\";\nimport { UIRouter } from \"../router\";\nimport { TransitionService } from \"../transition/transitionService\";\n\nfunction addCoreResolvables(trans: Transition) {\n trans.addResolvable({ token: UIRouter, deps: [], resolveFn: () => trans.router, data: trans.router }, \"\");\n trans.addResolvable({ token: Transition, deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$transition$', deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$stateParams', deps: [], resolveFn: () => trans.params(), data: trans.params() }, \"\");\n\n trans.entering().forEach(state => {\n trans.addResolvable({ token: '$state$', deps: [], resolveFn: () => state, data: state }, state);\n });\n}\n\nexport const registerAddCoreResolvables = (transitionService: TransitionService) =>\n transitionService.onCreate({}, addCoreResolvables);\n","/** @module hooks */ /** */\nimport {isString, isFunction} from \"../common/predicates\"\nimport {Transition} from \"../transition/transition\";\nimport {services} from \"../common/coreservices\";\nimport {TargetState} from \"../state/targetState\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\n\n/**\n * A [[TransitionHookFn]] that redirects to a different state or params\n *\n * Registered using `transitionService.onStart({ to: (state) => !!state.redirectTo }, redirectHook);`\n * \n * See [[StateDeclaration.redirectTo]]\n */\nconst redirectToHook: TransitionHookFn = (trans: Transition) => {\n let redirect = trans.to().redirectTo;\n if (!redirect) return;\n\n let $state = trans.router.stateService;\n\n function handleResult(result: any) {\n if (!result) return;\n if (result instanceof TargetState) return result;\n if (isString(result)) return $state.target( result, trans.params(), trans.options());\n if (result['state'] || result['params'])\n return $state.target(result['state'] || trans.to(), result['params'] || trans.params(), trans.options());\n }\n\n if (isFunction(redirect)) {\n return services.$q.when(redirect(trans)).then(handleResult);\n }\n return handleResult(redirect);\n};\n\nexport const registerRedirectToHook = (transitionService: TransitionService) =>\n transitionService.onStart({to: (state) => !!state.redirectTo}, redirectToHook);\n","/** @module hooks */\n/** for typedoc */\nimport { TransitionStateHookFn } from '../transition/interface';\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { StateDeclaration } from '../state/interface';\nimport { StateObject } from '../state/stateObject';\n\n/**\n * A factory which creates an onEnter, onExit or onRetain transition hook function\n *\n * The returned function invokes the (for instance) state.onEnter hook when the\n * state is being entered.\n *\n * @hidden\n */\nfunction makeEnterExitRetainHook(hookName: string): TransitionStateHookFn {\n return (transition: Transition, state: StateDeclaration) => {\n let _state: StateObject = state.$$state();\n let hookFn: TransitionStateHookFn = _state[hookName];\n return hookFn(transition, state);\n }\n}\n\n/**\n * The [[TransitionStateHookFn]] for onExit\n *\n * When the state is being exited, the state's .onExit function is invoked.\n *\n * Registered using `transitionService.onExit({ exiting: (state) => !!state.onExit }, onExitHook);`\n *\n * See: [[IHookRegistry.onExit]]\n */\nconst onExitHook: TransitionStateHookFn = makeEnterExitRetainHook('onExit');\nexport const registerOnExitHook = (transitionService: TransitionService) =>\n transitionService.onExit({exiting: state => !!state.onExit}, onExitHook);\n\n/**\n * The [[TransitionStateHookFn]] for onRetain\n *\n * When the state was already entered, and is not being exited or re-entered, the state's .onRetain function is invoked.\n *\n * Registered using `transitionService.onRetain({ retained: (state) => !!state.onRetain }, onRetainHook);`\n *\n * See: [[IHookRegistry.onRetain]]\n */\nconst onRetainHook: TransitionStateHookFn = makeEnterExitRetainHook('onRetain');\nexport const registerOnRetainHook = (transitionService: TransitionService) =>\n transitionService.onRetain({retained: state => !!state.onRetain}, onRetainHook);\n\n/**\n * The [[TransitionStateHookFn]] for onEnter\n *\n * When the state is being entered, the state's .onEnter function is invoked.\n *\n * Registered using `transitionService.onEnter({ entering: (state) => !!state.onEnter }, onEnterHook);`\n *\n * See: [[IHookRegistry.onEnter]]\n */\nconst onEnterHook: TransitionStateHookFn = makeEnterExitRetainHook('onEnter');\nexport const registerOnEnterHook = (transitionService: TransitionService) =>\n transitionService.onEnter({entering: state => !!state.onEnter}, onEnterHook);\n\n","/** @module hooks */\n/** for typedoc */\nimport { noop } from '../common/common';\nimport { Transition } from '../transition/transition';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { TransitionStateHookFn, TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\nimport { val } from '../common/hof';\nimport { StateDeclaration } from '../state/interface';\n\n/**\n * A [[TransitionHookFn]] which resolves all EAGER Resolvables in the To Path\n *\n * Registered using `transitionService.onStart({}, eagerResolvePath);`\n *\n * When a Transition starts, this hook resolves all the EAGER Resolvables, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst eagerResolvePath: TransitionHookFn = (trans: Transition) =>\n new ResolveContext(trans.treeChanges().to)\n .resolvePath(\"EAGER\", trans)\n .then(noop);\n\nexport const registerEagerResolvePath = (transitionService: TransitionService) =>\n transitionService.onStart({}, eagerResolvePath, {priority: 1000});\n\n/**\n * A [[TransitionHookFn]] which resolves all LAZY Resolvables for the state (and all its ancestors) in the To Path\n *\n * Registered using `transitionService.onEnter({ entering: () => true }, lazyResolveState);`\n *\n * When a State is being entered, this hook resolves all the Resolvables for this state, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst lazyResolveState: TransitionStateHookFn = (trans: Transition, state: StateDeclaration) =>\n new ResolveContext(trans.treeChanges().to)\n .subContext(state.$$state())\n .resolvePath(\"LAZY\", trans)\n .then(noop);\n\nexport const registerLazyResolveState = (transitionService: TransitionService) =>\n transitionService.onEnter({ entering: val(true) }, lazyResolveState, {priority: 1000});\n\n","/** @module hooks */ /** for typedoc */\nimport {noop} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {Transition} from \"../transition/transition\";\nimport {ViewService} from \"../view/view\";\nimport {ViewConfig} from \"../view/interface\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n\n/**\n * A [[TransitionHookFn]] which waits for the views to load\n *\n * Registered using `transitionService.onStart({}, loadEnteringViews);`\n *\n * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.\n * In angular 1, this includes loading the templates.\n */\nconst loadEnteringViews: TransitionHookFn = (transition: Transition) => {\n let $q = services.$q;\n let enteringViews = transition.views(\"entering\");\n if (!enteringViews.length) return;\n return $q.all(enteringViews.map(view => $q.when(view.load()))).then(noop);\n};\n\nexport const registerLoadEnteringViews = (transitionService: TransitionService) =>\n transitionService.onFinish({}, loadEnteringViews);\n\n/**\n * A [[TransitionHookFn]] which activates the new views when a transition is successful.\n *\n * Registered using `transitionService.onSuccess({}, activateViews);`\n *\n * After a transition is complete, this hook deactivates the old views from the previous state,\n * and activates the new views from the destination state.\n *\n * See [[ViewService]]\n */\nconst activateViews: TransitionHookFn = (transition: Transition) => {\n let enteringViews = transition.views(\"entering\");\n let exitingViews = transition.views(\"exiting\");\n if (!enteringViews.length && !exitingViews.length) return;\n\n let $view: ViewService = transition.router.viewService;\n\n exitingViews.forEach((vc: ViewConfig) => $view.deactivateViewConfig(vc));\n enteringViews.forEach((vc: ViewConfig) => $view.activateViewConfig(vc));\n\n $view.sync();\n};\n\nexport const registerActivateViews = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, activateViews);\n","/** @module hooks */\n/** for typedoc */\nimport { Transition } from '../transition/transition';\nimport { copy } from '../common/common';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates global UI-Router state\n *\n * Registered using `transitionService.onBefore({}, updateGlobalState);`\n *\n * Before a [[Transition]] starts, updates the global value of \"the current transition\" ([[Globals.transition]]).\n * After a successful [[Transition]], updates the global values of \"the current state\"\n * ([[Globals.current]] and [[Globals.$current]]) and \"the current param values\" ([[Globals.params]]).\n *\n * See also the deprecated properties:\n * [[StateService.transition]], [[StateService.current]], [[StateService.params]]\n */\nconst updateGlobalState = (trans: Transition) => {\n let globals = trans.router.globals;\n\n const transitionSuccessful = () => {\n globals.successfulTransitions.enqueue(trans);\n globals.$current = trans.$to();\n globals.current = globals.$current.self;\n\n copy(trans.params(), globals.params);\n };\n\n const clearCurrentTransition = () => {\n // Do not clear globals.transition if a different transition has started in the meantime\n if (globals.transition === trans) globals.transition = null;\n };\n\n trans.onSuccess({}, transitionSuccessful, { priority: 10000 });\n trans.promise.then(clearCurrentTransition, clearCurrentTransition);\n};\n\nexport const registerUpdateGlobalState = (transitionService: TransitionService) =>\n transitionService.onCreate({}, updateGlobalState);\n","/** @module hooks */ /** */\nimport {UrlRouter} from \"../url/urlRouter\";\nimport {StateService} from \"../state/stateService\";\nimport {Transition} from \"../transition/transition\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n/** \n * A [[TransitionHookFn]] which updates the URL after a successful transition\n * \n * Registered using `transitionService.onSuccess({}, updateUrl);`\n */\nconst updateUrl: TransitionHookFn = (transition: Transition) => {\n let options = transition.options();\n let $state: StateService = transition.router.stateService;\n let $urlRouter: UrlRouter = transition.router.urlRouter;\n\n // Dont update the url in these situations:\n // The transition was triggered by a URL sync (options.source === 'url')\n // The user doesn't want the url to update (options.location === false)\n // The destination state, and all parents have no navigable url\n if (options.source !== 'url' && options.location && $state.$current.navigable) {\n var urlOptions = {replace: options.location === 'replace'};\n $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);\n }\n\n $urlRouter.update(true);\n};\n\nexport const registerUpdateUrl = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, updateUrl, {priority: 9999});\n","/** @module hooks */ /** */\nimport {Transition} from \"../transition/transition\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {StateDeclaration, LazyLoadResult} from \"../state/interface\";\nimport {services} from \"../common/coreservices\";\nimport { StateRule } from \"../url/interface\";\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => System.import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n let router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n let orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n let $url = router.urlService;\n let result = $url.match($url.parts());\n let rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === \"STATE\") {\n let state = (rule as StateRule).state;\n let params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n let promises = transition.entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: (state) => !!state.lazyLoad }, lazyLoadHook);\n\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise {\n let lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = (result) => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = (err) => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] =\n services.$q.when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(state => transition.router.stateRegistry.register(state));\n }\n return result;\n }\n\n return promise;\n}\n","/** @module transition */ /** */\nimport { TransitionHookPhase, PathType } from \"./interface\";\nimport { GetErrorHandler, GetResultHandler, TransitionHook } from \"./transitionHook\";\n/**\n * This class defines a type of hook, such as `onBefore` or `onEnter`.\n * Plugins can define custom hook types, such as sticky states does for `onInactive`.\n *\n * @interalapi\n */\nexport class TransitionEventType {\n\n constructor(public name: string,\n public hookPhase: TransitionHookPhase,\n public hookOrder: number,\n public criteriaMatchPath: PathType,\n public reverseSort: boolean = false,\n public getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n public getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n public synchronous: boolean = false,\n ) { }\n}\n","/** @module hooks */ /** */\n\nimport { trace } from '../common/trace';\nimport { Rejection } from '../transition/rejectFactory';\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that skips a transition if it should be ignored\n *\n * This hook is invoked at the end of the onBefore phase.\n *\n * If the transition should be ignored (because no parameter or states changed)\n * then the transition is ignored and not processed.\n */\nfunction ignoredHook(trans: Transition) {\n const ignoredReason = trans._ignoredReason();\n if (!ignoredReason) return;\n\n trace.traceTransitionIgnored(trans);\n\n const pending = trans.router.globals.transition;\n\n // The user clicked a link going back to the *current state* ('A')\n // However, there is also a pending transition in flight (to 'B')\n // Abort the transition to 'B' because the user now wants to be back at 'A'.\n if (ignoredReason === 'SameAsCurrent' && pending) {\n pending.abort();\n }\n\n return Rejection.ignored().toPromise();\n}\n\nexport const registerIgnoredTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, ignoredHook, { priority: -9999 });\n","/** @module hooks */ /** */\n\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that rejects the Transition if it is invalid\n *\n * This hook is invoked at the end of the onBefore phase.\n * If the transition is invalid (for example, param values do not validate)\n * then the transition is rejected.\n */\nfunction invalidTransitionHook(trans: Transition) {\n if (!trans.valid()) {\n throw new Error(trans.error());\n }\n}\n\nexport const registerInvalidTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });\n","/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport {\n IHookRegistry, TransitionOptions, TransitionHookScope, TransitionHookPhase, TransitionCreateHookFn, HookMatchCriteria,\n HookRegOptions, PathTypes, PathType, RegisteredHooks, TransitionHookFn, TransitionStateHookFn\n} from \"./interface\";\nimport { Transition } from \"./transition\";\nimport { makeEvent, RegisteredHook } from \"./hookRegistry\";\nimport { TargetState } from \"../state/targetState\";\nimport { PathNode } from \"../path/pathNode\";\nimport { ViewService } from \"../view/view\";\nimport { UIRouter } from \"../router\";\nimport { registerAddCoreResolvables } from \"../hooks/coreResolvables\";\nimport { registerRedirectToHook } from \"../hooks/redirectTo\";\nimport { registerOnExitHook, registerOnRetainHook, registerOnEnterHook } from \"../hooks/onEnterExitRetain\";\nimport { registerEagerResolvePath, registerLazyResolveState } from \"../hooks/resolve\";\nimport { registerLoadEnteringViews, registerActivateViews } from \"../hooks/views\";\nimport { registerUpdateGlobalState } from \"../hooks/updateGlobals\";\nimport { registerUpdateUrl } from \"../hooks/url\";\nimport { registerLazyLoadHook } from \"../hooks/lazyLoad\";\nimport { TransitionEventType } from \"./transitionEventType\";\nimport { TransitionHook, GetResultHandler, GetErrorHandler } from \"./transitionHook\";\nimport { isDefined } from \"../common/predicates\";\nimport { removeFrom, values, createProxyFunctions } from \"../common/common\";\nimport { Disposable } from \"../interface\"; // has or is using\nimport { val } from \"../common/hof\";\nimport { registerIgnoredTransitionHook } from '../hooks/ignoredTransition';\nimport { registerInvalidTransitionHook } from '../hooks/invalidTransition';\n\n/**\n * The default [[Transition]] options.\n *\n * Include this object when applying custom defaults:\n * let reloadOpts = { reload: true, notify: true }\n * let options = defaults(theirOpts, customDefaults, defaultOptions);\n */\nexport let defaultTransOpts: TransitionOptions = {\n location : true,\n relative : null,\n inherit : false,\n notify : true,\n reload : false,\n custom : {},\n current : () => null,\n source : \"unknown\"\n};\n\n\n/**\n * Plugin API for Transition Service\n * @internalapi\n */\nexport interface TransitionServicePluginAPI {\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n */\n _definePathType(name: string, hookScope: TransitionHookScope);\n\n /**\n * Gets a Path definition used as a criterion against a TreeChanges path\n */\n _getPathTypes(): PathTypes;\n\n /**\n * Defines a transition hook type and returns a transition hook registration\n * function (which can then be used to register hooks of this type).\n */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort?: boolean,\n getResultHandler?: GetResultHandler,\n getErrorHandler?: GetErrorHandler,\n rejectIfSuperseded?: boolean);\n\n /**\n * Returns the known event types, such as `onBefore`\n * If a phase argument is provided, returns only events for the given phase.\n */\n _getEvents(phase?: TransitionHookPhase): TransitionEventType[];\n\n /** Returns the hooks registered for the given hook name */\n getHooks(hookName: string): RegisteredHook[];\n}\n\n/**\n * This class provides services related to Transitions.\n *\n * - Most importantly, it allows global Transition Hooks to be registered.\n * - It allows the default transition error handler to be set.\n * - It also has a factory function for creating new [[Transition]] objects, (used internally by the [[StateService]]).\n *\n * At bootstrap, [[UIRouter]] creates a single instance (singleton) of this class.\n */\nexport class TransitionService implements IHookRegistry, Disposable {\n /** @hidden */\n _transitionCount = 0;\n\n /**\n * Registers a [[TransitionHookFn]], called *while a transition is being constructed*.\n *\n * Registers a transition lifecycle hook, which is invoked during transition construction.\n *\n * This low level hook should only be used by plugins.\n * This can be a useful time for plugins to add resolves or mutate the transition as needed.\n * The Sticky States plugin uses this hook to modify the treechanges.\n *\n * ### Lifecycle\n *\n * `onCreate` hooks are invoked *while a transition is being constructed*.\n *\n * ### Return value\n *\n * The hook's return value is ignored\n *\n * @internalapi\n * @param criteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @param options the registration options\n * @returns a function which deregisters the hook.\n */\n onCreate(criteria: HookMatchCriteria, callback: TransitionCreateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n\n /** @hidden */\n public $view: ViewService;\n\n /** @hidden The transition hook types, such as `onEnter`, `onStart`, etc */\n private _eventTypes: TransitionEventType[] = [];\n /** @hidden The registered transition hooks */\n _registeredHooks = { } as RegisteredHooks;\n /** @hidden The paths on a criteria object */\n private _criteriaPaths = { } as PathTypes;\n /** @hidden */\n private _router: UIRouter;\n\n /** @internalapi */\n _pluginapi: TransitionServicePluginAPI;\n\n /**\n * This object has hook de-registration functions for the built-in hooks.\n * This can be used by third parties libraries that wish to customize the behaviors\n *\n * @hidden\n */\n _deregisterHookFns: {\n addCoreResolves: Function;\n ignored: Function;\n invalid: Function;\n redirectTo: Function;\n onExit: Function;\n onRetain: Function;\n onEnter: Function;\n eagerResolve: Function;\n lazyResolve: Function;\n loadViews: Function;\n activateViews: Function;\n updateGlobals: Function;\n updateUrl: Function;\n lazyLoad: Function;\n };\n\n /** @hidden */\n constructor(_router: UIRouter) {\n this._router = _router;\n this.$view = _router.viewService;\n this._deregisterHookFns = {};\n this._pluginapi = createProxyFunctions(val(this), {}, val(this), [\n '_definePathType',\n '_defineEvent',\n '_getPathTypes',\n '_getEvents',\n 'getHooks',\n ]);\n\n this._defineCorePaths();\n this._defineCoreEvents();\n this._registerCoreTransitionHooks();\n }\n\n /**\n * dispose\n * @internalapi\n */\n dispose(router: UIRouter) {\n values(this._registeredHooks).forEach((hooksArray: RegisteredHook[]) => hooksArray.forEach(hook => {\n hook._deregistered = true;\n removeFrom(hooksArray, hook);\n }));\n }\n\n /**\n * Creates a new [[Transition]] object\n *\n * This is a factory function for creating new Transition objects.\n * It is used internally by the [[StateService]] and should generally not be called by application code.\n *\n * @param fromPath the path to the current state (the from state)\n * @param targetState the target state (destination)\n * @returns a Transition\n */\n create(fromPath: PathNode[], targetState: TargetState): Transition {\n return new Transition(fromPath, targetState, this._router);\n }\n\n /** @hidden */\n private _defineCoreEvents() {\n const Phase = TransitionHookPhase;\n const TH = TransitionHook;\n const paths = this._criteriaPaths;\n const NORMAL_SORT = false, REVERSE_SORT = true;\n const ASYNCHRONOUS = false, SYNCHRONOUS = true;\n\n this._defineEvent(\"onCreate\", Phase.CREATE, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.THROW_ERROR, SYNCHRONOUS);\n\n this._defineEvent(\"onBefore\", Phase.BEFORE, 0, paths.to);\n\n this._defineEvent(\"onStart\", Phase.RUN, 0, paths.to);\n this._defineEvent(\"onExit\", Phase.RUN, 100, paths.exiting, REVERSE_SORT);\n this._defineEvent(\"onRetain\", Phase.RUN, 200, paths.retained);\n this._defineEvent(\"onEnter\", Phase.RUN, 300, paths.entering);\n this._defineEvent(\"onFinish\", Phase.RUN, 400, paths.to);\n\n this._defineEvent(\"onSuccess\", Phase.SUCCESS, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n this._defineEvent(\"onError\", Phase.ERROR, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n }\n\n /** @hidden */\n private _defineCorePaths() {\n const { STATE, TRANSITION } = TransitionHookScope;\n\n this._definePathType(\"to\", TRANSITION);\n this._definePathType(\"from\", TRANSITION);\n this._definePathType(\"exiting\", STATE);\n this._definePathType(\"retained\", STATE);\n this._definePathType(\"entering\", STATE);\n }\n\n /** @hidden */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort: boolean = false,\n getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n synchronous: boolean = false)\n {\n let eventType = new TransitionEventType(name, hookPhase, hookOrder, criteriaMatchPath, reverseSort, getResultHandler, getErrorHandler, synchronous);\n\n this._eventTypes.push(eventType);\n makeEvent(this, this, eventType);\n };\n\n /** @hidden */\n private _getEvents(phase?: TransitionHookPhase): TransitionEventType[] {\n let transitionHookTypes = isDefined(phase) ?\n this._eventTypes.filter(type => type.hookPhase === phase) :\n this._eventTypes.slice();\n\n return transitionHookTypes.sort((l, r) => {\n let cmpByPhase = l.hookPhase - r.hookPhase;\n return cmpByPhase === 0 ? l.hookOrder - r.hookOrder : cmpByPhase;\n })\n }\n\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n *\n * @hidden\n */\n private _definePathType(name: string, hookScope: TransitionHookScope) {\n this._criteriaPaths[name] = { name, scope: hookScope };\n }\n\n /** * @hidden */\n private _getPathTypes(): PathTypes {\n return this._criteriaPaths;\n }\n\n /** @hidden */\n public getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /** @hidden */\n private _registerCoreTransitionHooks() {\n let fns = this._deregisterHookFns;\n\n fns.addCoreResolves = registerAddCoreResolvables(this);\n fns.ignored = registerIgnoredTransitionHook(this);\n fns.invalid = registerInvalidTransitionHook(this);\n\n // Wire up redirectTo hook\n fns.redirectTo = registerRedirectToHook(this);\n \n // Wire up onExit/Retain/Enter state hooks\n fns.onExit = registerOnExitHook(this);\n fns.onRetain = registerOnRetainHook(this);\n fns.onEnter = registerOnEnterHook(this);\n\n // Wire up Resolve hooks\n fns.eagerResolve = registerEagerResolvePath(this);\n fns.lazyResolve = registerLazyResolveState(this);\n \n // Wire up the View management hooks\n fns.loadViews = registerLoadEnteringViews(this);\n fns.activateViews = registerActivateViews(this);\n\n // Updates global state after a transition\n fns.updateGlobals = registerUpdateGlobalState(this);\n\n // After globals.current is updated at priority: 10000\n fns.updateUrl = registerUpdateUrl(this);\n\n // Lazy load state trees\n fns.lazyLoad = registerLazyLoadHook(this);\n }\n}\n","/**\n * @coreapi\n * @module state\n */\n/** */\nimport { createProxyFunctions, defaults, extend, inArray, noop, removeFrom, silenceUncaughtInPromise, silentRejection } from '../common/common';\nimport { isDefined, isObject, isString } from '../common/predicates';\nimport { Queue } from '../common/queue';\nimport { services } from '../common/coreservices';\n\nimport { PathUtils } from '../path/pathFactory';\nimport { PathNode } from '../path/pathNode';\n\nimport { HookResult, TransitionOptions } from '../transition/interface';\nimport { defaultTransOpts } from '../transition/transitionService';\nimport { Rejection, RejectType } from '../transition/rejectFactory';\nimport { Transition } from '../transition/transition';\n\nimport { HrefOptions, LazyLoadResult, StateDeclaration, StateOrName, TransitionPromise } from './interface';\nimport { StateObject } from './stateObject';\nimport { TargetState } from './targetState';\n\nimport { RawParams } from '../params/interface';\nimport { Param } from '../params/param';\nimport { Glob } from '../common/glob';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { lazyLoadState } from '../hooks/lazyLoad';\nimport { not, val } from '../common/hof';\nimport { StateParams } from '../params/stateParams';\n\nexport type OnInvalidCallback =\n (toState?: TargetState, fromState?: TargetState, injector?: UIInjector) => HookResult;\n\n/**\n * Provides state related service functions\n *\n * This class provides services related to ui-router states.\n * An instance of this class is located on the global [[UIRouter]] object.\n */\nexport class StateService {\n /** @internalapi */\n invalidCallbacks: OnInvalidCallback[] = [];\n\n /**\n * The [[Transition]] currently in progress (or null)\n *\n * This is a passthrough through to [[UIRouterGlobals.transition]]\n */\n get transition() { return this.router.globals.transition; }\n /**\n * The latest successful state parameters\n *\n * This is a passthrough through to [[UIRouterGlobals.params]]\n */\n get params(): StateParams { return this.router.globals.params; }\n /**\n * The current [[StateDeclaration]]\n *\n * This is a passthrough through to [[UIRouterGlobals.current]]\n */\n get current() { return this.router.globals.current; }\n /**\n * The current [[StateObject]]\n *\n * This is a passthrough through to [[UIRouterGlobals.$current]]\n */\n get $current() { return this.router.globals.$current; }\n\n /** @internalapi */\n constructor(private router: UIRouter) {\n let getters = ['current', '$current', 'params', 'transition'];\n let boundFns = Object.keys(StateService.prototype).filter(not(inArray(getters)));\n createProxyFunctions(val(StateService.prototype), this, val(this), boundFns);\n }\n\n /** @internalapi */\n dispose() {\n this.defaultErrorHandler(noop);\n this.invalidCallbacks = [];\n }\n\n /**\n * Handler for when [[transitionTo]] is called with an invalid state.\n *\n * Invokes the [[onInvalid]] callbacks, in natural order.\n * Each callback's return value is checked in sequence until one of them returns an instance of TargetState.\n * The results of the callbacks are wrapped in $q.when(), so the callbacks may return promises.\n *\n * If a callback returns an TargetState, then it is used as arguments to $state.transitionTo() and the result returned.\n *\n * @internalapi\n */\n private _handleInvalidTargetState(fromPath: PathNode[], toState: TargetState) {\n let fromState = PathUtils.makeTargetState(this.router.stateRegistry, fromPath);\n let globals = this.router.globals;\n const latestThing = () => globals.transitionHistory.peekTail();\n let latest = latestThing();\n let callbackQueue = new Queue(this.invalidCallbacks.slice());\n let injector = new ResolveContext(fromPath).injector();\n\n const checkForRedirect = (result: HookResult) => {\n if (!(result instanceof TargetState)) {\n return;\n }\n\n let target = result;\n // Recreate the TargetState, in case the state is now defined.\n target = this.target(target.identifier(), target.params(), target.options());\n\n if (!target.valid()) {\n return Rejection.invalid(target.error()).toPromise();\n }\n\n if (latestThing() !== latest) {\n return Rejection.superseded().toPromise();\n }\n\n return this.transitionTo(target.identifier(), target.params(), target.options());\n };\n\n function invokeNextCallback() {\n let nextCallback = callbackQueue.dequeue();\n if (nextCallback === undefined) return Rejection.invalid(toState.error()).toPromise();\n\n let callbackResult = services.$q.when(nextCallback(toState, fromState, injector));\n return callbackResult.then(checkForRedirect).then(result => result || invokeNextCallback());\n }\n\n return invokeNextCallback();\n }\n\n /**\n * Registers an Invalid State handler\n *\n * Registers a [[OnInvalidCallback]] function to be invoked when [[StateService.transitionTo]]\n * has been called with an invalid state reference parameter\n *\n * Example:\n * ```js\n * stateService.onInvalid(function(to, from, injector) {\n * if (to.name() === 'foo') {\n * let lazyLoader = injector.get('LazyLoadService');\n * return lazyLoader.load('foo')\n * .then(() => stateService.target('foo'));\n * }\n * });\n * ```\n *\n * @param {function} callback invoked when the toState is invalid\n * This function receives the (invalid) toState, the fromState, and an injector.\n * The function may optionally return a [[TargetState]] or a Promise for a TargetState.\n * If one is returned, it is treated as a redirect.\n *\n * @returns a function which deregisters the callback\n */\n onInvalid(callback: OnInvalidCallback): Function {\n this.invalidCallbacks.push(callback);\n return function deregisterListener() {\n removeFrom(this.invalidCallbacks)(callback);\n }.bind(this);\n }\n\n\n /**\n * Reloads the current state\n *\n * A method that force reloads the current state, or a partial state hierarchy.\n * All resolves are re-resolved, and components reinstantiated.\n *\n * #### Example:\n * ```js\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * $state.reload();\n * }\n * });\n * ```\n *\n * Note: `reload()` is just an alias for:\n *\n * ```js\n * $state.transitionTo($state.current, $state.params, {\n * reload: true, inherit: false\n * });\n * ```\n *\n * @param reloadState A state name or a state object.\n * If present, this state and all its children will be reloaded, but ancestors will not reload.\n *\n * #### Example:\n * ```js\n * //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item'\n * //and current state is 'contacts.detail.item'\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * //will reload 'contact.detail' and nested 'contact.detail.item' states\n * $state.reload('contact.detail');\n * }\n * });\n * ```\n *\n * @returns A promise representing the state of the new transition. See [[StateService.go]]\n */\n reload(reloadState?: StateOrName): Promise {\n return this.transitionTo(this.current, this.params, {\n reload: isDefined(reloadState) ? reloadState : true,\n inherit: false,\n notify: false,\n });\n };\n\n /**\n * Transition to a different state and/or parameters\n *\n * Convenience method for transitioning to a new state.\n *\n * `$state.go` calls `$state.transitionTo` internally but automatically sets options to\n * `{ location: true, inherit: true, relative: router.globals.$current, notify: true }`.\n * This allows you to use either an absolute or relative `to` argument (because of `relative: router.globals.$current`).\n * It also allows you to specify * only the parameters you'd like to update, while letting unspecified parameters\n * inherit from the current parameter values (because of `inherit: true`).\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.go('contact.detail');\n * };\n * });\n * ```\n *\n * @param to Absolute state name, state object, or relative state path (relative to current state).\n *\n * Some examples:\n *\n * - `$state.go('contact.detail')` - will go to the `contact.detail` state\n * - `$state.go('^')` - will go to the parent state\n * - `$state.go('^.sibling')` - if current state is `home.child`, will go to the `home.sibling` state\n * - `$state.go('.child.grandchild')` - if current state is home, will go to the `home.child.grandchild` state\n *\n * @param params A map of the parameters that will be sent to the state, will populate $stateParams.\n *\n * Any parameters that are not specified will be inherited from current parameter values (because of `inherit: true`).\n * This allows, for example, going to a sibling state that shares parameters defined by a parent state.\n *\n * @param options Transition options\n *\n * @returns {promise} A promise representing the state of the new transition.\n */\n go(to: StateOrName, params?: RawParams, options?: TransitionOptions): TransitionPromise {\n let defautGoOpts = { relative: this.$current, inherit: true };\n let transOpts = defaults(options, defautGoOpts, defaultTransOpts);\n return this.transitionTo(to, params, transOpts);\n };\n\n /**\n * Creates a [[TargetState]]\n *\n * This is a factory method for creating a TargetState\n *\n * This may be returned from a Transition Hook to redirect a transition, for example.\n */\n target(identifier: StateOrName, params?: RawParams, options: TransitionOptions = {}): TargetState {\n // If we're reloading, find the state object to reload from\n if (isObject(options.reload) && !(options.reload).name)\n throw new Error('Invalid reload state object');\n let reg = this.router.stateRegistry;\n options.reloadState = options.reload === true ? reg.root() : reg.matcher.find( options.reload, options.relative);\n\n if (options.reload && !options.reloadState)\n throw new Error(`No such reload state '${(isString(options.reload) ? options.reload : (options.reload).name)}'`);\n\n return new TargetState(this.router.stateRegistry, identifier, params, options);\n };\n\n private getCurrentPath(): PathNode[] {\n let globals = this.router.globals;\n let latestSuccess: Transition = globals.successfulTransitions.peekTail();\n const rootPath = () => [ new PathNode(this.router.stateRegistry.root()) ];\n return latestSuccess ? latestSuccess.treeChanges().to : rootPath();\n }\n\n /**\n * Low-level method for transitioning to a new state.\n *\n * The [[go]] method (which uses `transitionTo` internally) is recommended in most situations.\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.transitionTo('contact.detail');\n * };\n * });\n * ```\n *\n * @param to State name or state object.\n * @param toParams A map of the parameters that will be sent to the state,\n * will populate $stateParams.\n * @param options Transition options\n *\n * @returns A promise representing the state of the new transition. See [[go]]\n */\n transitionTo(to: StateOrName, toParams: RawParams = {}, options: TransitionOptions = {}): TransitionPromise {\n let router = this.router;\n let globals = router.globals;\n options = defaults(options, defaultTransOpts);\n const getCurrent = () =>\n globals.transition;\n options = extend(options, { current: getCurrent });\n\n let ref: TargetState = this.target(to, toParams, options);\n let currentPath = this.getCurrentPath();\n\n if (!ref.exists())\n return this._handleInvalidTargetState(currentPath, ref);\n\n if (!ref.valid())\n return silentRejection(ref.error());\n\n /**\n * Special handling for Ignored, Aborted, and Redirected transitions\n *\n * The semantics for the transition.run() promise and the StateService.transitionTo()\n * promise differ. For instance, the run() promise may be rejected because it was\n * IGNORED, but the transitionTo() promise is resolved because from the user perspective\n * no error occurred. Likewise, the transition.run() promise may be rejected because of\n * a Redirect, but the transitionTo() promise is chained to the new Transition's promise.\n */\n const rejectedTransitionHandler = (transition: Transition) => (error: any): Promise => {\n if (error instanceof Rejection) {\n const isLatest = router.globals.lastStartedTransitionId === transition.$id;\n\n if (error.type === RejectType.IGNORED) {\n isLatest && router.urlRouter.update();\n // Consider ignored `Transition.run()` as a successful `transitionTo`\n return services.$q.when(globals.current);\n }\n\n const detail: any = error.detail;\n if (error.type === RejectType.SUPERSEDED && error.redirected && detail instanceof TargetState) {\n // If `Transition.run()` was redirected, allow the `transitionTo()` promise to resolve successfully\n // by returning the promise for the new (redirect) `Transition.run()`.\n let redirect: Transition = transition.redirect(detail);\n return redirect.run().catch(rejectedTransitionHandler(redirect));\n }\n\n if (error.type === RejectType.ABORTED) {\n isLatest && router.urlRouter.update();\n return services.$q.reject(error);\n }\n }\n\n let errorHandler = this.defaultErrorHandler();\n errorHandler(error);\n\n return services.$q.reject(error);\n };\n\n let transition = this.router.transitionService.create(currentPath, ref);\n let transitionToPromise = transition.run().catch(rejectedTransitionHandler(transition));\n silenceUncaughtInPromise(transitionToPromise); // issue #2676\n\n // Return a promise for the transition, which also has the transition object on it.\n return extend(transitionToPromise, { transition });\n };\n\n /**\n * Checks if the current state *is* the provided state\n *\n * Similar to [[includes]] but only checks for the full state name.\n * If params is supplied then it will be tested for strict equality against the current\n * active params object, so all params must match with none missing and no extras.\n *\n * #### Example:\n * ```js\n * $state.$current.name = 'contacts.details.item';\n *\n * // absolute name\n * $state.is('contact.details.item'); // returns true\n * $state.is(contactDetailItemStateObject); // returns true\n * ```\n *\n * // relative name (. and ^), typically from a template\n * // E.g. from the 'contacts.details' template\n * ```html\n *
Item
\n * ```\n *\n * @param stateOrName The state name (absolute or relative) or state object you'd like to check.\n * @param params A param object, e.g. `{sectionId: section.id}`, that you'd like\n * to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns Returns true if it is the state.\n */\n is(stateOrName: StateOrName, params?: RawParams, options?: { relative?: StateOrName }): boolean {\n options = defaults(options, { relative: this.$current });\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n if (!isDefined(state)) return undefined;\n if (this.$current !== state) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n /**\n * Checks if the current state *includes* the provided state\n *\n * A method to determine if the current active state is equal to or is the child of the\n * state stateName. If any params are passed then they will be tested for a match as well.\n * Not all the parameters need to be passed, just the ones you'd like to test for equality.\n *\n * #### Example when `$state.$current.name === 'contacts.details.item'`\n * ```js\n * // Using partial names\n * $state.includes(\"contacts\"); // returns true\n * $state.includes(\"contacts.details\"); // returns true\n * $state.includes(\"contacts.details.item\"); // returns true\n * $state.includes(\"contacts.list\"); // returns false\n * $state.includes(\"about\"); // returns false\n * ```\n *\n * #### Glob Examples when `* $state.$current.name === 'contacts.details.item.url'`:\n * ```js\n * $state.includes(\"*.details.*.*\"); // returns true\n * $state.includes(\"*.details.**\"); // returns true\n * $state.includes(\"**.item.**\"); // returns true\n * $state.includes(\"*.details.item.url\"); // returns true\n * $state.includes(\"*.details.*.url\"); // returns true\n * $state.includes(\"*.details.*\"); // returns false\n * $state.includes(\"item.**\"); // returns false\n * ```\n *\n * @param stateOrName A partial name, relative name, glob pattern,\n * or state object to be searched for within the current state name.\n * @param params A param object, e.g. `{sectionId: section.id}`,\n * that you'd like to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns {boolean} Returns true if it does include the state\n */\n includes(stateOrName: StateOrName, params?: RawParams, options?: TransitionOptions): boolean {\n options = defaults(options, { relative: this.$current });\n let glob = isString(stateOrName) && Glob.fromString( stateOrName);\n\n if (glob) {\n if (!glob.matches(this.$current.name)) return false;\n stateOrName = this.$current.name;\n }\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative), include = this.$current.includes;\n\n if (!isDefined(state)) return undefined;\n if (!isDefined(include[state.name])) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n\n /**\n * Generates a URL for a state and parameters\n *\n * Returns the url for the given state populated with the given params.\n *\n * #### Example:\n * ```js\n * expect($state.href(\"about.person\", { person: \"bob\" })).toEqual(\"/about/bob\");\n * ```\n *\n * @param stateOrName The state name or state object you'd like to generate a url from.\n * @param params An object of parameter values to fill the state's required parameters.\n * @param options Options object. The options are:\n *\n * @returns {string} compiled state url\n */\n href(stateOrName: StateOrName, params: RawParams, options?: HrefOptions): string {\n let defaultHrefOpts = {\n lossy: true,\n inherit: true,\n absolute: false,\n relative: this.$current,\n };\n options = defaults(options, defaultHrefOpts);\n params = params || {};\n\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n\n if (!isDefined(state)) return null;\n if (options.inherit) params = this.params.$inherit(params, this.$current, state);\n\n let nav = (state && options.lossy) ? state.navigable : state;\n\n if (!nav || nav.url === undefined || nav.url === null) {\n return null;\n }\n return this.router.urlRouter.href(nav.url, params, {\n absolute: options.absolute,\n });\n };\n\n /** @hidden */\n private _defaultErrorHandler: ((_error: any) => void) = function $defaultErrorHandler($error$) {\n if ($error$ instanceof Error && $error$.stack) {\n console.error($error$);\n console.error($error$.stack);\n } else if ($error$ instanceof Rejection) {\n console.error($error$.toString());\n if ($error$.detail && $error$.detail.stack)\n console.error($error$.detail.stack);\n } else {\n console.error($error$);\n }\n };\n\n /**\n * Sets or gets the default [[transitionTo]] error handler.\n *\n * The error handler is called when a [[Transition]] is rejected or when any error occurred during the Transition.\n * This includes errors caused by resolves and transition hooks.\n *\n * Note:\n * This handler does not receive certain Transition rejections.\n * Redirected and Ignored Transitions are not considered to be errors by [[StateService.transitionTo]].\n *\n * The built-in default error handler logs the error to the console.\n *\n * You can provide your own custom handler.\n *\n * #### Example:\n * ```js\n * stateService.defaultErrorHandler(function() {\n * // Do not log transitionTo errors\n * });\n * ```\n *\n * @param handler a global error handler function\n * @returns the current global error handler\n */\n defaultErrorHandler(handler?: (error: any) => void): (error: any) => void {\n return this._defaultErrorHandler = handler || this._defaultErrorHandler;\n }\n\n /**\n * Gets a registered [[StateDeclaration]] object\n *\n * Returns the state declaration object for any specific state, or for all registered states.\n *\n * @param stateOrName (absolute or relative) If provided, will only get the declaration object for the requested state.\n * If not provided, returns an array of ALL states.\n * @param base When `stateOrName` is a relative state reference (such as `.bar.baz`), the state will be retrieved relative to this state.\n *\n * @returns a [[StateDeclaration]] object (or array of all registered [[StateDeclaration]] objects.)\n */\n get(stateOrName: StateOrName, base: StateOrName): StateDeclaration;\n get(stateOrName: StateOrName): StateDeclaration;\n get(): StateDeclaration[];\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n let reg = this.router.stateRegistry;\n if (arguments.length === 0) return reg.get();\n return reg.get(stateOrName, base || this.$current);\n }\n\n /**\n * Lazy loads a state\n *\n * Explicitly runs a state's [[StateDeclaration.lazyLoad]] function.\n *\n * @param stateOrName the state that should be lazy loaded\n * @param transition the optional Transition context to use (if the lazyLoad function requires an injector, etc)\n * Note: If no transition is provided, a noop transition is created using the from the current state to the current state.\n * This noop transition is not actually run.\n *\n * @returns a promise to lazy load\n */\n lazyLoad(stateOrName: StateOrName, transition?: Transition): Promise {\n let state: StateDeclaration = this.get(stateOrName);\n if (!state || !state.lazyLoad) throw new Error(\"Can not lazy load \" + stateOrName);\n\n let currentPath = this.getCurrentPath();\n let target = PathUtils.makeTargetState(this.router.stateRegistry, currentPath);\n transition = transition || this.router.transitionService.create(currentPath, target);\n\n return lazyLoadState(transition, state);\n }\n}\n","/**\n * # Transition subsystem\n *\n * This module contains APIs related to a Transition.\n *\n * See:\n * - [[TransitionService]]\n * - [[Transition]]\n * - [[HookFn]], [[TransitionHookFn]], [[TransitionStateHookFn]], [[HookMatchCriteria]], [[HookResult]]\n *\n * @coreapi\n * @preferred\n * @module transition\n */ /** for typedoc */\nexport * from \"./interface\";\nexport * from \"./hookBuilder\";\nexport * from \"./hookRegistry\";\nexport * from \"./rejectFactory\";\nexport * from \"./transition\";\nexport * from \"./transitionHook\";\nexport * from \"./transitionEventType\";\nexport * from \"./transitionService\";\n\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isArray, isObject, $QLike } from \"../common/index\";\n\n/**\n * An angular1-like promise api\n *\n * This object implements four methods similar to the\n * [angular 1 promise api](https://docs.angularjs.org/api/ng/service/$q)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This API provides native ES6 promise support wrapped as a $q-like API.\n * Internally, UI-Router uses this $q object to perform promise operations.\n * The `angular-ui-router` (ui-router for angular 1) uses the $q API provided by angular.\n *\n * $q-like promise api\n */\nexport const $q = {\n /** Normalizes a value as a promise */\n when: (val) => new Promise((resolve, reject) => resolve(val)),\n\n /** Normalizes a value as a promise rejection */\n reject: (val) => new Promise((resolve, reject) => { reject(val); }),\n\n /** @returns a deferred object, which has `resolve` and `reject` functions */\n defer: () => {\n let deferred: any = {};\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n },\n\n /** Like Promise.all(), but also supports object key/promise notation like $q */\n all: (promises: { [key: string]: Promise } | Promise[]) => {\n if (isArray(promises)) {\n return Promise.all(promises);\n }\n\n if (isObject(promises)) {\n // Convert promises map to promises array.\n // When each promise resolves, map it to a tuple { key: key, val: val }\n let chain = Object.keys(promises)\n .map(key => promises[key].then(val => ({key, val})));\n\n // Then wait for all promises to resolve, and convert them back to an object\n return $q.all(chain).then(values =>\n values.reduce((acc, tuple) => { acc[tuple.key] = tuple.val; return acc; }, {}));\n }\n }\n} as $QLike;","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n extend, assertPredicate, isFunction, isArray, isInjectable, $InjectorLike, IInjectable\n} from \"../common/index\";\n\n// globally available injectables\nlet globals = {};\nlet STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nlet ARGUMENT_NAMES = /([^\\s,]+)/g;\n\n/**\n * A basic angular1-like injector api\n *\n * This object implements four methods similar to the\n * [angular 1 dependency injector](https://docs.angularjs.org/api/auto/service/$injector)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This object provides a naive implementation of a globally scoped dependency injection system.\n * It supports the following DI approaches:\n *\n * ### Function parameter names\n *\n * A function's `.toString()` is called, and the parameter names are parsed.\n * This only works when the parameter names aren't \"mangled\" by a minifier such as UglifyJS.\n *\n * ```js\n * function injectedFunction(FooService, BarService) {\n * // FooService and BarService are injected\n * }\n * ```\n *\n * ### Function annotation\n *\n * A function may be annotated with an array of dependency names as the `$inject` property.\n *\n * ```js\n * injectedFunction.$inject = [ 'FooService', 'BarService' ];\n * function injectedFunction(fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }\n * ```\n *\n * ### Array notation\n *\n * An array provides the names of the dependencies to inject (as strings).\n * The function is the last element of the array.\n *\n * ```js\n * [ 'FooService', 'BarService', function (fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }]\n * ```\n *\n * @type {$InjectorLike}\n */\nexport const $injector = {\n /** Gets an object from DI based on a string token */\n get: name => globals[name],\n\n /** Returns true if an object named `name` exists in global DI */\n has: (name) => $injector.get(name) != null,\n\n /**\n * Injects a function\n *\n * @param fn the function to inject\n * @param context the function's `this` binding\n * @param locals An object with additional DI tokens and values, such as `{ someToken: { foo: 1 } }`\n */\n invoke: (fn: IInjectable, context?, locals?) => {\n let all = extend({}, globals, locals || {});\n let params = $injector.annotate(fn);\n let ensureExist = assertPredicate((key: string) => all.hasOwnProperty(key), key => `DI can't find injectable: '${key}'`);\n let args = params.filter(ensureExist).map(x => all[x]);\n if (isFunction(fn)) return fn.apply(context, args);\n else return (fn as any[]).slice(-1)[0].apply(context, args);\n },\n\n /**\n * Returns a function's dependencies\n *\n * Analyzes a function (or array) and returns an array of DI tokens that the function requires.\n * @return an array of `string`s\n */\n annotate: (fn: IInjectable): any[] => {\n if (!isInjectable(fn)) throw new Error(`Not an injectable function: ${fn}`);\n if (fn && (fn as any).$inject) return (fn as any).$inject;\n if (isArray(fn)) return fn.slice(0, -1);\n let fnStr = fn.toString().replace(STRIP_COMMENTS, '');\n let result = fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);\n return result || [];\n }\n} as $InjectorLike;","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n LocationConfig, LocationServices, identity, unnestR, isArray, splitEqual, splitHash, splitQuery\n} from \"../common\";\nimport { UIRouter } from \"../router\";\n\nexport const keyValsToObjectR = (accum, [key, val]) => {\n if (!accum.hasOwnProperty(key)) {\n accum[key] = val;\n } else if (isArray(accum[key])) {\n accum[key].push(val);\n } else {\n accum[key] = [accum[key], val]\n }\n return accum;\n};\n\nexport const getParams = (queryString: string): any =>\n queryString.split(\"&\").filter(identity).map(splitEqual).reduce(keyValsToObjectR, {});\n\nexport function parseUrl(url: string) {\n const orEmptyString = x => x || \"\";\n let [beforehash, hash] = splitHash(url).map(orEmptyString);\n let [path, search] = splitQuery(beforehash).map(orEmptyString);\n\n return { path, search, hash, url };\n}\n\nexport const buildUrl = (loc: LocationServices) => {\n let path = loc.path();\n let searchObject = loc.search();\n let hash = loc.hash();\n\n let search = Object.keys(searchObject).map(key => {\n let param = searchObject[key];\n let vals = isArray(param) ? param : [param];\n return vals.map(val => key + \"=\" + val);\n }).reduce(unnestR, []).join(\"&\");\n\n return path + (search ? \"?\" + search : \"\") + (hash ? \"#\" + hash : \"\");\n};\n\nexport function locationPluginFactory(\n name: string,\n isHtml5: boolean,\n serviceClass: { new(router?: UIRouter): LocationServices },\n configurationClass: { new(router?: UIRouter, isHtml5?: boolean): LocationConfig }\n) {\n return function(router: UIRouter) {\n let service = router.locationService = new serviceClass(router);\n let configuration = router.locationConfig = new configurationClass(router, isHtml5);\n\n function dispose(router: UIRouter) {\n router.dispose(service);\n router.dispose(configuration);\n }\n\n return { name, service, configuration, dispose };\n };\n}\n","/**\n * @internalapi\n * @module vanilla\n */ /** */\n\nimport { deregAll, isDefined, LocationServices, removeFrom, root } from '../common';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { HistoryLike, LocationLike } from './interface';\nimport { buildUrl, getParams, parseUrl } from './utils';\n\n/** A base `LocationServices` */\nexport abstract class BaseLocationServices implements LocationServices, Disposable {\n constructor(router: UIRouter, public fireAfterUpdate: boolean) {\n this._location = root.location;\n this._history = root.history;\n }\n\n _listener = evt => this._listeners.forEach(cb => cb(evt));\n\n private _listeners: Function[] = [];\n _location: LocationLike;\n _history: HistoryLike;\n\n /**\n * This should return the current internal URL representation.\n *\n * The internal URL includes only the portion that UI-Router matches.\n * It does not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n */\n abstract _get(): string;\n\n /**\n * This should set the current URL.\n *\n * The `url` param should include only the portion that UI-Router matches on.\n * It should not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n *\n * However, after this function completes, the browser URL should reflect the entire (fully qualified)\n * HREF including those data.\n */\n abstract _set(state: any, title: string, url: string, replace: boolean);\n\n hash = () => parseUrl(this._get()).hash;\n path = () => parseUrl(this._get()).path;\n search = () => getParams(parseUrl(this._get()).search);\n\n url(url?: string, replace: boolean = true): string {\n if (isDefined(url) && url !== this._get()) {\n this._set(null, null, url, replace);\n\n if (this.fireAfterUpdate) {\n this._listeners.forEach(cb => cb({ url }));\n }\n }\n\n return buildUrl(this);\n }\n\n onChange(cb: EventListener) {\n this._listeners.push(cb);\n return () => removeFrom(this._listeners, cb);\n }\n\n dispose(router: UIRouter) {\n deregAll(this._listeners);\n }\n}\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { root, trimHashVal } from '../common';\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\n\n/** A `LocationServices` that uses the browser hash \"#\" to get/set the current location */\nexport class HashLocationService extends BaseLocationServices {\n constructor(router: UIRouter) {\n super(router, false);\n root.addEventListener('hashchange', this._listener, false);\n }\n\n _get() {\n return trimHashVal(this._location.hash);\n }\n _set(state: any, title: string, url: string, replace: boolean) {\n this._location.hash = url;\n }\n\n dispose (router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('hashchange', this._listener);\n }\n}\n\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BaseLocationServices } from './baseLocationService';\nimport { UIRouter } from '../router';\n\n/** A `LocationServices` that gets/sets the current location from an in-memory object */\nexport class MemoryLocationService extends BaseLocationServices {\n _url: string;\n\n constructor(router: UIRouter) {\n super(router, true);\n }\n\n _get() {\n return this._url;\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n this._url = url;\n }\n}\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\nimport { LocationConfig, root, splitHash, splitQuery, stripFile } from '../common';\n\n/**\n * A `LocationServices` that gets/sets the current location using the browser's `location` and `history` apis\n *\n * Uses `history.pushState` and `history.replaceState`\n */\nexport class PushStateLocationService extends BaseLocationServices {\n _config: LocationConfig;\n\n constructor(router: UIRouter) {\n super(router, true);\n this._config = router.urlService.config;\n root.addEventListener('popstate', this._listener, false);\n };\n\n /**\n * Gets the base prefix without:\n * - trailing slash\n * - trailing filename\n * - protocol and hostname\n *\n * If , this returns '/base'.\n * If , this returns '/base'.\n *\n * See: https://html.spec.whatwg.org/dev/semantics.html#the-base-element\n */\n _getBasePrefix() {\n return stripFile(this._config.baseHref());\n }\n\n _get() {\n let { pathname, hash, search } = this._location;\n search = splitQuery(search)[1]; // strip ? if found\n hash = splitHash(hash)[1]; // strip # if found\n\n const basePrefix = this._getBasePrefix();\n let exactMatch = pathname === this._config.baseHref();\n let startsWith = pathname.startsWith(basePrefix);\n pathname = exactMatch ? '/' : startsWith ? pathname.substring(basePrefix.length) : pathname;\n\n return pathname + (search ? '?' + search : '') + (hash ? '#' + hash : '');\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n let fullUrl = this._getBasePrefix() + url;\n\n if (replace) {\n this._history.replaceState(state, title, fullUrl);\n } else {\n this._history.pushState(state, title, fullUrl);\n }\n }\n\n dispose(router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('popstate', this._listener);\n }\n}\n\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { LocationConfig } from \"../common/coreservices\";\nimport { isDefined } from \"../common/predicates\";\nimport { noop } from \"../common/common\";\n\n/** A `LocationConfig` mock that gets/sets all config from an in-memory object */\nexport class MemoryLocationConfig implements LocationConfig {\n _baseHref = '';\n _port = 80;\n _protocol = \"http\";\n _host = \"localhost\";\n _hashPrefix = \"\";\n\n port = () => this._port;\n protocol = () => this._protocol;\n host = () => this._host;\n baseHref = () => this._baseHref;\n html5Mode = () => false;\n hashPrefix = (newval?) => isDefined(newval) ? this._hashPrefix = newval : this._hashPrefix;\n dispose = noop;\n}","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isDefined } from \"../common/predicates\";\nimport { LocationConfig } from \"../common/coreservices\";\n\n/** A `LocationConfig` that delegates to the browser's `location` object */\nexport class BrowserLocationConfig implements LocationConfig {\n private _baseHref = undefined;\n private _hashPrefix = \"\";\n\n constructor(router?, private _isHtml5 = false) { }\n\n port(): number {\n if (location.port) {\n return Number(location.port);\n }\n\n return this.protocol() === 'https' ? 443 : 80;\n }\n\n protocol(): string {\n return location.protocol.replace(/:/g, '');\n }\n\n host(): string {\n return location.hostname;\n }\n\n html5Mode(): boolean {\n return this._isHtml5;\n }\n\n hashPrefix(): string;\n hashPrefix(newprefix?: string): string {\n return isDefined(newprefix) ? this._hashPrefix = newprefix : this._hashPrefix;\n };\n\n baseHref(href?: string): string {\n return isDefined(href) ? this._baseHref = href :\n isDefined(this._baseHref) ? this._baseHref : this.applyDocumentBaseHref();\n }\n\n applyDocumentBaseHref() {\n let baseTag: HTMLBaseElement = document.getElementsByTagName(\"base\")[0];\n return this._baseHref = baseTag ? baseTag.href.substr(location.origin.length) : \"\";\n }\n\n dispose() {}\n}\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BrowserLocationConfig } from \"./browserLocationConfig\";\nimport { HashLocationService } from \"./hashLocationService\";\nimport { locationPluginFactory } from \"./utils\";\nimport { LocationPlugin, ServicesPlugin } from \"./interface\";\nimport { UIRouter } from \"../router\";\nimport { PushStateLocationService } from \"./pushStateLocationService\";\nimport { MemoryLocationService } from \"./memoryLocationService\";\nimport { MemoryLocationConfig } from \"./memoryLocationConfig\";\nimport { $injector } from \"./injector\";\nimport { $q } from \"./q\";\nimport { services } from \"../common/coreservices\";\n\nexport function servicesPlugin(router: UIRouter): ServicesPlugin {\n services.$injector = $injector;\n services.$q = $q;\n\n return { name: \"vanilla.services\", $q, $injector, dispose: () => null };\n}\n\n/** A `UIRouterPlugin` uses the browser hash to get/set the current location */\nexport const hashLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory('vanilla.hashBangLocation', false, HashLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location using the browser's `location` and `history` apis */\nexport const pushStateLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.pushStateLocation\", true, PushStateLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location from an in-memory object */\nexport const memoryLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.memoryLocation\", false, MemoryLocationService, MemoryLocationConfig);\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nexport * from \"./vanilla/index\";\n","/**\n * # Core classes and interfaces\n *\n * The classes and interfaces that are core to ui-router and do not belong\n * to a more specific subsystem (such as resolve).\n *\n * @coreapi\n * @preferred\n * @module core\n */ /** for typedoc */\n\n// Need to import or export at least one concrete something\nimport {noop} from \"./common/common\";\nimport {UIRouter} from \"./router\";\n\n/**\n * An interface for getting values from dependency injection.\n *\n * This is primarily used to get resolve values for a given token.\n * An instance of the `UIInjector` can be retrieved from the current transition using [[Transition.injector]].\n *\n * ---\n *\n * If no resolve is found for a token, then it will delegate to the native injector.\n * The native injector may be Angular 1 `$injector`, Angular 2 `Injector`, or a simple polyfill.\n *\n * In Angular 2, the native injector might be the root Injector,\n * or it might be a lazy loaded `NgModule` injector scoped to a lazy load state tree.\n */\nexport interface UIInjector {\n /**\n * Gets a value from the injector.\n *\n * For a given token, returns the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this throws an error.\n *\n * #### Example:\n * ```js\n * var myResolve = injector.get('myResolve');\n * ```\n *\n * #### ng1 Example:\n * ```js\n * // Fetch StateService\n * injector.get('$state').go('home');\n * ```\n *\n * #### ng2 Example:\n * ```js\n * import {StateService} from \"ui-router-ng2\";\n * // Fetch StateService\n * injector.get(StateService).go('home');\n * ```\n *\n * #### Typescript Example:\n * ```js\n * var stringArray = injector.get('myStringArray');\n * ```\n *\n * ### `NOWAIT` policy\n *\n * When using [[ResolvePolicy.async]] === `NOWAIT`, the value returned from `get()` is a promise for the result.\n * The promise is not automatically unwrapped.\n *\n * @param token the key for the value to get. May be a string, a class, or any arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n get(token: any): any;\n /** Gets a value as type `T` (generics parameter) */\n get(token: any): T;\n\n /**\n * Asynchronously gets a value from the injector\n *\n * For a given token, returns a promise for the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this triggers the resolve to load.\n *\n * #### Example:\n * ```js\n * return injector.getAsync('myResolve').then(value => {\n * if (value === 'declined') return false;\n * });\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return a Promise for the Dependency Injection value that matches the token\n */\n getAsync(token: any): Promise;\n /** Asynchronously gets a value as type `T` (generics parameter) */\n getAsync(token: any): Promise;\n\n /**\n * Gets a value from the native injector\n *\n * Returns a value from the native injector, bypassing anything in the [[ResolveContext]].\n *\n * Example:\n * ```js\n * let someThing = injector.getNative(SomeToken);\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n getNative(token: any): any;\n getNative(token: any): T;\n}\n\n/** @internalapi */\nexport interface UIRouterPlugin extends Disposable {\n name: string;\n}\n\n/** @internalapi */\nexport abstract class UIRouterPluginBase implements UIRouterPlugin, Disposable {\n abstract name: string;\n dispose(router: UIRouter) { }\n}\n\n/** @internalapi */\nexport interface Disposable {\n /** Instructs the Disposable to clean up any resources */\n dispose(router?: UIRouter);\n}","/**\n * @coreapi\n * @module common\n */ /** */\n\nexport * from \"./common/index\";\nexport * from \"./params/index\";\nexport * from \"./path/index\";\nexport * from \"./resolve/index\";\nexport * from \"./state/index\";\nexport * from \"./transition/index\";\nexport * from \"./url/index\";\nexport * from \"./view/index\";\nexport * from \"./globals\";\n\nexport * from \"./router\";\nexport * from \"./vanilla\";\nexport * from \"./interface\";\n","/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n","/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n","/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n * \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n","/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n","/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n","/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n","/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n","/**\n * # Angular 1 injectable services\n *\n * This is a list of the objects which can be injected using angular's injector.\n *\n * There are three different kind of injectable objects:\n *\n * ## **Provider** objects\n * #### injectable into a `.config()` block during configtime\n *\n * - [[$uiRouterProvider]]: The UI-Router instance\n * - [[$stateProvider]]: State registration\n * - [[$transitionsProvider]]: Transition hooks\n * - [[$urlServiceProvider]]: All URL related public APIs\n *\n * - [[$uiViewScrollProvider]]: Disable ui-router view scrolling\n * - [[$urlRouterProvider]]: (deprecated) Url matching rules\n * - [[$urlMatcherFactoryProvider]]: (deprecated) Url parsing config\n *\n * ## **Service** objects\n * #### injectable globally during runtime\n *\n * - [[$uiRouter]]: The UI-Router instance\n * - [[$trace]]: Enable transition trace/debug\n * - [[$transitions]]: Transition hooks\n * - [[$state]]: Imperative state related APIs\n * - [[$stateRegistry]]: State registration\n * - [[$urlService]]: All URL related public APIs\n * - [[$uiRouterGlobals]]: Global variables\n * - [[$uiViewScroll]]: Scroll an element into view\n *\n * - [[$stateParams]]: (deprecated) Global state param values\n * - [[$urlRouter]]: (deprecated) URL synchronization\n * - [[$urlMatcherFactory]]: (deprecated) URL parsing config\n *\n * ## **Per-Transition** objects\n *\n * - These kind of objects are injectable into:\n * - Resolves ([[Ng1StateDeclaration.resolve]]),\n * - Transition Hooks ([[TransitionService.onStart]], etc),\n * - Routed Controllers ([[Ng1ViewDeclaration.controller]])\n *\n * #### Different instances are injected based on the [[Transition]]\n *\n * - [[$transition$]]: The current Transition object\n * - [[$stateParams]]: State param values for pending Transition (deprecated)\n * - Any resolve data defined using [[Ng1StateDeclaration.resolve]]\n *\n * @ng1api\n * @preferred\n * @module injectables\n */ /** */\n\nimport { StateProvider } from \"./stateProvider\";\nimport {\n StateService, TransitionService, Transition, UrlRouter, UrlMatcherFactory,\n StateParams, StateRegistry, UIRouterGlobals, UIRouter, Trace, UrlService\n} from \"@uirouter/core\";\nimport { UIViewScrollProvider } from \"./viewScroll\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\n\n/**\n * The current (or pending) State Parameters\n *\n * An injectable global **Service Object** which holds the state parameters for the latest **SUCCESSFUL** transition.\n *\n * The values are not updated until *after* a `Transition` successfully completes.\n *\n * **Also:** an injectable **Per-Transition Object** object which holds the pending state parameters for the pending `Transition` currently running.\n *\n * ### Deprecation warning:\n *\n * The value injected for `$stateParams` is different depending on where it is injected.\n *\n * - When injected into an angular service, the object injected is the global **Service Object** with the parameter values for the latest successful `Transition`.\n * - When injected into transition hooks, resolves, or view controllers, the object is the **Per-Transition Object** with the parameter values for the running `Transition`.\n *\n * Because of these confusing details, this service is deprecated.\n *\n * ### Instead of using the global `$stateParams` service object,\n * inject [[$uiRouterGlobals]] and use [[UIRouterGlobals.params]]\n *\n * ```js\n * MyService.$inject = ['$uiRouterGlobals'];\n * function MyService($uiRouterGlobals) {\n * return {\n * paramValues: function () {\n * return $uiRouterGlobals.params;\n * }\n * }\n * }\n * ```\n *\n * ### Instead of using the per-transition `$stateParams` object,\n * inject the current `Transition` (as [[$transition$]]) and use [[Transition.params]]\n *\n * ```js\n * MyController.$inject = ['$transition$'];\n * function MyController($transition$) {\n * var username = $transition$.params().username;\n * // .. do something with username\n * }\n * ```\n *\n * ---\n *\n * This object can be injected into other services.\n *\n * #### Deprecated Example:\n * ```js\n * SomeService.$inject = ['$http', '$stateParams'];\n * function SomeService($http, $stateParams) {\n * return {\n * getUser: function() {\n * return $http.get('/api/users/' + $stateParams.username);\n * }\n * }\n * };\n * angular.service('SomeService', SomeService);\n * ```\n * @deprecated\n */\nvar $stateParams: StateParams;\n\n/**\n * Global UI-Router variables\n *\n * The router global state as a **Service Object** (injectable during runtime).\n *\n * This object contains globals such as the current state and current parameter values.\n */\nvar $uiRouterGlobals: UIRouterGlobals;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Service Object** (injectable during runtime).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouterProvider]] for injection during angular config time.\n */\nlet $uiRouter: UIRouter ;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Provider Object** (injectable during config phase).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouter]] for injection during runtime.\n */\nvar $uiRouterProvider: UIRouter;\n\n/**\n * Transition debug/tracing\n *\n * The [[Trace]] singleton as a **Service Object** (injectable during runtime).\n *\n * Enables or disables Transition tracing which can help to debug issues.\n */\nvar $trace: Trace;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitionsProvider]] for injection during the config phase.\n */\nvar $transitions: TransitionService;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Provider Object** (injectable during config phase)\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitions]] for injection during runtime.\n */\nvar $transitionsProvider: TransitionService;\n\n/**\n * The current [[Transition]] object\n *\n * The current [[Transition]] object as a **Per-Transition Object** (injectable into Resolve, Hooks, Controllers)\n *\n * This object returns information about the current transition, including:\n *\n * - To/from states\n * - To/from parameters\n * - Transition options\n * - States being entered, exited, and retained\n * - Resolve data\n * - A Promise for the transition\n * - Any transition failure information\n * - An injector for both Service and Per-Transition Objects\n */\nvar $transition$: Transition;\n\n/**\n * The State Service\n *\n * The [[StateService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service used to manage and query information on registered states.\n * It exposes state related APIs including:\n *\n * - Start a [[Transition]]\n * - Imperatively lazy load states\n * - Check if a state is currently active\n * - Look up states by name\n * - Build URLs for a state+parameters\n * - Configure the global Transition error handler\n *\n * This angular service exposes the [[StateService]] singleton.\n */\nvar $state: StateService;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistryProvider]] for injection during the config phase.\n */\nvar $stateRegistry: StateRegistry;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistry]] for injection during runtime.\n */\nvar $stateRegistryProvider: StateRegistry;\n\n/**\n * The View Scroll provider\n *\n * The [[UIViewScrollProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[UIViewScrollProvider]] singleton and is\n * used to disable UI-Router's scroll behavior.\n */\nvar $uiViewScrollProvider: UIViewScrollProvider;\n\n/**\n * The View Scroll function\n *\n * The View Scroll function as a **Service Object** (injectable during runtime).\n *\n * This is a function that scrolls an element into view.\n * The element is scrolled after a `$timeout` so the DOM has time to refresh.\n *\n * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor,\n * this can be enabled by calling [[UIViewScrollProvider.useAnchorScroll]].\n *\n * Note: this function is used by the [[directives.uiView]] when the `autoscroll` expression evaluates to true.\n */\nvar $uiViewScroll: ($element: JQuery) => void;\n\n/**\n * The StateProvider\n *\n * An angular1-only [[StateProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[StateProvider]] singleton.\n *\n * The `StateProvider` is primarily used to register states or add custom state decorators.\n *\n * ##### Note: This provider is a ng1 vestige.\n * It is a passthrough to [[$stateRegistry]] and [[$state]].\n */\nvar $stateProvider: StateProvider;\n\n/**\n * The URL Service Provider\n *\n * The [[UrlService]] singleton as a **Provider Object** (injectable during the angular config phase).\n *\n * A service used to configure and interact with the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during runtime as [[$urlService]].\n */\nvar $urlServiceProvider: UrlService;\n\n/**\n * The URL Service\n *\n * The [[UrlService]] singleton as a **Service Object** (injectable during runtime).\n *\n * Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n *\n * Used to configure the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n */\nvar $urlService: UrlService;\n\n/**\n * The URL Router Provider\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlServiceProvider]] instead.\n *\n * The [[UrlRouter]] singleton as a **Provider Object** (injectable during config time).\n *\n * #### Note: This object is also exposed as [[$urlRouter]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlRouterProvider: UrlRouterProvider;\n\n/**\n * The Url Router\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlRouter]] singleton as a **Service Object** (injectable during runtime).\n *\n * #### Note: This object is also exposed as [[$urlRouterProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlRouter: UrlRouter;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactoryProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlMatcherFactory: UrlMatcherFactory;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactory]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlMatcherFactoryProvider: UrlMatcherFactory;\n\n\n\n","/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n","/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n","/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n","/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n","/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n"],"names":["ng_from_import.module","val","this","angular","RejectType","Category","TransitionHookPhase","TransitionHookScope","noop","DefType","inherit","values","root","all","prop","pattern","pairs","parseUrl","__extends","id"],"mappings":"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"} \ No newline at end of file +{ + "version": 3, + "file": "angular-ui-router.js", + "sources": [ + "@uirouter/angularjs/src/angular.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/hof.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/glob.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateObject.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/predicates.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/coreservices.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/common.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/queue.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/rejectFactory.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/trace.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/interface.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/targetState.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionHook.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookRegistry.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookBuilder.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/paramType.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/param.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/path/@uirouter/core/path/pathNode.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/path/@uirouter/core/path/pathFactory.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolvable.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/interface.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolveContext.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transition.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/strings.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/index.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/paramTypes.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/stateParams.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/path/@uirouter/core/path/index.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/index.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateBuilder.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateMatcher.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateQueueManager.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateRegistry.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcher.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcherFactory.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlRule.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlRouter.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/view/@uirouter/core/view/view.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/globals.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/router.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/coreResolvables.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/redirectTo.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/onEnterExitRetain.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/resolve.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/views.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/updateGlobals.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/url.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/lazyLoad.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionEventType.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/ignoredTransition.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/invalidTransition.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/index.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/q.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/injector.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/utils.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/baseLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/hashLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/pushStateLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationConfig.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/browserLocationConfig.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/plugins.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/vanilla.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/interface.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/index.ts", + "@uirouter/angularjs/src/statebuilders/views.ts", + "@uirouter/angularjs/src/templateFactory.ts", + "@uirouter/angularjs/src/stateProvider.ts", + "@uirouter/angularjs/src/statebuilders/onEnterExitRetain.ts", + "@uirouter/angularjs/src/locationServices.ts", + "@uirouter/angularjs/src/urlRouterProvider.ts", + "@uirouter/angularjs/src/services.ts", + "@uirouter/angularjs/src/injectables.ts", + "@uirouter/angularjs/src/directives/stateDirectives.ts", + "@uirouter/angularjs/src/stateFilters.ts", + "@uirouter/angularjs/src/directives/viewDirective.ts", + "@uirouter/angularjs/src/viewScroll.ts", + "@uirouter/angularjs/src/index.ts" + ], + "sourcesContent": [ + "/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n", + "/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @module common_hof\n */ /** */\n\nimport {Predicate} from \"./common\";\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * Stolen from: http://stackoverflow.com/questions/4394747/javascript-curry-function\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n let initial_args = [].slice.apply(arguments, [1]);\n let func_args_length = fn.length;\n\n function curried(args: any[]) {\n if (args.length >= func_args_length)\n return fn.apply(null, args);\n return function () {\n return curried(args.concat([].slice.apply(arguments)));\n };\n }\n return curried(initial_args);\n}\n\n\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n let args = arguments;\n let start = args.length - 1;\n return function() {\n let i = start, result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) =>\n (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, val: any, obj: any) => obj && obj[name] === val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) =>\n pipe.apply(null, name.split(\".\").map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate = (fn: Predicate) =>\n (...args: any[]) => !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\nexport const any = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is = (ctor: { new(...args): T }) =>\n (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor || obj instanceof ctor);\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (val: any) => (other: any) =>\n val === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val = (v: T) => () => v;\n\n\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) =>\n obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function(x: any) {\n for (var i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n\n", + "/**\n * @coreapi\n * @module core\n */\n/** \n * Matches state names using glob-like pattern strings.\n *\n * Globs can be used in specific APIs including:\n *\n * - [[StateService.is]]\n * - [[StateService.includes]]\n * - The first argument to Hook Registration functions like [[TransitionService.onStart]]\n * - [[HookMatchCriteria]] and [[HookMatchCriterion]]\n *\n * A `Glob` string is a pattern which matches state names.\n * Nested state names are split into segments (separated by a dot) when processing.\n * The state named `foo.bar.baz` is split into three segments ['foo', 'bar', 'baz']\n *\n * Globs work according to the following rules:\n *\n * ### Exact match:\n *\n * The glob `'A.B'` matches the state named exactly `'A.B'`.\n *\n * | Glob |Matches states named|Does not match state named|\n * |:------------|:--------------------|:---------------------|\n * | `'A'` | `'A'` | `'B'` , `'A.C'` |\n * | `'A.B'` | `'A.B'` | `'A'` , `'A.B.C'` |\n * | `'foo'` | `'foo'` | `'FOO'` , `'foo.bar'`|\n *\n * ### Single star (`*`)\n *\n * A single star (`*`) is a wildcard that matches exactly one segment.\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:---------------------|:--------------------------|\n * | `'*'` | `'A'` , `'Z'` | `'A.B'` , `'Z.Y.X'` |\n * | `'A.*'` | `'A.B'` , `'A.C'` | `'A'` , `'A.B.C'` |\n * | `'A.*.*'` | `'A.B.C'` , `'A.X.Y'`| `'A'`, `'A.B'` , `'Z.Y.X'`|\n *\n * ### Double star (`**`)\n *\n * A double star (`'**'`) is a wildcard that matches *zero or more segments*\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:----------------------------------------------|:----------------------------------|\n * | `'**'` | `'A'` , `'A.B'`, `'Z.Y.X'` | (matches all states) |\n * | `'A.**'` | `'A'` , `'A.B'` , `'A.C.X'` | `'Z.Y.X'` |\n * | `'**.X'` | `'X'` , `'A.X'` , `'Z.Y.X'` | `'A'` , `'A.login.Z'` |\n * | `'A.**.X'` | `'A.X'` , `'A.B.X'` , `'A.B.C.X'` | `'A'` , `'A.B.C'` |\n *\n */\nexport class Glob {\n text: string;\n glob: Array;\n regexp: RegExp;\n\n constructor(text: string) {\n this.text = text;\n this.glob = text.split('.');\n\n let regexpString = this.text.split('.')\n .map(seg => {\n if (seg === '**') return '(?:|(?:\\\\.[^.]*)*)';\n if (seg === '*') return '\\\\.[^.]*';\n return '\\\\.' + seg;\n }).join('');\n\n this.regexp = new RegExp(\"^\" + regexpString + \"$\");\n }\n\n matches(name: string) {\n return this.regexp.test('.' + name);\n }\n\n /** Returns true if the string has glob-like characters in it */\n static is(text: string) {\n return !!/[!,*]+/.exec(text);\n }\n\n /** Returns a glob from the string, or null if the string isn't Glob-like */\n static fromString(text: string) {\n return Glob.is(text) ? new Glob(text) : null;\n }\n}\n", + "/**\n * @coreapi\n * @module state\n */\n/** for typedoc */\nimport { StateDeclaration, _ViewDeclaration, _StateDeclaration, LazyLoadResult } from \"./interface\";\nimport { defaults, values, find, inherit } from \"../common/common\";\nimport { propEq } from \"../common/hof\";\nimport { Param } from \"../params/param\";\nimport { UrlMatcher } from \"../url/urlMatcher\";\nimport { Resolvable } from \"../resolve/resolvable\";\nimport { TransitionStateHookFn } from \"../transition/interface\";\nimport { TargetState } from \"./targetState\";\nimport { Transition } from \"../transition/transition\";\nimport { Glob } from \"../common/glob\";\nimport { isObject, isFunction } from \"../common/predicates\";\n\n/**\n * Internal representation of a UI-Router state.\n *\n * Instances of this class are created when a [[StateDeclaration]] is registered with the [[StateRegistry]].\n *\n * A registered [[StateDeclaration]] is augmented with a getter ([[StateDeclaration.$$state]]) which returns the corresponding [[StateObject]] object.\n *\n * This class prototypally inherits from the corresponding [[StateDeclaration]].\n * Each of its own properties (i.e., `hasOwnProperty`) are built using builders from the [[StateBuilder]].\n */\nexport class StateObject {\n /** The parent [[StateObject]] */\n public parent: StateObject;\n\n /** The name used to register the state */\n public name: string;\n\n /** Prototypally inherits from [[StateDeclaration.abstract]] */\n public abstract: boolean;\n\n /** Prototypally inherits from [[StateDeclaration.resolve]] */\n public resolve: ({ [key: string]: (string|any[]|Function) }|any[]);\n\n /** A list of [[Resolvable]] objects. The internal representation of [[resolve]]. */\n public resolvables: Resolvable[];\n\n /** Prototypally inherits from [[StateDeclaration.resolvePolicy]] */\n public resolvePolicy: any;\n\n /** A compiled URLMatcher which detects when the state's URL is matched */\n public url: UrlMatcher;\n\n /** The parameters for the state, built from the URL and [[StateDeclaration.params]] */\n public params: { [key: string]: Param };\n\n /**\n * The views for the state.\n * Note: `@uirouter/core` does not register a builder for views.\n * The framework specific code should register a `views` builder.\n */\n public views: { [key: string]: _ViewDeclaration; };\n\n /**\n * The original [[StateDeclaration]] used to build this [[StateObject]].\n * Note: `this` object also prototypally inherits from the `self` declaration object.\n */\n public self: StateDeclaration;\n\n /** The nearest parent [[StateObject]] which has a URL */\n public navigable: StateObject;\n\n /** The parent [[StateObject]] objects from this state up to the root */\n public path: StateObject[];\n\n /**\n * Prototypally inherits from [[StateDeclaration.data]]\n * Note: This is the only field on the [[StateDeclaration]] which is mutated.\n * The definition object's `data` field is replaced with a new object\n * which prototypally inherits from the parent state definition's `data` field.\n */\n public data: any;\n\n /** \n * An object containing the parent States' names as keys and \n * true as their values.\n */\n public includes: { [name: string]: boolean };\n\n /** Prototypally inherits from [[StateDeclaration.onExit]] */\n public onExit: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onRetain]] */\n public onRetain: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onEnter]] */\n public onEnter: TransitionStateHookFn;\n\n /** Prototypally inherits from [[StateDeclaration.lazyLoad]] */\n public lazyLoad: (transition: Transition, state: StateDeclaration) => Promise;\n\n /** Prototypally inherits from [[StateDeclaration.redirectTo]] */\n redirectTo: (\n string |\n (($transition$: Transition) => TargetState) |\n { state: (string|StateDeclaration), params: { [key: string]: any }}\n );\n\n /** @hidden */\n __stateObjectCache: {\n /** Might be null */\n nameGlob?: Glob\n };\n\n\n /** @deprecated use State.create() */\n constructor(config?: StateDeclaration) {\n return StateObject.create(config || {});\n }\n\n /**\n * Create a state object to put the private/internal implementation details onto.\n * The object's prototype chain looks like:\n * (Internal State Object) -> (Copy of State.prototype) -> (State Declaration object) -> (State Declaration's prototype...)\n *\n * @param stateDecl the user-supplied State Declaration\n * @returns {StateObject} an internal State object\n */\n static create(stateDecl: _StateDeclaration): StateObject {\n stateDecl = StateObject.isStateClass(stateDecl) ? new stateDecl() : stateDecl;\n\n let state = inherit(inherit(stateDecl, StateObject.prototype)) as StateObject;\n stateDecl.$$state = () => state;\n state.self = stateDecl;\n state.__stateObjectCache = {\n nameGlob: Glob.fromString(state.name) // might return null\n };\n return state;\n }\n\n /** Predicate which returns true if the object is an class with @State() decorator */\n static isStateClass = (stateDecl: _StateDeclaration): stateDecl is ({ new (): StateDeclaration }) =>\n isFunction(stateDecl) && stateDecl['__uiRouterState'] === true;\n\n /** Predicate which returns true if the object is an internal [[StateObject]] object */\n static isState = (obj: any): obj is StateObject =>\n isObject(obj['__stateObjectCache']);\n\n /**\n * Returns true if the provided parameter is the same state.\n *\n * Compares the identity of the state against the passed value, which is either an object\n * reference to the actual `State` instance, the original definition object passed to\n * `$stateProvider.state()`, or the fully-qualified name.\n *\n * @param ref Can be one of (a) a `State` instance, (b) an object that was passed\n * into `$stateProvider.state()`, (c) the fully-qualified name of a state as a string.\n * @returns Returns `true` if `ref` matches the current `State` instance.\n */\n is(ref: StateObject|StateDeclaration|string): boolean {\n return this === ref || this.self === ref || this.fqn() === ref;\n }\n\n /**\n * @deprecated this does not properly handle dot notation\n * @returns Returns a dot-separated name of the state.\n */\n fqn(): string {\n if (!this.parent || !(this.parent instanceof this.constructor)) return this.name;\n let name = this.parent.fqn();\n return name ? name + \".\" + this.name : this.name;\n }\n\n /**\n * Returns the root node of this state's tree.\n *\n * @returns The root of this state's tree.\n */\n root(): StateObject {\n return this.parent && this.parent.root() || this;\n }\n\n /**\n * Gets the state's `Param` objects\n *\n * Gets the list of [[Param]] objects owned by the state.\n * If `opts.inherit` is true, it also includes the ancestor states' [[Param]] objects.\n * If `opts.matchingKeys` exists, returns only `Param`s whose `id` is a key on the `matchingKeys` object\n *\n * @param opts options\n */\n parameters(opts?: { inherit?: boolean, matchingKeys?: any }): Param[] {\n opts = defaults(opts, { inherit: true, matchingKeys: null });\n let inherited = opts.inherit && this.parent && this.parent.parameters() || [];\n return inherited.concat(values(this.params))\n .filter(param => !opts.matchingKeys || opts.matchingKeys.hasOwnProperty(param.id));\n }\n\n /**\n * Returns a single [[Param]] that is owned by the state\n *\n * If `opts.inherit` is true, it also searches the ancestor states` [[Param]]s.\n * @param id the name of the [[Param]] to return\n * @param opts options\n */\n parameter(id: string, opts: { inherit?: boolean } = {}): Param {\n return (\n this.url && this.url.parameter(id, opts) ||\n find(values(this.params), propEq('id', id)) ||\n opts.inherit && this.parent && this.parent.parameter(id)\n );\n }\n\n toString() {\n return this.fqn();\n }\n}\n", + "/** Predicates\n *\n * These predicates return true/false based on the input.\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_predicates\n */\n/** */\nimport { and, not, pipe, prop, or } from \"./hof\";\nimport { Predicate } from \"./common\"; // has or is using\nimport { StateObject } from \"../state/stateObject\";\n\nconst toStr = Object.prototype.toString;\nconst tis = (t: string) => (x: any) => typeof(x) === t;\nexport const isUndefined = tis('undefined');\nexport const isDefined = not(isUndefined);\nexport const isNull = (o: any) => o === null;\nexport const isNullOrUndefined = or(isNull, isUndefined);\nexport const isFunction: (x: any) => x is Function = tis('function');\nexport const isNumber: (x: any) => x is number = tis('number');\nexport const isString = <(x: any) => x is string> tis('string');\nexport const isObject = (x: any) => x !== null && typeof x === 'object';\nexport const isArray = Array.isArray;\nexport const isDate: (x: any) => x is Date = ((x: any) => toStr.call(x) === '[object Date]');\nexport const isRegExp: (x: any) => x is RegExp = ((x: any) => toStr.call(x) === '[object RegExp]');\nexport const isState: (x: any) => x is StateObject = StateObject.isState;\n\n/**\n * Predicate which checks if a value is injectable\n *\n * A value is \"injectable\" if it is a function, or if it is an ng1 array-notation-style array\n * where all the elements in the array are Strings, except the last one, which is a Function\n */\nexport function isInjectable(val: any) {\n if (isArray(val) && val.length) {\n let head = val.slice(0, -1), tail = val.slice(-1);\n return !(head.filter(not(isString)).length || tail.filter(not(isFunction)).length);\n }\n return isFunction(val);\n}\n\n/**\n * Predicate which checks if a value looks like a Promise\n *\n * It is probably a Promise if it's an object, and it has a `then` property which is a Function\n */\nexport const isPromise = <(x: any) => x is Promise> and(isObject, pipe(prop('then'), isFunction));\n\n", + "/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @module common\n */\n/** for typedoc */\nimport {IInjectable, Obj} from \"./common\";\nimport { Disposable } from \"../interface\";\nimport { UrlParts } from \"../url/interface\";\n\nexport let notImplemented = (fnname: string) => () => {\n throw new Error(`${fnname}(): No coreservices implementation for UI-Router is loaded.`);\n};\n\nlet services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n strictDi?: boolean;\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\nexport interface LocationServices extends Disposable {\n /**\n * Gets the current url string\n *\n * The URL is normalized using the internal [[path]]/[[search]]/[[hash]] values.\n *\n * For example, the URL may be stored in the hash ([[HashLocationServices]]) or\n * have a base HREF prepended ([[PushStateLocationServices]]).\n *\n * The raw URL in the browser might be:\n *\n * ```\n * http://mysite.com/somepath/index.html#/internal/path/123?param1=foo#anchor\n * ```\n *\n * or\n *\n * ```\n * http://mysite.com/basepath/internal/path/123?param1=foo#anchor\n * ```\n *\n * then this method returns:\n *\n * ```\n * /internal/path/123?param1=foo#anchor\n * ```\n *\n *\n * #### Example:\n * ```js\n * locationServices.url(); // \"/some/path?query=value#anchor\"\n * ```\n *\n * @returns the current value of the url, as a string.\n */\n url(): string;\n\n /**\n * Updates the url, or gets the current url\n *\n * Updates the url, changing it to the value in `newurl`\n *\n * #### Example:\n * ```js\n * locationServices.url(\"/some/path?query=value#anchor\", true);\n * ```\n *\n * @param newurl The new value for the URL.\n * This url should reflect only the new internal [[path]], [[search]], and [[hash]] values.\n * It should not include the protocol, site, port, or base path of an absolute HREF.\n * @param replace When true, replaces the current history entry (instead of appending it) with this new url\n * @param state The history's state object, i.e., pushState (if the LocationServices implementation supports it)\n * @return the url (after potentially being processed)\n */\n url(newurl: string, replace?: boolean, state?: any): string;\n\n /**\n * Gets the path part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `/some/path`\n *\n * @return the path portion of the url\n */\n path(): string;\n\n /**\n * Gets the search part of the current url as an object\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `{ query: 'value' }`\n *\n * @return the search (querystring) portion of the url, as an object\n */\n search(): { [key: string]: any };\n\n /**\n * Gets the hash part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `anchor`\n *\n * @return the hash (anchor) portion of the url\n */\n hash(): string;\n\n /**\n * Registers a url change handler\n *\n * #### Example:\n * ```js\n * let deregisterFn = locationServices.onChange((evt) => console.log(\"url change\", evt));\n * ```\n *\n * @param callback a function that will be called when the url is changing\n * @return a function that de-registers the callback\n */\n onChange(callback: Function): Function;\n}\n\n/**\n * This service returns the location configuration\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n */\nexport interface LocationConfig extends Disposable {\n /**\n * Gets the port, e.g., `80`\n *\n * @return the port number\n */\n port(): number;\n /**\n * Gets the protocol, e.g., `http`\n *\n * @return the protocol\n */\n protocol(): string;\n /**\n * Gets the host, e.g., `localhost`\n *\n * @return the protocol\n */\n host(): string;\n /**\n * Gets the base Href, e.g., `http://localhost/approot/`\n *\n * @return the application's base href\n */\n baseHref(): string;\n /**\n * Returns true when running in pushstate mode\n *\n * @return true when running in pushstate mode\n */\n html5Mode(): boolean;\n /**\n * Gets the hashPrefix (when not running in pushstate mode)\n *\n * If the current url is `http://localhost/app#!/uirouter/path/#anchor`, it returns `!` which is the prefix for the \"hashbang\" portion.\n *\n * @return the hash prefix\n */\n hashPrefix(): string;\n /**\n * Sets the hashPrefix (when not running in pushstate mode)\n *\n * @return the new hash prefix\n */\n hashPrefix(newprefix: string): string;\n}\n\nexport {services};\n", + "/**\n * Random utility functions used in the UI-Router code\n *\n * These functions are exported, but are subject to change without notice.\n *\n * @preferred\n * @module common\n */\n/** for typedoc */\nimport { isFunction, isString, isArray, isRegExp, isDate } from \"./predicates\";\nimport { all, any, prop, curry, not } from \"./hof\";\nimport { services } from \"./coreservices\";\nimport { StateObject } from \"../state/stateObject\";\n\ndeclare const global;\nexport const root: any = (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) || this;\nconst angular = root.angular || {};\n\nexport const fromJson = angular.fromJson || JSON.parse.bind(JSON);\nexport const toJson = angular.toJson || JSON.stringify.bind(JSON);\nexport const forEach = angular.forEach || _forEach;\nexport const extend = Object.assign || _extend;\nexport const equals = angular.equals || _equals;\nexport function identity(x: any) { return x; }\nexport function noop(): any {}\n\nexport type Mapper = (x: X, key?: (string|number)) => T;\nexport interface TypedMap { [key: string]: T; }\nexport type Predicate = (x?: X) => boolean;\n/**\n * An ng1-style injectable\n *\n * This could be a (non-minified) function such as:\n * ```js\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an explicitly annotated function (minify safe)\n * ```js\n * injectableFunction.$inject = [ 'SomeDependency' ];\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an array style annotated function (minify safe)\n * ```js\n * ['SomeDependency', function injectableFunction(SomeDependency) {\n *\n * }];\n * ```\n *\n * @publicapi\n */\nexport type IInjectable = (Function|any[]);\n\nexport interface Obj extends Object {\n [key: string]: any;\n}\n\n/**\n * Builds proxy functions on the `to` object which pass through to the `from` object.\n *\n * For each key in `fnNames`, creates a proxy function on the `to` object.\n * The proxy function calls the real function on the `from` object.\n *\n *\n * #### Example:\n * This example creates an new class instance whose functions are prebound to the new'd object.\n * ```js\n * class Foo {\n * constructor(data) {\n * // Binds all functions from Foo.prototype to 'this',\n * // then copies them to 'this'\n * bindFunctions(Foo.prototype, this, this);\n * this.data = data;\n * }\n *\n * log() {\n * console.log(this.data);\n * }\n * }\n *\n * let myFoo = new Foo([1,2,3]);\n * var logit = myFoo.log;\n * logit(); // logs [1, 2, 3] from the myFoo 'this' instance\n * ```\n *\n * #### Example:\n * This example creates a bound version of a service function, and copies it to another object\n * ```\n *\n * var SomeService = {\n * this.data = [3, 4, 5];\n * this.log = function() {\n * console.log(this.data);\n * }\n * }\n *\n * // Constructor fn\n * function OtherThing() {\n * // Binds all functions from SomeService to SomeService,\n * // then copies them to 'this'\n * bindFunctions(SomeService, this, SomeService);\n * }\n *\n * let myOtherThing = new OtherThing();\n * myOtherThing.log(); // logs [3, 4, 5] from SomeService's 'this'\n * ```\n *\n * @param source A function that returns the source object which contains the original functions to be bound\n * @param target A function that returns the target object which will receive the bound functions\n * @param bind A function that returns the object which the functions will be bound to\n * @param fnNames The function names which will be bound (Defaults to all the functions found on the 'from' object)\n * @param latebind If true, the binding of the function is delayed until the first time it's invoked\n */\nexport function createProxyFunctions(source: Function, target: Obj, bind: Function, fnNames?: string[], latebind = false): Obj {\n const bindFunction = (fnName) =>\n source()[fnName].bind(bind());\n\n const makeLateRebindFn = fnName => function lateRebindFunction() {\n target[fnName] = bindFunction(fnName);\n return target[fnName].apply(null, arguments);\n };\n\n fnNames = fnNames || Object.keys(source());\n\n return fnNames.reduce((acc, name) => {\n acc[name] = latebind ? makeLateRebindFn(name) : bindFunction(name);\n return acc;\n }, target);\n}\n\n\n/**\n * prototypal inheritance helper.\n * Creates a new object which has `parent` object as its prototype, and then copies the properties from `extra` onto it\n */\nexport const inherit = (parent: Obj, extra?: Obj) =>\n extend(Object.create(parent), extra);\n\n/** Given an array, returns true if the object is found in the array, (using indexOf) */\nexport const inArray: typeof _inArray = curry(_inArray) as any;\nexport function _inArray(array: any[], obj: any): boolean;\nexport function _inArray(array: any[]): (obj: any) => boolean;\nexport function _inArray(array, obj?): any {\n return array.indexOf(obj) !== -1;\n}\n\n/**\n * Given an array, and an item, if the item is found in the array, it removes it (in-place).\n * The same array is returned\n */\nexport const removeFrom: typeof _removeFrom = curry(_removeFrom) as any;\nexport function _removeFrom(array: T[], obj: T): T[];\nexport function _removeFrom(array: T[]): (obj: T) => T[];\nexport function _removeFrom(array, obj?) {\n let idx = array.indexOf(obj);\n if (idx >= 0) array.splice(idx, 1);\n return array;\n}\n\n/** pushes a values to an array and returns the value */\nexport const pushTo: typeof _pushTo = curry(_pushTo) as any;\nexport function _pushTo(arr: T[], val: T): T ;\nexport function _pushTo(arr: T[]): (val: T) => T ;\nexport function _pushTo(arr, val?): any {\n return (arr.push(val), val);\n}\n\n/** Given an array of (deregistration) functions, calls all functions and removes each one from the source array */\nexport const deregAll = (functions: Function[]) =>\n functions.slice().forEach(fn => {\n typeof fn === 'function' && fn();\n removeFrom(functions, fn);\n });\n/**\n * Applies a set of defaults to an options object. The options object is filtered\n * to only those properties of the objects in the defaultsList.\n * Earlier objects in the defaultsList take precedence when applying defaults.\n */\nexport function defaults(opts, ...defaultsList: Obj[]) {\n let _defaultsList = defaultsList.concat({}).reverse();\n let defaultVals = extend.apply(null, _defaultsList);\n return extend({}, defaultVals, pick(opts || {}, Object.keys(defaultVals)));\n}\n\n/** Reduce function that merges each element of the list into a single object, using extend */\nexport const mergeR = (memo: Obj, item: Obj) => extend(memo, item);\n\n/**\n * Finds the common ancestor path between two states.\n *\n * @param {Object} first The first state.\n * @param {Object} second The second state.\n * @return {Array} Returns an array of state names in descending order, not including the root.\n */\nexport function ancestors(first: StateObject, second: StateObject) {\n let path: StateObject[] = [];\n\n for (let n in first.path) {\n if (first.path[n] !== second.path[n]) break;\n path.push(first.path[n]);\n }\n return path;\n}\n\n/**\n * Return a copy of the object only containing the whitelisted properties.\n *\n * #### Example:\n * ```\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = pick(foo, ['a', 'b']); // { a: 1, b: 2 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the whitelisted property names\n */\nexport function pick(obj: Obj, propNames: string[]): Obj {\n let objCopy = {};\n for (let prop in obj) {\n if (propNames.indexOf(prop) !== -1) {\n objCopy[prop] = obj[prop];\n }\n }\n return objCopy;\n}\n\n/**\n * Return a copy of the object omitting the blacklisted properties.\n *\n * @example\n * ```\n *\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = omit(foo, ['a', 'b']); // { c: 3 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the blacklisted property names\n */\nexport function omit(obj: Obj, propNames: string[]): Obj {\n return Object.keys(obj)\n .filter(not(inArray(propNames)))\n .reduce((acc, key) => (acc[key] = obj[key], acc), {});\n}\n\n\n/** Given an array of objects, maps each element to a named property of the element. */\nexport function pluck(collection: Obj[], propName: string): T[];\n/** Given an object, maps each property of the object to a named property of the property. */\nexport function pluck(collection: { [key: string]: any }, propName: string): { [key: string]: any };\n/**\n * Maps an array, or object to a property (by name)\n */\nexport function pluck(collection: any, propName: string): any {\n return map(collection, > prop(propName));\n}\n\n\n/** Given an array of objects, returns a new array containing only the elements which passed the callback predicate */\nexport function filter(collection: T[], callback: (t: T, key?: number) => boolean): T[];\n/** Given an object, returns a new object with only those properties that passed the callback predicate */\nexport function filter(collection: TypedMap, callback: (t: T, key?: string) => boolean): TypedMap;\n/** Filters an Array or an Object's properties based on a predicate */\nexport function filter(collection: any, callback: Function): T {\n let arr = isArray(collection), result: any = arr ? [] : {};\n let accept = arr ? x => result.push(x) : (x, key) => result[key] = x;\n forEach(collection, function(item, i) {\n if (callback(item, i)) accept(item, i);\n });\n return result;\n}\n\n\n/** Given an object, return the first property of that object which passed the callback predicate */\nexport function find(collection: TypedMap, callback: Predicate): T;\n/** Given an array of objects, returns the first object which passed the callback predicate */\nexport function find(collection: T[], callback: Predicate): T;\n/** Finds an object from an array, or a property of an object, that matches a predicate */\nexport function find(collection: any, callback: any) {\n let result;\n\n forEach(collection, function(item, i) {\n if (result) return;\n if (callback(item, i)) result = item;\n });\n\n return result;\n}\n\n/** Given an object, returns a new object, where each property is transformed by the callback function */\nexport let mapObj: (collection: { [key: string]: T }, callback: Mapper) => { [key: string]: U } = map;\n/** Given an array, returns a new array, where each element is transformed by the callback function */\nexport function map(collection: T[], callback: Mapper): U[];\nexport function map(collection: { [key: string]: T }, callback: Mapper): { [key: string]: U };\n/** Maps an array or object properties using a callback function */\nexport function map(collection: any, callback: any): any {\n let result = isArray(collection) ? [] : {};\n forEach(collection, (item, i) => result[i] = callback(item, i));\n return result;\n}\n\n/**\n * Given an object, return its enumerable property values\n *\n * @example\n * ```\n *\n * let foo = { a: 1, b: 2, c: 3 }\n * let vals = values(foo); // [ 1, 2, 3 ]\n * ```\n */\nexport const values: ( (obj: TypedMap) => T[]) = (obj: Obj) =>\n Object.keys(obj).map(key => obj[key]);\n\n/**\n * Reduce function that returns true if all of the values are truthy.\n *\n * @example\n * ```\n *\n * let vals = [ 1, true, {}, \"hello world\"];\n * vals.reduce(allTrueR, true); // true\n *\n * vals.push(0);\n * vals.reduce(allTrueR, true); // false\n * ```\n */\nexport const allTrueR = (memo: boolean, elem: any) => memo && elem;\n\n/**\n * Reduce function that returns true if any of the values are truthy.\n *\n * * @example\n * ```\n *\n * let vals = [ 0, null, undefined ];\n * vals.reduce(anyTrueR, true); // false\n *\n * vals.push(\"hello world\");\n * vals.reduce(anyTrueR, true); // true\n * ```\n */\nexport const anyTrueR = (memo: boolean, elem: any) => memo || elem;\n\n/**\n * Reduce function which un-nests a single level of arrays\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnestR = (memo: any[], elem: any[]) => memo.concat(elem);\n\n/**\n * Reduce function which recursively un-nests all arrays\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flattenR = (memo: any[], elem: any) =>\n isArray(elem) ? memo.concat(elem.reduce(flattenR, [])) : pushR(memo, elem);\n\n/**\n * Reduce function that pushes an object to an array, then returns the array.\n * Mostly just for [[flattenR]] and [[uniqR]]\n */\nexport function pushR(arr: any[], obj: any) {\n arr.push(obj);\n return arr;\n}\n\n/** Reduce function that filters out duplicates */\nexport const uniqR = (acc: T[], token: T): T[] =>\n inArray(acc, token) ? acc : pushR(acc, token);\n\n/**\n * Return a new array with a single level of arrays unnested.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * unnest(input) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnest = (arr: any[]) => arr.reduce(unnestR, []);\n/**\n * Return a completely flattened version of an array.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * flatten(input) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flatten = (arr: any[]) => arr.reduce(flattenR, []);\n\n/**\n * Given a .filter Predicate, builds a .filter Predicate which throws an error if any elements do not pass.\n * @example\n * ```\n *\n * let isNumber = (obj) => typeof(obj) === 'number';\n * let allNumbers = [ 1, 2, 3, 4, 5 ];\n * allNumbers.filter(assertPredicate(isNumber)); //OK\n *\n * let oneString = [ 1, 2, 3, 4, \"5\" ];\n * oneString.filter(assertPredicate(isNumber, \"Not all numbers\")); // throws Error(\"\"Not all numbers\"\");\n * ```\n */\nexport const assertPredicate: (predicate: Predicate, errMsg: (string|Function)) => Predicate = assertFn;\n/**\n * Given a .map function, builds a .map function which throws an error if any mapped elements do not pass a truthyness test.\n * @example\n * ```\n *\n * var data = { foo: 1, bar: 2 };\n *\n * let keys = [ 'foo', 'bar' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // values is [1, 2]\n *\n * let keys = [ 'foo', 'bar', 'baz' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // throws Error(\"Key not found\")\n * ```\n */\nexport const assertMap: (mapFn: (t: T) => U, errMsg: (string|Function)) => (t: T) => U = assertFn;\nexport function assertFn(predicateOrMap: Function, errMsg: (string|Function) = \"assert failure\"): any {\n return (obj) => {\n let result = predicateOrMap(obj);\n if (!result) {\n throw new Error(isFunction(errMsg) ? ( errMsg)(obj) : errMsg);\n }\n return result;\n };\n}\n\n/**\n * Like _.pairs: Given an object, returns an array of key/value pairs\n *\n * @example\n * ```\n *\n * pairs({ foo: \"FOO\", bar: \"BAR }) // [ [ \"foo\", \"FOO\" ], [ \"bar\": \"BAR\" ] ]\n * ```\n */\nexport const pairs = (obj: Obj) =>\n Object.keys(obj).map(key => [ key, obj[key]] );\n\n/**\n * Given two or more parallel arrays, returns an array of tuples where\n * each tuple is composed of [ a[i], b[i], ... z[i] ]\n *\n * @example\n * ```\n *\n * let foo = [ 0, 2, 4, 6 ];\n * let bar = [ 1, 3, 5, 7 ];\n * let baz = [ 10, 30, 50, 70 ];\n * arrayTuples(foo, bar); // [ [0, 1], [2, 3], [4, 5], [6, 7] ]\n * arrayTuples(foo, bar, baz); // [ [0, 1, 10], [2, 3, 30], [4, 5, 50], [6, 7, 70] ]\n * ```\n */\nexport function arrayTuples(...args: any[]): any[] {\n if (args.length === 0) return [];\n let maxArrayLen = args.reduce((min, arr) => Math.min(arr.length, min), 9007199254740991); // aka 2^53 − 1 aka Number.MAX_SAFE_INTEGER\n\n let i, result = [];\n\n for (i = 0; i < maxArrayLen; i++) {\n // This is a hot function\n // Unroll when there are 1-4 arguments\n switch (args.length) {\n case 1: result.push([args[0][i]]); break;\n case 2: result.push([args[0][i], args[1][i]]); break;\n case 3: result.push([args[0][i], args[1][i], args[2][i]]); break;\n case 4: result.push([args[0][i], args[1][i], args[2][i], args[3][i]]); break;\n default:\n result.push(args.map(array => array[i])); break;\n }\n }\n\n return result;\n}\n\n/**\n * Reduce function which builds an object from an array of [key, value] pairs.\n *\n * Each iteration sets the key/val pair on the memo object, then returns the memo for the next iteration.\n *\n * Each keyValueTuple should be an array with values [ key: string, value: any ]\n *\n * @example\n * ```\n *\n * var pairs = [ [\"fookey\", \"fooval\"], [\"barkey\", \"barval\"] ]\n *\n * var pairsToObj = pairs.reduce((memo, pair) => applyPairs(memo, pair), {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n *\n * // Or, more simply:\n * var pairsToObj = pairs.reduce(applyPairs, {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n * ```\n */\nexport function applyPairs(memo: TypedMap, keyValTuple: any[]) {\n let key: string, value: any;\n if (isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n}\n\n/** Get the last element of an array */\nexport function tail(arr: T[]): T {\n return arr.length && arr[arr.length - 1] || undefined;\n}\n\n/**\n * shallow copy from src to dest\n */\nexport function copy(src: Obj, dest?: Obj) {\n if (dest) Object.keys(dest).forEach(key => delete dest[key]);\n if (!dest) dest = {};\n return extend(dest, src);\n}\n\n/** Naive forEach implementation works with Objects or Arrays */\nfunction _forEach(obj: (any[]|any), cb: (el, idx?) => void, _this: Obj) {\n if (isArray(obj)) return obj.forEach(cb, _this);\n Object.keys(obj).forEach(key => cb(obj[key], key));\n}\n\n/** Like Object.assign() */\nexport function _extend(toObj: Obj, ...fromObjs: Obj[]): any;\nexport function _extend(toObj: Obj): any {\n for (let i = 1; i < arguments.length; i++) {\n let obj = arguments[i];\n if (!obj) continue;\n let keys = Object.keys(obj);\n\n for (let j = 0; j < keys.length; j++) {\n toObj[keys[j]] = obj[keys[j]];\n }\n }\n\n return toObj;\n}\n\nfunction _equals(o1: any, o2: any): boolean {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n let t1 = typeof o1, t2 = typeof o2;\n if (t1 !== t2 || t1 !== 'object') return false;\n\n const tup = [o1, o2];\n if (all(isArray)(tup)) return _arraysEq(o1, o2);\n if (all(isDate)(tup)) return o1.getTime() === o2.getTime();\n if (all(isRegExp)(tup)) return o1.toString() === o2.toString();\n if (all(isFunction)(tup)) return true; // meh\n\n let predicates = [isFunction, isArray, isDate, isRegExp];\n if (predicates.map(any).reduce((b, fn) => b || !!fn(tup), false)) return false;\n\n let key: string, keys: { [i: string]: boolean } = {};\n for (key in o1) {\n if (!_equals(o1[key], o2[key])) return false;\n keys[key] = true;\n }\n for (key in o2) {\n if (!keys[key]) return false;\n }\n\n return true;\n}\n\nfunction _arraysEq(a1: any[], a2: any[]) {\n if (a1.length !== a2.length) return false;\n return arrayTuples(a1, a2).reduce((b, t) => b && _equals(t[0], t[1]), true);\n}\n\n// issue #2676\nexport const silenceUncaughtInPromise = (promise: Promise) =>\n promise.catch(e => 0) && promise;\nexport const silentRejection = (error: any) =>\n silenceUncaughtInPromise(services.$q.reject(error));\n", + "/**\n * @module common\n */ /** for typedoc */\n\nexport class Queue {\n constructor(private _items: T[] = [], private _limit: number = null) { }\n\n enqueue(item: T) {\n let items = this._items;\n items.push(item);\n if (this._limit && items.length > this._limit) items.shift();\n return item;\n }\n\n dequeue(): T {\n if (this.size())\n return this._items.splice(0, 1)[0];\n }\n\n clear(): Array {\n let current = this._items;\n this._items = [];\n return current;\n }\n\n size(): number {\n return this._items.length;\n }\n\n remove(item: T) {\n let idx = this._items.indexOf(item);\n return idx > -1 && this._items.splice(idx, 1)[0];\n }\n\n peekTail(): T {\n return this._items[this._items.length - 1];\n }\n\n peekHead(): T {\n if (this.size())\n return this._items[0];\n }\n}\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\"use strict\";\nimport {extend, silentRejection} from \"../common/common\";\nimport {stringify} from \"../common/strings\";\nimport { is } from '../common/hof';\n\nexport enum RejectType {\n SUPERSEDED = 2, ABORTED = 3, INVALID = 4, IGNORED = 5, ERROR = 6\n}\n\n/** @hidden */ let id = 0;\n\nexport class Rejection {\n $id = id++;\n type: number;\n message: string;\n detail: any;\n redirected: boolean;\n\n constructor(type: number, message?: string, detail?: any) {\n this.type = type;\n this.message = message;\n this.detail = detail;\n }\n\n toString() {\n const detailString = (d: any) => \n d && d.toString !== Object.prototype.toString ? d.toString() : stringify(d);\n let detail = detailString(this.detail);\n let { $id, type, message } = this;\n return `Transition Rejection($id: ${$id} type: ${type}, message: ${message}, detail: ${detail})`;\n }\n\n toPromise(): Promise {\n return extend(silentRejection(this), { _transitionRejection: this });\n }\n\n /** Returns true if the obj is a rejected promise created from the `asPromise` factory */\n static isRejectionPromise(obj: any): boolean {\n return obj && (typeof obj.then === 'function') && is(Rejection)(obj._transitionRejection);\n }\n\n /** Returns a Rejection due to transition superseded */\n static superseded(detail?: any, options?: any): Rejection {\n let message = \"The transition has been superseded by a different transition\";\n let rejection = new Rejection(RejectType.SUPERSEDED, message, detail);\n if (options && options.redirected) {\n rejection.redirected = true;\n }\n return rejection;\n }\n\n /** Returns a Rejection due to redirected transition */\n static redirected(detail?: any): Rejection {\n return Rejection.superseded(detail, { redirected: true });\n }\n\n /** Returns a Rejection due to invalid transition */\n static invalid(detail?: any): Rejection {\n let message = \"This transition is invalid\";\n return new Rejection(RejectType.INVALID, message, detail);\n }\n\n /** Returns a Rejection due to ignored transition */\n static ignored(detail?: any): Rejection {\n let message = \"The transition was ignored\";\n return new Rejection(RejectType.IGNORED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static aborted(detail?: any): Rejection {\n let message = \"The transition has been aborted\";\n return new Rejection(RejectType.ABORTED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static errored(detail?: any): Rejection {\n let message = \"The transition errored\";\n return new Rejection(RejectType.ERROR, message, detail);\n }\n \n /**\n * Returns a Rejection\n *\n * Normalizes a value as a Rejection.\n * If the value is already a Rejection, returns it.\n * Otherwise, wraps and returns the value as a Rejection (Rejection type: ERROR).\n *\n * @returns `detail` if it is already a `Rejection`, else returns an ERROR Rejection.\n */\n static normalize(detail?: Rejection | Error | any): Rejection {\n return is(Rejection)(detail) ? detail : Rejection.errored(detail);\n }\n}\n", + "/**\n * # Transition tracing (debug)\n *\n * Enable transition tracing to print transition information to the console,\n * in order to help debug your application.\n * Tracing logs detailed information about each Transition to your console.\n *\n * To enable tracing, import the [[Trace]] singleton and enable one or more categories.\n *\n * ### ES6\n * ```js\n * import {trace} from \"ui-router-ng2\"; // or \"angular-ui-router\"\n * trace.enable(1, 5); // TRANSITION and VIEWCONFIG\n * ```\n *\n * ### CJS\n * ```js\n * let trace = require(\"angular-ui-router\").trace; // or \"ui-router-ng2\"\n * trace.enable(\"TRANSITION\", \"VIEWCONFIG\");\n * ```\n *\n * ### Globals\n * ```js\n * let trace = window[\"angular-ui-router\"].trace; // or \"ui-router-ng2\"\n * trace.enable(); // Trace everything (very verbose)\n * ```\n *\n * ### Angular 1:\n * ```js\n * app.run($trace => $trace.enable());\n * ```\n *\n * @coreapi\n * @module trace\n */ /** for typedoc */\nimport {parse} from \"../common/hof\";\nimport {isFunction, isNumber} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {ActiveUIView, ViewConfig, ViewContext} from \"../view/interface\";\nimport {stringify, functionToString, maxLength, padString} from \"./strings\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {PathNode} from \"../path/pathNode\";\nimport {PolicyWhen} from \"../resolve/interface\";\nimport {TransitionHook} from \"../transition/transitionHook\";\nimport {HookResult} from \"../transition/interface\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @hidden */\nfunction uiViewString (uiview: ActiveUIView) {\n if (!uiview) return 'ui-view (defunct)';\n const state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';\n return `[ui-view#${uiview.id} ${uiview.$type}:${uiview.fqn} (${uiview.name}@${state})]`;\n}\n\n/** @hidden */\nconst viewConfigString = (viewConfig: ViewConfig) => {\n let view = viewConfig.viewDecl;\n const state = view.$context.name || '(root)';\n return `[View#${viewConfig.$id} from '${state}' state]: target ui-view: '${view.$uiViewName}@${view.$uiViewContextAnchor}'`;\n};\n\n/** @hidden */\nfunction normalizedCat(input: Category|string): string {\n return isNumber(input) ? Category[input] : Category[Category[input]];\n}\n\n/** @hidden */\nconst consoleLog = Function.prototype.bind.call(console.log, console);\n\n/** @hidden */\nconst consoletable = isFunction(console.table) ? console.table.bind(console) : consoleLog.bind(console);\n\n\n/**\n * Trace categories Enum\n *\n * Enable or disable a category using [[Trace.enable]] or [[Trace.disable]]\n *\n * `trace.enable(Category.TRANSITION)`\n *\n * These can also be provided using a matching string, or position ordinal\n *\n * `trace.enable(\"TRANSITION\")`\n *\n * `trace.enable(1)`\n */\nexport enum Category {\n RESOLVE, TRANSITION, HOOK, UIVIEW, VIEWCONFIG,\n}\n\n/** @hidden */ const _tid = parse(\"$id\");\n/** @hidden */ const _rid = parse(\"router.$id\");\n/** @hidden */ const transLbl = (trans) => `Transition #${_tid(trans)}-${_rid(trans)}`;\n\n/**\n * Prints UI-Router Transition trace information to the console.\n */\nexport class Trace {\n /** @hidden */\n approximateDigests: number;\n\n /** @hidden */\n constructor() {\n this.approximateDigests = 0;\n }\n\n /** @hidden */\n private _enabled: { [key: string]: boolean } = {};\n\n /** @hidden */\n private _set(enabled: boolean, categories: Category[]) {\n if (!categories.length) {\n categories = Object.keys(Category)\n .map(k => parseInt(k, 10))\n .filter(k => !isNaN(k))\n .map(key => Category[key]);\n }\n categories.map(normalizedCat).forEach(category => this._enabled[category] = enabled);\n }\n\n /**\n * Enables a trace [[Category]]\n *\n * ```js\n * trace.enable(\"TRANSITION\");\n * ```\n *\n * @param categories categories to enable. If `categories` is omitted, all categories are enabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n enable(...categories: (Category|string|number)[]);\n enable(...categories: any[]) { this._set(true, categories); }\n /**\n * Disables a trace [[Category]]\n *\n * ```js\n * trace.disable(\"VIEWCONFIG\");\n * ```\n *\n * @param categories categories to disable. If `categories` is omitted, all categories are disabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n disable(...categories: (Category|string|number)[]);\n disable(...categories: any[]) { this._set(false, categories); }\n\n /**\n * Retrieves the enabled stateus of a [[Category]]\n *\n * ```js\n * trace.enabled(\"VIEWCONFIG\"); // true or false\n * ```\n *\n * @returns boolean true if the category is enabled\n */\n enabled(category: (Category|string|number)): boolean {\n return !!this._enabled[normalizedCat(category)];\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionStart(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Started -> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionIgnored(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Ignored <> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookInvocation(step: TransitionHook, trans: Transition, options: any) {\n if (!this.enabled(Category.HOOK)) return;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = functionToString((step as any).registeredHook.callback);\n console.log(`${transLbl(trans)}: Hook -> ${event} context: ${context}, ${maxLength(200, name)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookResult(hookResult: HookResult, trans: Transition, transitionOptions: any) {\n if (!this.enabled(Category.HOOK)) return;\n console.log(`${transLbl(trans)}: <- Hook returned: ${maxLength(200, stringify(hookResult))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvePath(path: PathNode[], when: PolicyWhen, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: Resolving ${path} (${when})`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvableResolved(resolvable: Resolvable, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: <- Resolved ${resolvable} to: ${maxLength(200, stringify(resolvable.data))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceError(reason: any, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Rejected ${stringify(trans)}, reason: ${reason}`);\n }\n\n /** @internalapi called by ui-router code */\n traceSuccess(finalState: StateObject, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Success ${stringify(trans)}, final state: ${finalState.name}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewEvent(event: string, viewData: ActiveUIView, extra = \"\") {\n if (!this.enabled(Category.UIVIEW)) return;\n console.log(`ui-view: ${padString(30, event)} ${uiViewString(viewData)}${extra}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewConfigUpdated(viewData: ActiveUIView, context: ViewContext) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Updating\", viewData, ` with ViewConfig from context='${context}'`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewFill(viewData: ActiveUIView, html: string) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Fill\", viewData, ` with: ${maxLength(200, html)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewSync(pairs: any[]) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n const mapping = pairs.map(([ uiViewData, config ]) => {\n const uiView = `${uiViewData.$type}:${uiViewData.fqn}`;\n const view = config && `${config.viewDecl.$context.name}: ${config.viewDecl.$name} (${config.viewDecl.$type})`;\n\n return { 'ui-view fqn': uiView, 'state: view name': view };\n }).sort((a, b) => a['ui-view fqn'].localeCompare(b['ui-view fqn']));\n\n consoletable(mapping);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceEvent(event: string, viewConfig: ViewConfig) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${viewConfigString(viewConfig)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceUIViewEvent(event: string, viewData: ActiveUIView) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${uiViewString(viewData)}`);\n }\n}\n\n/**\n * The [[Trace]] singleton\n *\n * #### Example:\n * ```js\n * import {trace} from \"angular-ui-router\";\n * trace.enable(1, 5);\n * ```\n */\nlet trace = new Trace();\nexport {trace};\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport {StateDeclaration} from \"../state/interface\";\nimport {Predicate} from \"../common/common\";\n\nimport {Transition} from \"./transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TargetState} from \"../state/targetState\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * The TransitionOptions object can be used to change the behavior of a transition.\n *\n * It is passed as the third argument to [[StateService.go]], [[StateService.transitionTo]].\n * It can also be used with a `uiSref`.\n */\nexport interface TransitionOptions {\n /**\n * This option changes how the Transition interacts with the browser's location bar (URL).\n *\n * - If `true`, it will update the url in the location bar.\n * - If `false`, it will not update the url in the location bar.\n * - If it is the string `\"replace\"`, it will update the url and also replace the last history record.\n *\n * @default `true`\n */\n location ?: (boolean|string);\n\n /**\n * When transitioning to relative path (e.g '`^`'), this option defines which state to be relative from.\n * @default `$state.current`\n */\n relative ?: (string|StateDeclaration|StateObject);\n\n /**\n * This option sets whether or not the transition's parameter values should be inherited from\n * the current parameter values.\n *\n * - If `true`, it will inherit parameter values from the current parameter values.\n * - If `false`, only the parameters which are provided to `transitionTo` will be used.\n *\n * @default `false`\n */\n inherit ?: boolean;\n\n /**\n * @deprecated\n */\n notify ?: boolean;\n\n /**\n * This option may be used to force states which are currently active to reload.\n *\n * During a normal transition, a state is \"retained\" if:\n * - It was previously active\n * - The state's parameter values have not changed\n * - All the parent states' parameter values have not changed\n *\n * Forcing a reload of a state will cause it to be exited and entered, which will:\n * - Refetch that state's resolve data\n * - Exit the state (onExit hook)\n * - Re-enter the state (onEnter hook)\n * - Re-render the views (controllers and templates)\n *\n * - When `true`, the destination state (and all parent states) will be reloaded.\n * - When it is a string and is the name of a state, or when it is a State object,\n * that state and any children states will be reloaded.\n *\n * @default `false`\n */\n reload ?: (boolean|string|StateDeclaration|StateObject);\n /**\n * You can define your own Transition Options inside this property and use them, e.g., from a Transition Hook\n */\n custom ?: any;\n /** @internalapi */\n reloadState ?: (StateObject);\n /** @internalapi\n * If this transition is a redirect, this property should be the original Transition (which was redirected to this one)\n */\n redirectedFrom?: Transition;\n /** @internalapi */\n current ?: () => Transition;\n /** @internalapi */\n source ?: \"sref\" | \"url\" | \"redirect\" | \"otherwise\" | \"unknown\";\n}\n\n/** @internalapi */\nexport interface TransitionHookOptions {\n current ?: () => Transition; //path?\n transition ?: Transition;\n hookType ?: string;\n target ?: any;\n traceData ?: any;\n bind ?: any;\n stateHook ?: boolean;\n}\n\n/**\n * TreeChanges encapsulates the various Paths that are involved in a Transition.\n *\n * Get a TreeChanges object using [[Transition.treeChanges]]\n *\n * A UI-Router Transition is from one Path in a State Tree to another Path. For a given Transition,\n * this object stores the \"to\" and \"from\" paths, as well as subsets of those: the \"retained\",\n * \"exiting\" and \"entering\" paths.\n *\n * Each path in TreeChanges is an array of [[PathNode]] objects. Each PathNode in the array corresponds to a portion\n * of a nested state.\n *\n * For example, if you had a nested state named `foo.bar.baz`, it would have three\n * portions, `foo, bar, baz`. If you transitioned **to** `foo.bar.baz` and inspected the [[TreeChanges.to]]\n * Path, you would find a node in the array for each portion: `foo`, `bar`, and `baz`.\n *\n * ---\n *\n * @todo show visual state tree\n */\nexport interface TreeChanges {\n /** @nodoc */\n [key: string]: PathNode[];\n\n /** The path of nodes in the state tree that the transition is coming *from* */\n from: PathNode[];\n\n /** The path of nodes in the state tree that the transition is going *to* */\n to: PathNode[];\n\n /**\n * The path of active nodes that the transition is retaining.\n *\n * These nodes are neither exited, nor entered.\n * Before and after the transition is successful, these nodes are active.\n */\n retained: PathNode[];\n\n /**\n * The path of previously active nodes that the transition is exiting.\n *\n * After the Transition is successful, these nodes are no longer active.\n *\n * Note that a state that is being reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n exiting: PathNode[];\n\n /**\n * The path of nodes that the transition is entering.\n *\n * After the Transition is successful, these nodes will be active.\n * Because they are entering, they have their resolves fetched, `onEnter` hooks run, and their views\n * (component(s) or controller(s)+template(s)) refreshed.\n *\n * Note that a state that is reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n entering: PathNode[];\n}\n\nexport type IHookRegistration = (matchCriteria: HookMatchCriteria, callback: HookFn, options?: HookRegOptions) => Function;\n\n/**\n * The signature for Transition Hooks.\n *\n * Transition hooks are callback functions that hook into the lifecycle of transitions.\n * As a transition runs, it reaches certain lifecycle events.\n * As each event occurs, the hooks which are registered for the event are called (in priority order).\n *\n * A transition hook may alter a Transition by returning a [[HookResult]].\n *\n * #### See:\n *\n * - [[IHookRegistry.onBefore]]\n * - [[IHookRegistry.onStart]]\n * - [[IHookRegistry.onFinish]]\n * - [[IHookRegistry.onSuccess]]\n * - [[IHookRegistry.onError]]\n *\n * @param transition the current [[Transition]]\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n *\n */\nexport interface TransitionHookFn {\n (transition: Transition) : HookResult;\n}\n\n/**\n * The signature for Transition State Hooks.\n *\n * A function which hooks into a lifecycle event for a specific state.\n *\n * Transition State Hooks are callback functions that hook into the lifecycle events of specific states during a transition.\n * As a transition runs, it may exit some states, retain (keep) states, and enter states.\n * As each lifecycle event occurs, the hooks which are registered for the event and that state are called (in priority order).\n *\n * #### See:\n *\n * - [[IHookRegistry.onExit]]\n * - [[IHookRegistry.onRetain]]\n * - [[IHookRegistry.onEnter]]\n *\n * @param transition the current [[Transition]]\n * @param state the [[StateObject]] that the hook is bound to\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n */\nexport interface TransitionStateHookFn {\n (transition: Transition, state: StateDeclaration) : HookResult;\n}\n\n/**\n * The signature for Transition onCreate Hooks.\n *\n * Transition onCreate Hooks are callbacks that allow customization or preprocessing of\n * a Transition before it is returned from [[TransitionService.create]]\n *\n * @param transition the [[Transition]] that was just created\n * @return a [[Transition]] which will then be returned from [[TransitionService.create]]\n */\nexport interface TransitionCreateHookFn {\n (transition: Transition): void;\n}\n\nexport type HookFn = (TransitionHookFn|TransitionStateHookFn|TransitionCreateHookFn);\n\n/**\n * The return value of a [[TransitionHookFn]] or [[TransitionStateHookFn]]\n *\n * When returned from a [[TransitionHookFn]] or [[TransitionStateHookFn]], these values alter the running [[Transition]]:\n *\n * - `false`: the transition will be cancelled.\n * - [[TargetState]]: the transition will be redirected to the new target state (see: [[StateService.target]])\n * - `Promise`: the transition will wait for the promise to resolve or reject\n * - If the promise is rejected (or resolves to `false`), the transition will be cancelled\n * - If the promise resolves to a [[TargetState]], the transition will be redirected\n * - If the promise resolves to anything else, the transition will resume\n * - Anything else: the transition will resume\n */\nexport type HookResult = (boolean | TargetState | void | Promise);\n\n/**\n * These options may be provided when registering a Transition Hook (such as `onStart`)\n */\nexport interface HookRegOptions {\n /**\n * Sets the priority of the registered hook\n *\n * Hooks of the same type (onBefore, onStart, etc) are invoked in priority order. A hook with a higher priority\n * is invoked before a hook with a lower priority.\n *\n * The default hook priority is 0\n */\n priority?: number;\n\n /**\n * Specifies what `this` is bound to during hook invocation.\n */\n bind?: any;\n\n /**\n * Limits the number of times that the hook will be invoked.\n * Once the hook has been invoked this many times, it is automatically deregistered.\n */\n invokeLimit?: number;\n}\n\n/**\n * This interface specifies the api for registering Transition Hooks. Both the\n * [[TransitionService]] and also the [[Transition]] object itself implement this interface.\n * Note: the Transition object only allows hooks to be registered before the Transition is started.\n */\nexport interface IHookRegistry {\n /**\n * Registers a [[TransitionHookFn]], called *before a transition starts*.\n *\n * Registers a transition lifecycle hook, which is invoked before a transition even begins.\n * This hook can be useful to implement logic which prevents a transition from even starting, such\n * as authentication, redirection\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onBefore` hooks are invoked *before a Transition starts*.\n * No resolves have been fetched yet.\n * Each `onBefore` hook is invoked synchronously, in the same call stack as [[StateService.transitionTo]].\n * The registered `onBefore` hooks are invoked in priority order.\n *\n * Note: during the `onBefore` phase, additional hooks can be added to the specific [[Transition]] instance.\n * These \"on-the-fly\" hooks only affect the currently running transition..\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * If any hook modifies the transition *synchronously* (by throwing, returning `false`, or returning\n * a [[TargetState]]), the remainder of the hooks are skipped.\n * If a hook returns a promise, the remainder of the `onBefore` hooks are still invoked synchronously.\n * All promises are resolved, and processed asynchronously before the `onStart` phase of the Transition.\n *\n * ### Examples\n *\n * #### Default Substate\n *\n * This example redirects any transition from 'home' to 'home.dashboard'. This is commonly referred to as a\n * \"default substate\".\n *\n * @example\n * ```js\n * // ng2\n * transitionService.onBefore({ to: 'home' }, (trans: Transition) =>\n * trans.router.stateService.target(\"home.dashboard\"));\n * ```\n *\n * #### Data Driven Default Substate\n *\n * This example provides data-driven default substate functionality. It matches on a transition to any state\n * which has `defaultSubstate: \"some.sub.state\"` defined. See: [[Transition.to]] which returns the \"to state\"\n * definition.\n *\n * @example\n * ```js\n * // ng1\n * // state declaration\n * {\n * name: 'home',\n * template: '
    ',\n * defaultSubstate: 'home.dashboard'\n * }\n *\n * var criteria = {\n * to: function(state) {\n * return state.defaultSubstate != null;\n * }\n * }\n *\n * $transitions.onBefore(criteria, function(trans: Transition) {\n * var substate = trans.to().defaultSubstate;\n * return trans.router.stateService.target(substate);\n * });\n * ```\n *\n *\n * #### Require authentication\n *\n * This example cancels a transition to a state which requires authentication, if the user is not currently authenticated.\n *\n * This example assumes a state tree where all states which require authentication are children of a parent `'requireauth'` state.\n * This example assumes `MyAuthService` synchronously returns a boolean from `isAuthenticated()`.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onBefore( { to: 'requireauth.**' }, function(trans) {\n * var myAuthService = trans.injector().get('MyAuthService');\n * // If isAuthenticated returns false, the transition is cancelled.\n * return myAuthService.isAuthenticated();\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @returns a function which deregisters the hook.\n */\n onBefore(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called when a transition starts.\n *\n * Registers a transition lifecycle hook, which is invoked as a transition starts running.\n * This hook can be useful to perform some asynchronous action before completing a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onStart` hooks are invoked asynchronously when the Transition starts running.\n * This happens after the `onBefore` phase is complete.\n * At this point, the Transition has not yet exited nor entered any states.\n * The registered `onStart` hooks are invoked in priority order.\n *\n * Note: A built-in `onStart` hook with high priority is used to fetch any eager resolve data.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Example\n *\n * #### Login during transition\n *\n * This example intercepts any transition to a state which requires authentication, when the user is\n * not currently authenticated. It allows the user to authenticate asynchronously, then resumes the\n * transition. If the user did not authenticate successfully, it redirects to the \"guest\" state, which\n * does not require authentication.\n *\n * This example assumes:\n * - a state tree where all states which require authentication are children of a parent `'auth'` state.\n * - `MyAuthService.isAuthenticated()` synchronously returns a boolean.\n * - `MyAuthService.authenticate()` presents a login dialog, and returns a promise which is resolved\n * or rejected, whether or not the login attempt was successful.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onStart( { to: 'auth.**' }, function(trans) {\n * var $state = trans.router.stateService;\n * var MyAuthService = trans.injector().get('MyAuthService');\n *\n * // If the user is not authenticated\n * if (!MyAuthService.isAuthenticated()) {\n *\n * // Then return a promise for a successful login.\n * // The transition will wait for this promise to settle\n *\n * return MyAuthService.authenticate().catch(function() {\n *\n * // If the authenticate() method failed for whatever reason,\n * // redirect to a 'guest' state which doesn't require auth.\n * return $state.target(\"guest\");\n * });\n * }\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onStart(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is entered.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being entered.\n *\n * Since this hook is run only when the specific state is being *entered*, it can be useful for\n * performing tasks when entering a submodule/feature area such as initializing a stateful service,\n * or for guarding access to a submodule/feature area.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onEnter` hooks generally specify `{ entering: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onEnter` hooks are invoked when the Transition is entering a state.\n * States are entered after the `onRetain` phase is complete.\n * If more than one state is being entered, the parent state is entered first.\n * The registered `onEnter` hooks for a state are invoked in priority order.\n *\n * Note: A built-in `onEnter` hook with high priority is used to fetch lazy resolve data for states being entered.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onEnter` hooks using the [[TransitionService]], you may define an `onEnter` hook\n * directly on a state declaration (see: [[StateDeclaration.onEnter]]).\n *\n *\n * ### Examples\n *\n * #### Audit Log\n *\n * This example uses a service to log that a user has entered the admin section of an app.\n * This assumes that there are substates of the \"admin\" state, such as \"admin.users\", \"admin.pages\", etc.\n * @example\n * ```\n *\n * $transitions.onEnter({ entering: 'admin' }, function(transition, state) {\n * var AuditService = trans.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * ```\n *\n * #### Audit Log (inside a state declaration)\n *\n * The `onEnter` inside this state declaration is syntactic sugar for the previous Audit Log example.\n * ```\n * {\n * name: 'admin',\n * component: 'admin',\n * onEnter: function($transition$, $state$) {\n * var AuditService = $transition$.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * }\n * ```\n *\n * Note: A state declaration's `onEnter` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onEnter(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is retained/kept.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) for\n * a specific state that was previously active will remain active (is not being entered nor exited).\n *\n * This hook is invoked when a state is \"retained\" or \"kept\".\n * It means the transition is coming *from* a substate of the retained state *to* a substate of the retained state.\n * This hook can be used to perform actions when the user moves from one substate to another, such as between steps in a wizard.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onRetain` hooks generally specify `{ retained: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onRetain` hooks are invoked after any `onExit` hooks have been fired.\n * If more than one state is retained, the child states' `onRetain` hooks are invoked first.\n * The registered `onRetain` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onRetain` hooks using the [[TransitionService]], you may define an `onRetain` hook\n * directly on a state declaration (see: [[StateDeclaration.onRetain]]).\n *\n * Note: A state declaration's `onRetain` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onRetain(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is exited.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being exited.\n *\n * Since this hook is run only when the specific state is being *exited*, it can be useful for\n * performing tasks when leaving a submodule/feature area such as cleaning up a stateful service,\n * or for preventing the user from leaving a state or submodule until some criteria is satisfied.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onExit` hooks generally specify `{ exiting: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onExit` hooks are invoked when the Transition is exiting a state.\n * States are exited after any `onStart` phase is complete.\n * If more than one state is being exited, the child states are exited first.\n * The registered `onExit` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onExit` hooks using the [[TransitionService]], you may define an `onExit` hook\n * directly on a state declaration (see: [[StateDeclaration.onExit]]).\n *\n * Note: A state declaration's `onExit` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onExit(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called *just before a transition finishes*.\n *\n * Registers a transition lifecycle hook, which is invoked just before a transition finishes.\n * This hook is a last chance to cancel or redirect a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onFinish` hooks are invoked after the `onEnter` phase is complete.\n * These hooks are invoked just before the transition is \"committed\".\n * Each hook is invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onFinish(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a successful transition completed.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition successfully completes.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onSuccess` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If the Transition is successful and its promise is resolved, then the `onSuccess` hooks are invoked.\n * Since these hooks are run after the transition is over, their return value is ignored.\n * The `onSuccess` hooks are invoked in priority order.\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onSuccess(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a transition has errored.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition has been rejected for any reason.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * The `onError` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If a Transition fails, its promise is rejected and the `onError` hooks are invoked.\n * The `onError` hooks are invoked in priority order.\n *\n * Since these hooks are run after the transition is over, their return value is ignored.\n *\n * A transition \"errors\" if it was started, but failed to complete (for any reason).\n * A *non-exhaustive list* of reasons a transition can error:\n *\n * - A transition was cancelled because a new transition started while it was still running (`Transition superseded`)\n * - A transition was cancelled by a Transition Hook returning false\n * - A transition was redirected by a Transition Hook returning a [[TargetState]]\n * - A Transition Hook or resolve function threw an error\n * - A Transition Hook returned a rejected promise\n * - A resolve function returned a rejected promise\n *\n * To check the failure reason, inspect the return value of [[Transition.error]].\n *\n * Note: `onError` should be used for targeted error handling, or error recovery.\n * For simple catch-all error reporting, use [[StateService.defaultErrorHandler]].\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onError(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Returns all the registered hooks of a given `hookName` type\n *\n * #### Example:\n * ```\n * $transitions.getHooks(\"onEnter\")\n * ```\n */\n getHooks(hookName: string): RegisteredHook[];\n\n /** @hidden place to store the hooks */\n _registeredHooks: { [key: string]: RegisteredHook[] };\n}\n\n/** A predicate type which tests if a [[StateObject]] passes some test. Returns a boolean. */\nexport type IStateMatch = Predicate;\n\n/**\n * This object is used to configure whether or not a Transition Hook is invoked for a particular transition,\n * based on the Transition's \"to state\" and \"from state\".\n *\n * Each property (`to`, `from`, `exiting`, `retained`, and `entering`) can be a state [[Glob]] string,\n * a boolean, or a function that takes a state and returns a boolean (see [[HookMatchCriterion]])\n *\n * All properties are optional. If any property is omitted, it is replaced with the value `true`, and always matches.\n * To match any transition, use an empty criteria object `{}`.\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from the `parent` state and going to the `parent.child` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.child'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any substate of `parent` and going directly to the `parent` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any substate of `mymodule`\n * var match = {\n * to: 'mymodule.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any state that has `data.authRequired`\n * // set to a truthy value.\n * var match = {\n * to: function(state) {\n * return state.data != null && state.data.authRequired === true;\n * }\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition that is exiting `parent.child`\n * var match = {\n * exiting: 'parent.child'\n * }\n * ```\n */\nexport interface HookMatchCriteria {\n [key: string]: HookMatchCriterion | undefined;\n\n /** A [[HookMatchCriterion]] to match the destination state */\n to?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match the original (from) state */\n from?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be exiting */\n exiting?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be retained */\n retained?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be entering */\n entering?: HookMatchCriterion;\n}\n\nexport interface IMatchingNodes {\n [key: string]: PathNode[];\n\n to: PathNode[];\n from: PathNode[];\n exiting: PathNode[];\n retained: PathNode[];\n entering: PathNode[];\n}\n\n/** @hidden */\nexport interface RegisteredHooks {\n [key: string]: RegisteredHook[];\n}\n\n/** @hidden */\nexport interface PathTypes {\n [key: string]: PathType;\n\n to: PathType;\n from: PathType;\n exiting: PathType;\n retained: PathType;\n entering: PathType;\n}\n\n/** @hidden */\nexport interface PathType {\n name: string;\n scope: TransitionHookScope;\n}\n\n/**\n * Hook Criterion used to match a transition.\n *\n * A [[Glob]] string that matches the name of a state.\n *\n * Or, a function with the signature `function(state) { return matches; }`\n * which should return a boolean to indicate if a state matches.\n *\n * Or, `true` to always match\n */\nexport type HookMatchCriterion = (string|IStateMatch|boolean)\n\nexport enum TransitionHookPhase { CREATE, BEFORE, RUN, SUCCESS, ERROR }\nexport enum TransitionHookScope { TRANSITION, STATE }\n", + "/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateDeclaration, StateOrName, TargetStateDef } from \"./interface\";\nimport { TransitionOptions } from \"../transition/interface\";\nimport { StateObject } from \"./stateObject\";\nimport { isString } from \"../common/predicates\";\nimport { stringify } from '../common/strings';\nimport { extend } from '../common';\nimport { StateRegistry } from './stateRegistry';\nimport { RawParams } from '../params';\n\n/**\n * Encapsulate the target (destination) state/params/options of a [[Transition]].\n *\n * This class is frequently used to redirect a transition to a new destination.\n *\n * See:\n *\n * - [[HookResult]]\n * - [[TransitionHookFn]]\n * - [[TransitionService.onStart]]\n *\n * To create a `TargetState`, use [[StateService.target]].\n *\n * ---\n *\n * This class wraps:\n *\n * 1) an identifier for a state\n * 2) a set of parameters\n * 3) and transition options\n * 4) the registered state object (the [[StateDeclaration]])\n *\n * Many UI-Router APIs such as [[StateService.go]] take a [[StateOrName]] argument which can\n * either be a *state object* (a [[StateDeclaration]] or [[StateObject]]) or a *state name* (a string).\n * The `TargetState` class normalizes those options.\n *\n * A `TargetState` may be valid (the state being targeted exists in the registry)\n * or invalid (the state being targeted is not registered).\n */\nexport class TargetState {\n private _definition: StateObject;\n private _params: RawParams;\n private _options: TransitionOptions;\n\n /**\n * The TargetState constructor\n *\n * Note: Do not construct a `TargetState` manually.\n * To create a `TargetState`, use the [[StateService.target]] factory method.\n *\n * @param _stateRegistry The StateRegistry to use to look up the _definition\n * @param _identifier An identifier for a state.\n * Either a fully-qualified state name, or the object used to define the state.\n * @param _params Parameters for the target state\n * @param _options Transition options.\n *\n * @internalapi\n */\n constructor(\n private _stateRegistry: StateRegistry,\n private _identifier: StateOrName,\n _params?: RawParams,\n _options?: TransitionOptions,\n ) {\n this._identifier = _identifier;\n this._params = extend({}, _params || {});\n this._options = extend({}, _options || {});\n this._definition = _stateRegistry.matcher.find(_identifier, this._options.relative);\n }\n\n /** The name of the state this object targets */\n name(): string {\n return this._definition && this._definition.name || this._identifier;\n }\n\n /** The identifier used when creating this TargetState */\n identifier(): StateOrName {\n return this._identifier;\n }\n\n /** The target parameter values */\n params(): RawParams {\n return this._params;\n }\n\n /** The internal state object (if it was found) */\n $state(): StateObject {\n return this._definition;\n }\n\n /** The internal state declaration (if it was found) */\n state(): StateDeclaration {\n return this._definition && this._definition.self;\n }\n\n /** The target options */\n options() {\n return this._options;\n }\n\n /** True if the target state was found */\n exists(): boolean {\n return !!(this._definition && this._definition.self);\n }\n\n /** True if the object is valid */\n valid(): boolean {\n return !this.error();\n }\n\n /** If the object is invalid, returns the reason why */\n error(): string {\n let base = this.options().relative;\n if (!this._definition && !!base) {\n let stateName = base.name ? base.name : base;\n return `Could not resolve '${this.name()}' from state '${stateName}'`;\n }\n if (!this._definition)\n return `No such state '${this.name()}'`;\n if (!this._definition.self)\n return `State '${this.name()}' has an invalid definition`;\n }\n\n toString() {\n return `'${this.name()}'${stringify(this.params())}`;\n }\n\n /** Returns true if the object has a state property that might be a state or state name */\n static isDef = (obj): obj is TargetStateDef =>\n obj && obj.state && (isString(obj.state) || isString(obj.state.name));\n\n /**\n * Returns a copy of this TargetState which targets a different state.\n * The new TargetState has the same parameter values and transition options.\n *\n * @param state The new state that should be targeted\n */\n withState(state: StateOrName): TargetState {\n return new TargetState(this._stateRegistry, state, this._params, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified parameter values.\n *\n * @param params the new parameter values to use\n * @param replace When false (default) the new parameter values will be merged with the current values.\n * When true the parameter values will be used instead of the current values.\n */\n withParams(params: RawParams, replace = false): TargetState {\n const newParams: RawParams = replace ? params : extend({}, this._params, params);\n return new TargetState(this._stateRegistry, this._identifier, newParams, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified Transition Options.\n *\n * @param options the new options to use\n * @param replace When false (default) the new options will be merged with the current options.\n * When true the options will be used instead of the current options.\n */\n withOptions(options: TransitionOptions, replace = false): TargetState {\n const newOpts = replace ? options : extend({}, this._options, options);\n return new TargetState(this._stateRegistry, this._identifier, this._params, newOpts);\n }\n}\n", + "/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { TransitionHookOptions, HookResult, TransitionHookPhase } from './interface';\nimport { defaults, noop, silentRejection } from '../common/common';\nimport { fnToString, maxLength } from '../common/strings';\nimport { isPromise } from '../common/predicates';\nimport { is, parse } from '../common/hof';\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { Rejection } from './rejectFactory';\nimport { TargetState } from '../state/targetState';\nimport { Transition } from './transition';\nimport { TransitionEventType } from './transitionEventType';\nimport { RegisteredHook } from './hookRegistry';\nimport { StateDeclaration } from '../state/interface';\n\nlet defaultOptions: TransitionHookOptions = {\n current: noop,\n transition: null,\n traceData: {},\n bind: null,\n};\n\nexport type GetResultHandler = (hook: TransitionHook) => ResultHandler;\nexport type GetErrorHandler = (hook: TransitionHook) => ErrorHandler;\n\nexport type ResultHandler = (result: HookResult) => Promise;\nexport type ErrorHandler = (error: any) => Promise;\n\n/** @hidden */\nexport class TransitionHook {\n type: TransitionEventType;\n constructor(private transition: Transition,\n private stateContext: StateDeclaration,\n private registeredHook: RegisteredHook,\n private options: TransitionHookOptions) {\n this.options = defaults(options, defaultOptions);\n this.type = registeredHook.eventType;\n }\n\n /**\n * These GetResultHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetResultHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static HANDLE_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) =>\n hook.handleHookResult(result);\n\n /**\n * If the result is a promise rejection, log it.\n * Otherwise, ignore the result.\n */\n static LOG_REJECTED_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) => {\n isPromise(result) && result.catch(err =>\n hook.logError(Rejection.normalize(err)));\n return undefined;\n }\n\n /**\n * These GetErrorHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetErrorHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static LOG_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n hook.logError(error);\n\n static REJECT_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n silentRejection(error);\n\n static THROW_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) => {\n throw error;\n }\n\n private isSuperseded = () =>\n this.type.hookPhase === TransitionHookPhase.RUN && !this.options.transition.isActive();\n\n logError(err): any {\n this.transition.router.stateService.defaultErrorHandler()(err);\n }\n\n invokeHook(): Promise | void {\n let hook = this.registeredHook;\n if (hook._deregistered) return;\n\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n let options = this.options;\n trace.traceHookInvocation(this, this.transition, options);\n\n const invokeCallback = () =>\n hook.callback.call(options.bind, this.transition, this.stateContext);\n\n const normalizeErr = err =>\n Rejection.normalize(err).toPromise();\n\n const handleError = err =>\n hook.eventType.getErrorHandler(this)(err);\n\n const handleResult = result =>\n hook.eventType.getResultHandler(this)(result);\n\n try {\n let result = invokeCallback();\n\n if (!this.type.synchronous && isPromise(result)) {\n return result.catch(normalizeErr)\n .then(handleResult, handleError);\n } else {\n return handleResult(result);\n }\n } catch (err) {\n // If callback throws (synchronously)\n return handleError(Rejection.normalize(err));\n } finally {\n if (hook.invokeLimit && ++hook.invokeCount >= hook.invokeLimit) {\n hook.deregister();\n }\n }\n }\n\n /**\n * This method handles the return value of a Transition Hook.\n *\n * A hook can return false (cancel), a TargetState (redirect),\n * or a promise (which may later resolve to false or a redirect)\n *\n * This also handles \"transition superseded\" -- when a new transition\n * was started while the hook was still running\n */\n handleHookResult(result: HookResult): Promise {\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n // Hook returned a promise\n if (isPromise(result)) {\n // Wait for the promise, then reprocess with the resulting value\n return result.then(val => this.handleHookResult(val));\n }\n\n trace.traceHookResult(result, this.transition, this.options);\n\n // Hook returned false\n if (result === false) {\n // Abort this Transition\n return Rejection.aborted(\"Hook aborted transition\").toPromise();\n }\n\n const isTargetState = is(TargetState);\n // hook returned a TargetState\n if (isTargetState(result)) {\n // Halt the current Transition and redirect (a new Transition) to the TargetState.\n return Rejection.redirected(result).toPromise();\n }\n }\n\n\n /**\n * Return a Rejection promise if the transition is no longer current due\n * to a stopped router (disposed), or a new transition has started and superseded this one.\n */\n private getNotCurrentRejection() {\n let router = this.transition.router;\n\n // The router is stopped\n if (router._disposed) {\n return Rejection.aborted(`UIRouter instance #${router.$id} has been stopped (disposed)`).toPromise();\n }\n\n if (this.transition._aborted) {\n return Rejection.aborted().toPromise();\n }\n\n // This transition is no longer current.\n // Another transition started while this hook was still running.\n if (this.isSuperseded()) {\n // Abort this transition\n return Rejection.superseded(this.options.current()).toPromise();\n }\n }\n\n toString() {\n let { options, registeredHook } = this;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = fnToString(registeredHook.callback);\n return `${event} context: ${context}, ${maxLength(200, name)}`;\n }\n\n /**\n * Chains together an array of TransitionHooks.\n *\n * Given a list of [[TransitionHook]] objects, chains them together.\n * Each hook is invoked after the previous one completes.\n *\n * #### Example:\n * ```js\n * var hooks: TransitionHook[] = getHooks();\n * let promise: Promise = TransitionHook.chain(hooks);\n *\n * promise.then(handleSuccess, handleError);\n * ```\n *\n * @param hooks the list of hooks to chain together\n * @param waitFor if provided, the chain is `.then()`'ed off this promise\n * @returns a `Promise` for sequentially invoking the hooks (in order)\n */\n static chain(hooks: TransitionHook[], waitFor?: Promise): Promise {\n // Chain the next hook off the previous\n const createHookChainR = (prev: Promise, nextHook: TransitionHook) =>\n prev.then(() => nextHook.invokeHook());\n return hooks.reduce(createHookChainR, waitFor || services.$q.when());\n }\n\n\n /**\n * Invokes all the provided TransitionHooks, in order.\n * Each hook's return value is checked.\n * If any hook returns a promise, then the rest of the hooks are chained off that promise, and the promise is returned.\n * If no hook returns a promise, then all hooks are processed synchronously.\n *\n * @param hooks the list of TransitionHooks to invoke\n * @param doneCallback a callback that is invoked after all the hooks have successfully completed\n *\n * @returns a promise for the async result, or the result of the callback\n */\n static invokeHooks(hooks: TransitionHook[], doneCallback: (result?: HookResult) => T): Promise | T {\n for (let idx = 0; idx < hooks.length; idx++) {\n let hookResult = hooks[idx].invokeHook();\n\n if (isPromise(hookResult)) {\n let remainingHooks = hooks.slice(idx + 1);\n\n return TransitionHook.chain(remainingHooks, hookResult)\n .then(doneCallback);\n }\n }\n\n return doneCallback();\n }\n\n /**\n * Run all TransitionHooks, ignoring their return value.\n */\n static runAllHooks(hooks: TransitionHook[]): void {\n hooks.forEach(hook => hook.invokeHook());\n }\n\n}\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport { extend, removeFrom, tail, values, identity, map } from \"../common/common\";\nimport {isString, isFunction} from \"../common/predicates\";\nimport {PathNode} from \"../path/pathNode\";\nimport {\n TransitionStateHookFn, TransitionHookFn, TransitionHookPhase, TransitionHookScope, IHookRegistry, PathType,\n} from \"./interface\"; // has or is using\n\nimport {\n HookRegOptions, HookMatchCriteria, TreeChanges,\n HookMatchCriterion, IMatchingNodes, HookFn,\n} from \"./interface\";\nimport {Glob} from \"../common/glob\";\nimport {StateObject} from \"../state/stateObject\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport { TransitionService } from \"./transitionService\";\n\n/**\n * Determines if the given state matches the matchCriteria\n *\n * @hidden\n *\n * @param state a State Object to test against\n * @param criterion\n * - If a string, matchState uses the string as a glob-matcher against the state name\n * - If an array (of strings), matchState uses each string in the array as a glob-matchers against the state name\n * and returns a positive match if any of the globs match.\n * - If a function, matchState calls the function with the state and returns true if the function's result is truthy.\n * @returns {boolean}\n */\nexport function matchState(state: StateObject, criterion: HookMatchCriterion) {\n let toMatch = isString(criterion) ? [criterion] : criterion;\n\n function matchGlobs(_state: StateObject) {\n let globStrings = toMatch;\n for (let i = 0; i < globStrings.length; i++) {\n let glob = new Glob(globStrings[i]);\n\n if ((glob && glob.matches(_state.name)) || (!glob && globStrings[i] === _state.name)) {\n return true;\n }\n }\n return false;\n }\n\n let matchFn = (isFunction(toMatch) ? toMatch : matchGlobs);\n return !!matchFn(state);\n}\n\n/**\n * @internalapi\n * The registration data for a registered transition hook\n */\nexport class RegisteredHook {\n priority: number;\n bind: any;\n invokeCount = 0;\n invokeLimit: number;\n _deregistered = false;\n\n constructor(public tranSvc: TransitionService,\n public eventType: TransitionEventType,\n public callback: HookFn,\n public matchCriteria: HookMatchCriteria,\n public removeHookFromRegistry: (hook: RegisteredHook) => void,\n options: HookRegOptions = {} as any) {\n this.priority = options.priority || 0;\n this.bind = options.bind || null;\n this.invokeLimit = options.invokeLimit;\n }\n\n /**\n * Gets the matching [[PathNode]]s\n *\n * Given an array of [[PathNode]]s, and a [[HookMatchCriterion]], returns an array containing\n * the [[PathNode]]s that the criteria matches, or `null` if there were no matching nodes.\n *\n * Returning `null` is significant to distinguish between the default\n * \"match-all criterion value\" of `true` compared to a `() => true` function,\n * when the nodes is an empty array.\n *\n * This is useful to allow a transition match criteria of `entering: true`\n * to still match a transition, even when `entering === []`. Contrast that\n * with `entering: (state) => true` which only matches when a state is actually\n * being entered.\n */\n private _matchingNodes(nodes: PathNode[], criterion: HookMatchCriterion): PathNode[] {\n if (criterion === true) return nodes;\n let matching = nodes.filter(node => matchState(node.state, criterion));\n return matching.length ? matching : null;\n }\n\n /**\n * Gets the default match criteria (all `true`)\n *\n * Returns an object which has all the criteria match paths as keys and `true` as values, i.e.:\n *\n * ```js\n * {\n * to: true,\n * from: true,\n * entering: true,\n * exiting: true,\n * retained: true,\n * }\n */\n private _getDefaultMatchCriteria(): HookMatchCriteria {\n return map(this.tranSvc._pluginapi._getPathTypes(), () => true);\n }\n\n /**\n * Gets matching nodes as [[IMatchingNodes]]\n *\n * Create a IMatchingNodes object from the TransitionHookTypes that is roughly equivalent to:\n *\n * ```js\n * let matches: IMatchingNodes = {\n * to: _matchingNodes([tail(treeChanges.to)], mc.to),\n * from: _matchingNodes([tail(treeChanges.from)], mc.from),\n * exiting: _matchingNodes(treeChanges.exiting, mc.exiting),\n * retained: _matchingNodes(treeChanges.retained, mc.retained),\n * entering: _matchingNodes(treeChanges.entering, mc.entering),\n * };\n * ```\n */\n private _getMatchingNodes(treeChanges: TreeChanges): IMatchingNodes {\n let criteria = extend(this._getDefaultMatchCriteria(), this.matchCriteria);\n let paths: PathType[] = values(this.tranSvc._pluginapi._getPathTypes());\n\n return paths.reduce((mn: IMatchingNodes, pathtype: PathType) => {\n // STATE scope criteria matches against every node in the path.\n // TRANSITION scope criteria matches against only the last node in the path\n let isStateHook = pathtype.scope === TransitionHookScope.STATE;\n let path = treeChanges[pathtype.name] || [];\n let nodes: PathNode[] = isStateHook ? path : [tail(path)];\n\n mn[pathtype.name] = this._matchingNodes(nodes, criteria[pathtype.name]);\n return mn;\n }, {} as IMatchingNodes);\n }\n\n /**\n * Determines if this hook's [[matchCriteria]] match the given [[TreeChanges]]\n *\n * @returns an IMatchingNodes object, or null. If an IMatchingNodes object is returned, its values\n * are the matching [[PathNode]]s for each [[HookMatchCriterion]] (to, from, exiting, retained, entering)\n */\n matches(treeChanges: TreeChanges): IMatchingNodes {\n let matches = this._getMatchingNodes(treeChanges);\n\n // Check if all the criteria matched the TreeChanges object\n let allMatched = values(matches).every(identity);\n return allMatched ? matches : null;\n }\n\n deregister() {\n this.removeHookFromRegistry(this);\n this._deregistered = true;\n }\n}\n\n/** @hidden Return a registration function of the requested type. */\nexport function makeEvent(registry: IHookRegistry, transitionService: TransitionService, eventType: TransitionEventType) {\n // Create the object which holds the registered transition hooks.\n const _registeredHooks = registry._registeredHooks = (registry._registeredHooks || {});\n const hooks = _registeredHooks[eventType.name] = [];\n const removeHookFn: (hook: RegisteredHook) => void = removeFrom(hooks);\n\n // Create hook registration function on the IHookRegistry for the event\n registry[eventType.name] = hookRegistrationFn;\n\n function hookRegistrationFn(matchObject, callback, options = {}) {\n const registeredHook = new RegisteredHook(transitionService, eventType, callback, matchObject, removeHookFn, options);\n hooks.push(registeredHook);\n return registeredHook.deregister.bind(registeredHook);\n }\n\n return hookRegistrationFn;\n}\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\nimport {extend, tail, assertPredicate, unnestR, identity} from \"../common/common\";\nimport {isArray} from \"../common/predicates\";\n\nimport {\n TransitionOptions, TransitionHookOptions, IHookRegistry, TreeChanges, IMatchingNodes,\n TransitionHookPhase, TransitionHookScope\n} from \"./interface\";\n\nimport {Transition} from \"./transition\";\nimport {TransitionHook} from \"./transitionHook\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TransitionService} from \"./transitionService\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * This class returns applicable TransitionHooks for a specific Transition instance.\n *\n * Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.\n * myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is\n * determined by the type of hook)\n *\n * The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.\n *\n * The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder\n * instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private\n * in the Transition class, so we must also provide the Transition's _treeChanges)\n *\n */\nexport class HookBuilder {\n constructor(private transition: Transition) { }\n\n buildHooksForPhase(phase: TransitionHookPhase): TransitionHook[] {\n let $transitions = this.transition.router.transitionService;\n return $transitions._pluginapi._getEvents(phase)\n .map(type => this.buildHooks(type))\n .reduce(unnestR, [])\n .filter(identity);\n }\n\n /**\n * Returns an array of newly built TransitionHook objects.\n *\n * - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].\n * - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)\n * - For each of the [[PathNode]]s, creates a TransitionHook\n *\n * @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.\n */\n buildHooks(hookType: TransitionEventType): TransitionHook[] {\n let transition = this.transition;\n let treeChanges = transition.treeChanges();\n\n // Find all the matching registered hooks for a given hook type\n let matchingHooks = this.getMatchingHooks(hookType, treeChanges);\n if (!matchingHooks) return [];\n\n let baseHookOptions = {\n transition: transition,\n current: transition.options().current\n };\n\n const makeTransitionHooks = (hook: RegisteredHook) => {\n // Fetch the Nodes that caused this hook to match.\n let matches: IMatchingNodes = hook.matches(treeChanges);\n // Select the PathNode[] that will be used as TransitionHook context objects\n let matchingNodes: PathNode[] = matches[hookType.criteriaMatchPath.name];\n\n // Return an array of HookTuples\n return matchingNodes.map(node => {\n let _options = extend({\n bind: hook.bind,\n traceData: { hookType: hookType.name, context: node }\n }, baseHookOptions);\n\n let state = hookType.criteriaMatchPath.scope === TransitionHookScope.STATE ? node.state.self : null;\n let transitionHook = new TransitionHook(transition, state, hook, _options);\n return { hook, node, transitionHook };\n });\n };\n\n return matchingHooks.map(makeTransitionHooks)\n .reduce(unnestR, [])\n .sort(tupleSort(hookType.reverseSort))\n .map(tuple => tuple.transitionHook);\n }\n\n /**\n * Finds all RegisteredHooks from:\n * - The Transition object instance hook registry\n * - The TransitionService ($transitions) global hook registry\n *\n * which matched:\n * - the eventType\n * - the matchCriteria (to, from, exiting, retained, entering)\n *\n * @returns an array of matched [[RegisteredHook]]s\n */\n public getMatchingHooks(hookType: TransitionEventType, treeChanges: TreeChanges): RegisteredHook[] {\n let isCreate = hookType.hookPhase === TransitionHookPhase.CREATE;\n\n // Instance and Global hook registries\n let $transitions = this.transition.router.transitionService;\n let registries = isCreate ? [ $transitions ] : [ this.transition, $transitions ];\n\n return registries.map((reg: IHookRegistry) => reg.getHooks(hookType.name)) // Get named hooks from registries\n .filter(assertPredicate(isArray, `broken event named: ${hookType.name}`)) // Sanity check\n .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array\n .filter(hook => hook.matches(treeChanges)); // Only those satisfying matchCriteria\n }\n}\n\ninterface HookTuple { hook: RegisteredHook, node: PathNode, transitionHook: TransitionHook }\n\n/**\n * A factory for a sort function for HookTuples.\n *\n * The sort function first compares the PathNode depth (how deep in the state tree a node is), then compares\n * the EventHook priority.\n *\n * @param reverseDepthSort a boolean, when true, reverses the sort order for the node depth\n * @returns a tuple sort function\n */\nfunction tupleSort(reverseDepthSort = false) {\n return function nodeDepthThenPriority(l: HookTuple, r: HookTuple): number {\n let factor = reverseDepthSort ? -1 : 1;\n let depthDelta = (l.node.state.path.length - r.node.state.path.length) * factor;\n return depthDelta !== 0 ? depthDelta : r.hook.priority - l.hook.priority;\n }\n}", + "/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, filter, map} from \"../common/common\";\nimport {isArray, isDefined} from \"../common/predicates\";\nimport {ParamTypeDefinition} from \"./interface\";\n\n/**\n * An internal class which implements [[ParamTypeDefinition]].\n *\n * A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.\n * When a param type definition is registered, an instance of this class is created internally.\n *\n * This class has naive implementations for all the [[ParamTypeDefinition]] methods.\n *\n * Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.\n *\n * #### Example:\n * ```js\n * var paramTypeDef = {\n * decode: function(val) { return parseInt(val, 10); },\n * encode: function(val) { return val && val.toString(); },\n * equals: function(a, b) { return this.is(a) && a === b; },\n * is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },\n * pattern: /\\d+/\n * }\n *\n * var paramType = new ParamType(paramTypeDef);\n * ```\n * @internalapi\n */\nexport class ParamType implements ParamTypeDefinition {\n /** @inheritdoc */\n pattern: RegExp = /.*/;\n /** The name/id of the parameter type */\n name: string;\n /** @inheritdoc */\n raw: boolean;\n /** @inheritdoc */\n dynamic: boolean;\n /** @inheritdoc */\n inherit = true;\n\n /**\n * @param def A configuration object which contains the custom type definition. The object's\n * properties will override the default methods and/or pattern in `ParamType`'s public interface.\n * @returns a new ParamType object\n */\n constructor(def: ParamTypeDefinition) {\n extend(this, def);\n }\n\n\n // consider these four methods to be \"abstract methods\" that should be overridden\n /** @inheritdoc */\n is(val: any, key?: string): boolean { return true; }\n /** @inheritdoc */\n encode(val: any, key?: string): (string|string[]) { return val; }\n /** @inheritdoc */\n decode(val: string, key?: string): any { return val; }\n /** @inheritdoc */\n equals(a: any, b: any): boolean { return a == b; }\n\n\n $subPattern() {\n let sub = this.pattern.toString();\n return sub.substr(1, sub.length - 2);\n }\n\n toString() {\n return `{ParamType:${this.name}}`;\n }\n\n /** Given an encoded string, or a decoded object, returns a decoded object */\n $normalize(val: any) {\n return this.is(val) ? val : this.decode(val);\n }\n\n /**\n * Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.\n * e.g.:\n * - urlmatcher pattern \"/path?{queryParam[]:int}\"\n * - url: \"/path?queryParam=1&queryParam=2\n * - $stateParams.queryParam will be [1, 2]\n * if `mode` is \"auto\", then\n * - url: \"/path?queryParam=1 will create $stateParams.queryParam: 1\n * - url: \"/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]\n */\n $asArray(mode: (boolean|\"auto\"), isSearch: boolean) {\n if (!mode) return this;\n if (mode === \"auto\" && !isSearch) throw new Error(\"'auto' array mode is for query parameters only\");\n return new ( ArrayType)(this, mode);\n }\n}\n\n/**\n * Wraps up a `ParamType` object to handle array values.\n * @internalapi\n */\nfunction ArrayType(type: ParamType, mode: (boolean|\"auto\")) {\n // Wrap non-array value as array\n function arrayWrap(val: any): any[] {\n return isArray(val) ? val : (isDefined(val) ? [ val ] : []);\n }\n\n // Unwrap array value for \"auto\" mode. Return undefined for empty array.\n function arrayUnwrap(val: any) {\n switch (val.length) {\n case 0: return undefined;\n case 1: return mode === \"auto\" ? val[0] : val;\n default: return val;\n }\n }\n\n // Wraps type (.is/.encode/.decode) functions to operate on each value of an array\n function arrayHandler(callback: (x: any) => any, allTruthyMode?: boolean) {\n return function handleArray(val: any) {\n if (isArray(val) && val.length === 0) return val;\n let arr = arrayWrap(val);\n let result = map(arr, callback);\n return (allTruthyMode === true) ? filter(result, x => !x).length === 0 : arrayUnwrap(result);\n };\n }\n\n // Wraps type (.equals) functions to operate on each value of an array\n function arrayEqualsHandler(callback: (l: any, r: any) => boolean) {\n return function handleArray(val1: any, val2: any) {\n let left = arrayWrap(val1), right = arrayWrap(val2);\n if (left.length !== right.length) return false;\n for (let i = 0; i < left.length; i++) {\n if (!callback(left[i], right[i])) return false;\n }\n return true;\n };\n }\n\n ['encode', 'decode', 'equals', '$normalize'].forEach(name => {\n var paramTypeFn = type[name].bind(type);\n var wrapperFn: Function = name === 'equals' ? arrayEqualsHandler : arrayHandler;\n this[name] = wrapperFn(paramTypeFn);\n });\n\n extend(this, {\n dynamic: type.dynamic,\n name: type.name,\n pattern: type.pattern,\n inherit: type.inherit,\n is: arrayHandler(type.is.bind(type), true),\n $arrayMode: mode\n });\n}\n", + "/**\n * @coreapi\n * @module params\n */ /** for typedoc */\nimport { extend, filter, map, allTrueR } from \"../common/common\";\nimport { prop } from \"../common/hof\";\nimport { isInjectable, isDefined, isString, isArray, isUndefined } from \"../common/predicates\";\nimport { RawParams, ParamDeclaration } from \"../params/interface\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypes } from \"./paramTypes\";\nimport { UrlMatcherFactory } from \"../url/urlMatcherFactory\";\n\n/** @hidden */ let hasOwn = Object.prototype.hasOwnProperty;\n/** @hidden */ let isShorthand = (cfg: ParamDeclaration) =>\n [\"value\", \"type\", \"squash\", \"array\", \"dynamic\"].filter(hasOwn.bind(cfg || {})).length === 0;\n\n/** @internalapi */\nexport enum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\n\n/** @hidden */\nfunction unwrapShorthand(cfg: ParamDeclaration): ParamDeclaration {\n cfg = isShorthand(cfg) && { value: cfg } as any || cfg;\n\n getStaticDefaultValue['__cacheable'] = true;\n function getStaticDefaultValue() {\n return cfg.value;\n }\n\n return extend(cfg, {\n $$fn: isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue,\n });\n}\n\n/** @hidden */\nfunction getType(cfg: ParamDeclaration, urlType: ParamType, location: DefType, id: string, paramTypes: ParamTypes) {\n if (cfg.type && urlType && urlType.name !== 'string') throw new Error(`Param '${id}' has two type configurations.`);\n if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type as string)) return paramTypes.type(cfg.type as string);\n if (urlType) return urlType;\n if (!cfg.type) {\n let type = location === DefType.CONFIG ? \"any\" :\n location === DefType.PATH ? \"path\" :\n location === DefType.SEARCH ? \"query\" : \"string\";\n return paramTypes.type(type);\n }\n return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type as string);\n}\n\n/**\n * @internalapi\n * returns false, true, or the squash value to indicate the \"default parameter url squash policy\".\n */\nfunction getSquashPolicy(config: ParamDeclaration, isOptional: boolean, defaultPolicy: (boolean|string)) {\n let squash = config.squash;\n if (!isOptional || squash === false) return false;\n if (!isDefined(squash) || squash == null) return defaultPolicy;\n if (squash === true || isString(squash)) return squash;\n throw new Error(`Invalid squash policy: '${squash}'. Valid policies: false, true, or arbitrary string`);\n}\n\n/** @internalapi */\nfunction getReplace(config: ParamDeclaration, arrayMode: boolean, isOptional: boolean, squash: (string|boolean)) {\n let replace: any, configuredKeys: string[], defaultPolicy = [\n {from: \"\", to: (isOptional || arrayMode ? undefined : \"\")},\n {from: null, to: (isOptional || arrayMode ? undefined : \"\")},\n ];\n replace = isArray(config.replace) ? config.replace : [];\n if (isString(squash)) replace.push({ from: squash, to: undefined });\n configuredKeys = map(replace, prop(\"from\"));\n return filter(defaultPolicy, item => configuredKeys.indexOf(item.from) === -1).concat(replace);\n}\n\n\n/** @internalapi */\nexport class Param {\n id: string;\n type: ParamType;\n location: DefType;\n isOptional: boolean;\n dynamic: boolean;\n raw: boolean;\n squash: (boolean|string);\n replace: [{ to: any, from: any }];\n inherit: boolean;\n array: boolean;\n config: any;\n /** Cache the default value if it is a static value */\n _defaultValueCache: {\n defaultValue: any,\n };\n\n constructor(id: string, type: ParamType, config: ParamDeclaration, location: DefType, urlMatcherFactory: UrlMatcherFactory) {\n config = unwrapShorthand(config);\n type = getType(config, type, location, id, urlMatcherFactory.paramTypes);\n let arrayMode = getArrayMode();\n type = arrayMode ? type.$asArray(arrayMode, location === DefType.SEARCH) : type;\n let isOptional = config.value !== undefined || location === DefType.SEARCH;\n let dynamic = isDefined(config.dynamic) ? !!config.dynamic : !!type.dynamic;\n let raw = isDefined(config.raw) ? !!config.raw : !!type.raw;\n let squash = getSquashPolicy(config, isOptional, urlMatcherFactory.defaultSquashPolicy());\n let replace = getReplace(config, arrayMode, isOptional, squash);\n let inherit = isDefined(config.inherit) ? !!config.inherit : !!type.inherit;\n\n // array config: param name (param[]) overrides default settings. explicit config overrides param name.\n function getArrayMode() {\n let arrayDefaults = { array: (location === DefType.SEARCH ? \"auto\" : false) };\n let arrayParamNomenclature = id.match(/\\[\\]$/) ? { array: true } : {};\n return extend(arrayDefaults, arrayParamNomenclature, config).array;\n }\n\n extend(this, {id, type, location, isOptional, dynamic, raw, squash, replace, inherit, array: arrayMode, config });\n }\n\n isDefaultValue(value: any): boolean {\n return this.isOptional && this.type.equals(this.value(), value);\n }\n\n /**\n * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the\n * default value, which may be the result of an injectable function.\n */\n value(value?: any): any {\n /**\n * [Internal] Get the default value of a parameter, which may be an injectable function.\n */\n const getDefaultValue = () => {\n if (this._defaultValueCache) return this._defaultValueCache.defaultValue;\n\n if (!services.$injector) throw new Error(\"Injectable functions cannot be called at configuration time\");\n\n let defaultValue = services.$injector.invoke(this.config.$$fn);\n\n if (defaultValue !== null && defaultValue !== undefined && !this.type.is(defaultValue))\n throw new Error(`Default value (${defaultValue}) for parameter '${this.id}' is not an instance of ParamType (${this.type.name})`);\n\n if (this.config.$$fn['__cacheable']) {\n this._defaultValueCache = { defaultValue };\n }\n\n return defaultValue;\n };\n\n const replaceSpecialValues = (val: any) => {\n for (let tuple of this.replace) {\n if (tuple.from === val) return tuple.to;\n }\n return val;\n };\n\n value = replaceSpecialValues(value);\n\n return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);\n }\n\n isSearch(): boolean {\n return this.location === DefType.SEARCH;\n }\n\n validates(value: any): boolean {\n // There was no parameter value, but the param is optional\n if ((isUndefined(value) || value === null) && this.isOptional) return true;\n\n // The value was not of the correct ParamType, and could not be decoded to the correct ParamType\n const normalized = this.type.$normalize(value);\n if (!this.type.is(normalized)) return false;\n\n // The value was of the correct type, but when encoded, did not match the ParamType's regexp\n const encoded = this.type.encode(normalized);\n return !(isString(encoded) && !this.type.pattern.exec( encoded));\n }\n\n toString() {\n return `{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`;\n }\n\n static values(params: Param[], values: RawParams = {}): RawParams {\n const paramValues = {} as RawParams;\n for (let param of params) {\n paramValues[param.id] = param.value(values[param.id]);\n }\n return paramValues;\n }\n\n /**\n * Finds [[Param]] objects which have different param values\n *\n * Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects\n *\n * @param params: The list of Param objects to filter\n * @param values1: The first set of parameter values\n * @param values2: the second set of parameter values\n *\n * @returns any Param objects whose values were different between values1 and values2\n */\n static changed(params: Param[], values1: RawParams = {}, values2: RawParams = {}): Param[] {\n return params.filter(param => !param.type.equals(values1[param.id], values2[param.id]));\n }\n\n /**\n * Checks if two param value objects are equal (for a set of [[Param]] objects)\n *\n * @param params The list of [[Param]] objects to check\n * @param values1 The first set of param values\n * @param values2 The second set of param values\n *\n * @returns true if the param values in values1 and values2 are equal\n */\n static equals(params: Param[], values1 = {}, values2 = {}): boolean {\n return Param.changed(params, values1, values2).length === 0;\n }\n\n /** Returns true if a the parameter values are valid, according to the Param definitions */\n static validates(params: Param[], values: RawParams = {}): boolean {\n return params.map(param => param.validates(values[param.id])).reduce(allTrueR, true);\n }\n}", + "/** @module path */ /** for typedoc */\nimport {extend, applyPairs, find, allTrueR, pairs, arrayTuples} from \"../common/common\";\nimport {propEq} from \"../common/hof\";\nimport {StateObject} from \"../state/stateObject\";\nimport {RawParams} from \"../params/interface\";\nimport {Param} from \"../params/param\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {ViewConfig} from \"../view/interface\";\n\n/**\n * @internalapi\n *\n * A node in a [[TreeChanges]] path\n *\n * For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.\n * Each PathNode corresponds to a state being entered, exited, or retained.\n * The stateful information includes parameter values and resolve data.\n */\nexport class PathNode {\n /** The state being entered, exited, or retained */\n public state: StateObject;\n /** The parameters declared on the state */\n public paramSchema: Param[];\n /** The parameter values that belong to the state */\n public paramValues: { [key: string]: any };\n /** The individual (stateful) resolvable objects that belong to the state */\n public resolvables: Resolvable[];\n /** The state's declared view configuration objects */\n public views: ViewConfig[];\n\n /** Creates a copy of a PathNode */\n constructor(node: PathNode);\n /** Creates a new (empty) PathNode for a State */\n constructor(state: StateObject);\n constructor(stateOrNode: any) {\n if (stateOrNode instanceof PathNode) {\n let node: PathNode = stateOrNode;\n this.state = node.state;\n this.paramSchema = node.paramSchema.slice();\n this.paramValues = extend({}, node.paramValues);\n this.resolvables = node.resolvables.slice();\n this.views = node.views && node.views.slice();\n } else {\n let state: StateObject = stateOrNode;\n this.state = state;\n this.paramSchema = state.parameters({ inherit: false });\n this.paramValues = {};\n this.resolvables = state.resolvables.map(res => res.clone());\n }\n }\n\n /** Sets [[paramValues]] for the node, from the values of an object hash */\n applyRawParams(params: RawParams): PathNode {\n const getParamVal = (paramDef: Param) => [ paramDef.id, paramDef.value(params[paramDef.id]) ];\n this.paramValues = this.paramSchema.reduce((memo, pDef) => applyPairs(memo, getParamVal(pDef)), {});\n return this;\n }\n\n /** Gets a specific [[Param]] metadata that belongs to the node */\n parameter(name: string): Param {\n return find(this.paramSchema, propEq(\"id\", name));\n }\n\n /**\n * @returns true if the state and parameter values for another PathNode are\n * equal to the state and param values for this PathNode\n */\n equals(node: PathNode, paramsFn?: GetParamsFn): boolean {\n const diff = this.diff(node, paramsFn);\n return diff && diff.length === 0;\n }\n\n /**\n * Finds Params with different parameter values on another PathNode.\n *\n * Given another node (of the same state), finds the parameter values which differ.\n * Returns the [[Param]] (schema objects) whose parameter values differ.\n *\n * Given another node for a different state, returns `false`\n *\n * @param node The node to compare to\n * @param paramsFn A function that returns which parameters should be compared.\n * @returns The [[Param]]s which differ, or null if the two nodes are for different states\n */\n diff(node: PathNode, paramsFn?: GetParamsFn): Param[] | false {\n if (this.state !== node.state) return false;\n\n const params: Param[] = paramsFn ? paramsFn(this) : this.paramSchema;\n return Param.changed(params, this.paramValues, node.paramValues);\n }\n\n /** Returns a clone of the PathNode */\n static clone(node: PathNode) {\n return new PathNode(node);\n }\n}\n\n/** @hidden */\nexport type GetParamsFn = (pathNode: PathNode) => Param[];", + "/** @module path */ /** for typedoc */\n\nimport {\n extend, find, pick, omit, tail, mergeR, values, unnestR, Predicate, inArray, arrayTuples,\n} from \"../common/common\";\nimport {prop, propEq, not} from \"../common/hof\";\n\nimport {RawParams} from \"../params/interface\";\nimport {TreeChanges} from \"../transition/interface\";\nimport {ViewConfig} from \"../view/interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nimport {StateObject} from \"../state/stateObject\";\nimport {TargetState} from \"../state/targetState\";\nimport {GetParamsFn, PathNode} from \"./pathNode\";\nimport {ViewService} from \"../view/view\";\nimport { Param } from '../params/param';\nimport { StateRegistry } from '../state';\n\n/**\n * This class contains functions which convert TargetStates, Nodes and paths from one type to another.\n */\nexport class PathUtils {\n\n constructor() { }\n\n /** Given a PathNode[], create an TargetState */\n static makeTargetState(registry: StateRegistry, path: PathNode[]): TargetState {\n let state = tail(path).state;\n return new TargetState(registry, state, path.map(prop(\"paramValues\")).reduce(mergeR, {}), {});\n }\n\n static buildPath(targetState: TargetState) {\n let toParams = targetState.params();\n return targetState.$state().path.map(state => new PathNode(state).applyRawParams(toParams));\n }\n\n /** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */\n static buildToPath(fromPath: PathNode[], targetState: TargetState): PathNode[] {\n let toPath: PathNode[] = PathUtils.buildPath(targetState);\n if (targetState.options().inherit) {\n return PathUtils.inheritParams(fromPath, toPath, Object.keys(targetState.params()));\n }\n return toPath;\n }\n\n /**\n * Creates ViewConfig objects and adds to nodes.\n *\n * On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state\n */\n static applyViewConfigs($view: ViewService, path: PathNode[], states: StateObject[]) {\n // Only apply the viewConfigs to the nodes for the given states\n path.filter(node => inArray(states, node.state)).forEach(node => {\n let viewDecls: _ViewDeclaration[] = values(node.state.views || {});\n let subPath = PathUtils.subPath(path, n => n === node);\n let viewConfigs: ViewConfig[][] = viewDecls.map(view => $view.createViewConfig(subPath, view));\n node.views = viewConfigs.reduce(unnestR, []);\n });\n }\n\n /**\n * Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath\n *\n * For a parameter in a node to be inherited from the from path:\n * - The toPath's node must have a matching node in the fromPath (by state).\n * - The parameter name must not be found in the toKeys parameter array.\n *\n * Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some\n * caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,\n * it is not inherited from the fromPath.\n */\n static inheritParams(fromPath: PathNode[], toPath: PathNode[], toKeys: string[] = []): PathNode[] {\n function nodeParamVals(path: PathNode[], state: StateObject): RawParams {\n let node: PathNode = find(path, propEq('state', state));\n return extend({}, node && node.paramValues);\n }\n\n let noInherit = fromPath.map(node => node.paramSchema)\n .reduce(unnestR, [])\n .filter(param => !param.inherit)\n .map(prop('id'));\n\n /**\n * Given an [[PathNode]] \"toNode\", return a new [[PathNode]] with param values inherited from the\n * matching node in fromPath. Only inherit keys that aren't found in \"toKeys\" from the node in \"fromPath\"\"\n */\n function makeInheritedParamsNode(toNode: PathNode): PathNode {\n // All param values for the node (may include default key/vals, when key was not found in toParams)\n let toParamVals = extend({}, toNode && toNode.paramValues);\n // limited to only those keys found in toParams\n let incomingParamVals = pick(toParamVals, toKeys);\n toParamVals = omit(toParamVals, toKeys);\n let fromParamVals = omit(nodeParamVals(fromPath, toNode.state) || {}, noInherit);\n // extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals\n let ownParamVals: RawParams = extend(toParamVals, fromParamVals, incomingParamVals);\n return new PathNode(toNode.state).applyRawParams(ownParamVals);\n }\n\n // The param keys specified by the incoming toParams\n return toPath.map(makeInheritedParamsNode);\n }\n\n static nonDynamicParams = (node: PathNode): Param[] =>\n node.state.parameters({ inherit: false })\n .filter(param => !param.dynamic);\n\n /**\n * Computes the tree changes (entering, exiting) between a fromPath and toPath.\n */\n static treeChanges(fromPath: PathNode[], toPath: PathNode[], reloadState: StateObject): TreeChanges {\n let keep = 0, max = Math.min(fromPath.length, toPath.length);\n\n const nodesMatch = (node1: PathNode, node2: PathNode) =>\n node1.equals(node2, PathUtils.nonDynamicParams);\n\n while (keep < max && fromPath[keep].state !== reloadState && nodesMatch(fromPath[keep], toPath[keep])) {\n keep++;\n }\n\n /** Given a retained node, return a new node which uses the to node's param values */\n function applyToParams(retainedNode: PathNode, idx: number): PathNode {\n let cloned = PathNode.clone(retainedNode);\n cloned.paramValues = toPath[idx].paramValues;\n return cloned;\n }\n\n let from: PathNode[], retained: PathNode[], exiting: PathNode[], entering: PathNode[], to: PathNode[];\n\n from = fromPath;\n retained = from.slice(0, keep);\n exiting = from.slice(keep);\n\n // Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped\n let retainedWithToParams = retained.map(applyToParams);\n entering = toPath.slice(keep);\n to = (retainedWithToParams).concat(entering);\n\n return { from, to, retained, exiting, entering };\n }\n\n /**\n * Returns a new path which is: the subpath of the first path which matches the second path.\n *\n * The new path starts from root and contains any nodes that match the nodes in the second path.\n * It stops before the first non-matching node.\n *\n * Nodes are compared using their state property and their parameter values.\n * If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.\n *\n * @param pathA the first path\n * @param pathB the second path\n * @param paramsFn a function which returns the parameters to consider when comparing\n *\n * @returns an array of PathNodes from the first path which match the nodes in the second path\n */\n static matching(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): PathNode[] {\n let done = false;\n let tuples: PathNode[][] = arrayTuples(pathA, pathB);\n return tuples.reduce((matching, [nodeA, nodeB]) => {\n done = done || !nodeA.equals(nodeB, paramsFn);\n return done ? matching : matching.concat(nodeA);\n }, []);\n }\n\n /**\n * Returns true if two paths are identical.\n *\n * @param pathA\n * @param pathB\n * @param paramsFn a function which returns the parameters to consider when comparing\n * @returns true if the the states and parameter values for both paths are identical\n */\n static equals(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): boolean {\n return pathA.length === pathB.length &&\n PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length;\n }\n\n /**\n * Return a subpath of a path, which stops at the first matching node\n *\n * Given an array of nodes, returns a subset of the array starting from the first node,\n * stopping when the first node matches the predicate.\n *\n * @param path a path of [[PathNode]]s\n * @param predicate a [[Predicate]] fn that matches [[PathNode]]s\n * @returns a subpath up to the matching node, or undefined if no match is found\n */\n static subPath(path: PathNode[], predicate: Predicate): PathNode[] {\n let node = find(path, predicate);\n let elementIdx = path.indexOf(node);\n return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);\n }\n\n /** Gets the raw parameter values from a path */\n static paramValues = (path: PathNode[]) =>\n path.reduce((acc, node) => extend(acc, node.paramValues), {});\n}\n", + "/**\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {extend, equals, inArray, identity} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {trace} from \"../common/trace\";\nimport {ResolvePolicy, ResolvableLiteral, resolvePolicies} from \"./interface\";\n\nimport {ResolveContext} from \"./resolveContext\";\nimport {stringify} from \"../common/strings\";\nimport {isFunction, isObject} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport { isNullOrUndefined } from '../common';\n\n\n// TODO: explicitly make this user configurable\nexport let defaultResolvePolicy: ResolvePolicy = {\n when: \"LAZY\",\n async: \"WAIT\"\n};\n\n/**\n * The basic building block for the resolve system.\n *\n * Resolvables encapsulate a state's resolve's resolveFn, the resolveFn's declared dependencies, the wrapped (.promise),\n * and the unwrapped-when-complete (.data) result of the resolveFn.\n *\n * Resolvable.get() either retrieves the Resolvable's existing promise, or else invokes resolve() (which invokes the\n * resolveFn) and returns the resulting promise.\n *\n * Resolvable.get() and Resolvable.resolve() both execute within a context path, which is passed as the first\n * parameter to those fns.\n */\nexport class Resolvable implements ResolvableLiteral {\n token: any;\n policy: ResolvePolicy;\n resolveFn: Function;\n deps: any[];\n\n data: any;\n resolved: boolean = false;\n promise: Promise = undefined;\n\n /** This constructor creates a Resolvable copy */\n constructor(resolvable: Resolvable)\n\n /** This constructor creates a new Resolvable from the plain old [[ResolvableLiteral]] javascript object */\n constructor(resolvable: ResolvableLiteral)\n\n /**\n * This constructor creates a new `Resolvable`\n *\n * #### Example:\n * ```js\n * var resolvable1 = new Resolvable('mytoken', http => http.get('foo.json').toPromise(), [Http]);\n *\n * var resolvable2 = new Resolvable(UserService, dep => new UserService(dep.data), [SomeDependency]);\n *\n * var resolvable1Clone = new Resolvable(resolvable1);\n * ```\n *\n * @param token The new resolvable's injection token, such as `\"userList\"` (a string) or `UserService` (a class).\n * When this token is used during injection, the resolved value will be injected.\n * @param resolveFn The function that returns the resolved value, or a promise for the resolved value\n * @param deps An array of dependencies, which will be injected into the `resolveFn`\n * @param policy the [[ResolvePolicy]] defines when and how the Resolvable is processed\n * @param data Pre-resolved data. If the resolve value is already known, it may be provided here.\n */\n constructor(token: any, resolveFn: Function, deps?: any[], policy?: ResolvePolicy, data?: any)\n constructor(arg1: any, resolveFn?: Function, deps?: any[], policy?: ResolvePolicy, data?: any) {\n if (arg1 instanceof Resolvable) {\n extend(this, arg1);\n } else if (isFunction(resolveFn)) {\n if (isNullOrUndefined(arg1)) throw new Error(\"new Resolvable(): token argument is required\");\n if (!isFunction(resolveFn)) throw new Error(\"new Resolvable(): resolveFn argument must be a function\");\n\n this.token = arg1;\n this.policy = policy;\n this.resolveFn = resolveFn;\n this.deps = deps || [];\n\n this.data = data;\n this.resolved = data !== undefined;\n this.promise = this.resolved ? services.$q.when(this.data) : undefined;\n } else if (isObject(arg1) && arg1.token && isFunction(arg1.resolveFn)) {\n let literal = arg1;\n return new Resolvable(literal.token, literal.resolveFn, literal.deps, literal.policy, literal.data);\n }\n }\n\n getPolicy(state: StateObject): ResolvePolicy {\n let thisPolicy = this.policy || {};\n let statePolicy = state && state.resolvePolicy || {};\n return {\n when: thisPolicy.when || statePolicy.when || defaultResolvePolicy.when,\n async: thisPolicy.async || statePolicy.async || defaultResolvePolicy.async,\n };\n }\n\n /**\n * Asynchronously resolve this Resolvable's data\n *\n * Given a ResolveContext that this Resolvable is found in:\n * Wait for this Resolvable's dependencies, then invoke this Resolvable's function\n * and update the Resolvable's state\n */\n resolve(resolveContext: ResolveContext, trans?: Transition) {\n let $q = services.$q;\n\n // Gets all dependencies from ResolveContext and wait for them to be resolved\n const getResolvableDependencies = () =>\n $q.all(resolveContext.getDependencies(this).map(resolvable =>\n resolvable.get(resolveContext, trans))) as Promise;\n\n // Invokes the resolve function passing the resolved dependencies as arguments\n const invokeResolveFn = (resolvedDeps: any[]) =>\n this.resolveFn.apply(null, resolvedDeps);\n\n /**\n * For RXWAIT policy:\n *\n * Given an observable returned from a resolve function:\n * - enables .cache() mode (this allows multicast subscribers)\n * - then calls toPromise() (this triggers subscribe() and thus fetches)\n * - Waits for the promise, then return the cached observable (not the first emitted value).\n */\n const waitForRx = (observable$: any) => {\n let cached = observable$.cache(1);\n return cached.take(1).toPromise().then(() => cached);\n };\n\n // If the resolve policy is RXWAIT, wait for the observable to emit something. otherwise pass through.\n let node: PathNode = resolveContext.findNode(this);\n let state: StateObject = node && node.state;\n let maybeWaitForRx = this.getPolicy(state).async === \"RXWAIT\" ? waitForRx : identity;\n\n // After the final value has been resolved, update the state of the Resolvable\n const applyResolvedValue = (resolvedValue: any) => {\n this.data = resolvedValue;\n this.resolved = true;\n trace.traceResolvableResolved(this, trans);\n return this.data;\n };\n\n // Sets the promise property first, then getsResolvableDependencies in the context of the promise chain. Always waits one tick.\n return this.promise = $q.when()\n .then(getResolvableDependencies)\n .then(invokeResolveFn)\n .then(maybeWaitForRx)\n .then(applyResolvedValue);\n }\n\n /**\n * Gets a promise for this Resolvable's data.\n *\n * Fetches the data and returns a promise.\n * Returns the existing promise if it has already been fetched once.\n */\n get(resolveContext: ResolveContext, trans?: Transition): Promise {\n return this.promise || this.resolve(resolveContext, trans);\n }\n\n toString() {\n return `Resolvable(token: ${stringify(this.token)}, requires: [${this.deps.map(stringify)}])`;\n }\n\n clone(): Resolvable {\n return new Resolvable(this);\n }\n \n static fromData = (token: any, data: any) => \n new Resolvable(token, () => data, null, null, data);\n}\n", + "/**\n * # The Resolve subsystem\n *\n * This subsystem is an asynchronous, hierarchical Dependency Injection system.\n *\n * Typically, resolve is configured on a state using a [[StateDeclaration.resolve]] declaration.\n *\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {Resolvable} from \"./resolvable\";\n\n/**\n * An interface which is similar to an Angular 2 `Provider`\n */\nexport interface ProviderLike {\n provide: any,\n useClass?: any,\n useFactory?: Function,\n useValue?: any,\n useExisting?: any,\n deps?: any[]\n}\n\n/**\n * A plain object used to describe a [[Resolvable]]\n *\n * These objects may be used in the [[StateDeclaration.resolve]] array to declare\n * async data that the state or substates require.\n *\n * #### Example:\n * ```js\n *\n * var state = {\n * name: 'main',\n * resolve: [\n * { token: 'myData', deps: [MyDataApi], resolveFn: (myDataApi) => myDataApi.getData() },\n * ],\n * }\n * ```\n */\nexport interface ResolvableLiteral {\n /**\n * A Dependency Injection token\n *\n * This Resolvable's DI token.\n * The Resolvable will be injectable elsewhere using the token.\n */\n token: any;\n\n /**\n * A function which fetches the Resolvable's data\n *\n * A function which returns one of:\n *\n * - The resolved value (synchronously)\n * - A promise for the resolved value\n * - An Observable of the resolved value(s)\n *\n * This function will be provided the dependencies listed in [[deps]] as its arguments.\n * The resolve system will asynchronously fetch the dependencies before invoking this function.\n */\n resolveFn: Function;\n\n /**\n * Defines the Resolve Policy\n *\n * A policy that defines when to invoke the resolve,\n * and whether to wait for async and unwrap the data\n */\n policy?: ResolvePolicy;\n\n /**\n * The Dependency Injection tokens\n *\n * This is an array of Dependency Injection tokens for the dependencies of the [[resolveFn]].\n *\n * The DI tokens are references to other `Resolvables`, or to other\n * services from the native DI system.\n */\n deps?: any[];\n\n /** Pre-resolved data. */\n data?: any\n}\n\n/**\n * Defines how a resolve is processed during a transition\n *\n * This object is the [[StateDeclaration.resolvePolicy]] property.\n *\n * #### Example:\n * ```js\n * // Fetched when the resolve's state is being entered.\n * // Wait for the promise to resolve.\n * var policy1 = { when: \"LAZY\", async: \"WAIT\" }\n *\n * // Fetched when the Transition is starting.\n * // Do not wait for the returned promise to resolve.\n * // Inject the raw promise/value\n * var policy2 = { when: \"EAGER\", async: \"NOWAIT\" }\n * ```\n *\n * The policy for a given Resolvable is merged from three sources (highest priority first):\n *\n * - 1) Individual resolve definition\n * - 2) State definition\n * - 3) Global default\n *\n * #### Example:\n * ```js\n * // Wait for an Observable to emit one item.\n * // Since `wait` is not specified, it uses the `wait`\n * // policy defined on the state, or the global default\n * // if no `wait` policy is defined on the state\n * var myResolvablePolicy = { async: \"RXWAIT\" }\n * ```\n */\nexport interface ResolvePolicy {\n /**\n * Defines when a Resolvable is resolved (fetched) during a transition\n *\n * - `LAZY` (default)\n * - Resolved as the resolve's state is being entered\n * - `EAGER`\n * - Resolved as the transition is starting\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched when each state is entered.\n * All of `main` resolves are processed before fetching `main.home` resolves.\n * ```js\n * var state = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n *\n * var state = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n * ```\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched at the same time when the transition starts.\n * This happens earlier in the lifecycle than when states are entered.\n * All of the `main` and `main.home` resolves are fetched as soon as possible.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n *\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n * ```\n */\n when?: PolicyWhen;\n\n /**\n * Determines the unwrapping behavior of asynchronous resolve values.\n *\n * - `WAIT` (default)\n * - If a promise is returned from the resolveFn, wait for the promise before proceeding\n * - The unwrapped value from the promise\n * - `NOWAIT`\n * - If a promise is returned from the resolve, do not wait for the promise.\n * - Any other value returned is wrapped in a promise.\n * - The promise will not be unwrapped.\n * - The promise itself will be provided when the resolve is injected or bound elsewhere.\n * - `RXWAIT`\n * - When an Observable is returned from the resolveFn, wait until the Observable emits at least one item.\n * - The Observable item will not be unwrapped.\n * - The Observable stream itself will be provided when the resolve is injected or bound elsewhere.\n *\n * #### Example:\n * The `Transition` will not wait for the resolve promise(s) from `main` to settle before continuing.\n * Resolves for `main` will be provided to components wrapped in a `Promise`.\n *\n * The `Transition` will wait for the `main.home` resolve promises.\n * Resolved values will be unwrapped before being provided to components.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { async: 'NOWAIT' },\n * }\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { async: 'WAIT' }, // default\n * }\n * ```\n */\n async?: PolicyAsync;\n}\n\nexport type PolicyWhen = \"LAZY\" | \"EAGER\" ;\nexport type PolicyAsync = \"WAIT\" | \"NOWAIT\" | \"RXWAIT\" ;\n\n/** @internalapi */\nexport let resolvePolicies = {\n when: {\n LAZY: \"LAZY\",\n EAGER: \"EAGER\"\n },\n async: {\n WAIT: \"WAIT\",\n NOWAIT: \"NOWAIT\",\n RXWAIT: \"RXWAIT\"\n }\n};\n", + "/** @module resolve */\n/** for typedoc */\nimport { find, tail, uniqR, unnestR, inArray } from \"../common/common\";\nimport { propEq, not } from \"../common/hof\";\nimport { trace } from \"../common/trace\";\nimport { services, $InjectorLike } from \"../common/coreservices\";\nimport { resolvePolicies, PolicyWhen, ResolvePolicy } from \"./interface\";\nimport { PathNode } from \"../path/pathNode\";\nimport { Resolvable } from \"./resolvable\";\nimport { StateObject } from \"../state/stateObject\";\nimport { PathUtils } from \"../path/pathFactory\";\nimport { stringify } from \"../common/strings\";\nimport { Transition } from \"../transition/transition\";\nimport { UIInjector } from \"../interface\";\nimport { isUndefined } from '../common';\n\nconst whens = resolvePolicies.when;\nconst ALL_WHENS = [whens.EAGER, whens.LAZY];\nconst EAGER_WHENS = [whens.EAGER];\n\nexport const NATIVE_INJECTOR_TOKEN: string = \"Native Injector\";\n\n/**\n * Encapsulates Dependency Injection for a path of nodes\n *\n * UI-Router states are organized as a tree.\n * A nested state has a path of ancestors to the root of the tree.\n * When a state is being activated, each element in the path is wrapped as a [[PathNode]].\n * A `PathNode` is a stateful object that holds things like parameters and resolvables for the state being activated.\n *\n * The ResolveContext closes over the [[PathNode]]s, and provides DI for the last node in the path.\n */\nexport class ResolveContext {\n _injector: UIInjector;\n\n constructor(private _path: PathNode[]) { }\n\n /** Gets all the tokens found in the resolve context, de-duplicated */\n getTokens(): any[] {\n return this._path.reduce((acc, node) => acc.concat(node.resolvables.map(r => r.token)), []).reduce(uniqR, []);\n }\n\n /**\n * Gets the Resolvable that matches the token\n *\n * Gets the last Resolvable that matches the token in this context, or undefined.\n * Throws an error if it doesn't exist in the ResolveContext\n */\n getResolvable(token: any): Resolvable {\n let matching = this._path.map(node => node.resolvables)\n .reduce(unnestR, [])\n .filter((r: Resolvable) => r.token === token);\n return tail(matching);\n }\n\n /** Returns the [[ResolvePolicy]] for the given [[Resolvable]] */\n getPolicy(resolvable: Resolvable): ResolvePolicy {\n let node = this.findNode(resolvable);\n return resolvable.getPolicy(node.state);\n }\n\n /**\n * Returns a ResolveContext that includes a portion of this one\n *\n * Given a state, this method creates a new ResolveContext from this one.\n * The new context starts at the first node (root) and stops at the node for the `state` parameter.\n *\n * #### Why\n *\n * When a transition is created, the nodes in the \"To Path\" are injected from a ResolveContext.\n * A ResolveContext closes over a path of [[PathNode]]s and processes the resolvables.\n * The \"To State\" can inject values from its own resolvables, as well as those from all its ancestor state's (node's).\n * This method is used to create a narrower context when injecting ancestor nodes.\n *\n * @example\n * `let ABCD = new ResolveContext([A, B, C, D]);`\n *\n * Given a path `[A, B, C, D]`, where `A`, `B`, `C` and `D` are nodes for states `a`, `b`, `c`, `d`:\n * When injecting `D`, `D` should have access to all resolvables from `A`, `B`, `C`, `D`.\n * However, `B` should only be able to access resolvables from `A`, `B`.\n *\n * When resolving for the `B` node, first take the full \"To Path\" Context `[A,B,C,D]` and limit to the subpath `[A,B]`.\n * `let AB = ABCD.subcontext(a)`\n */\n subContext(state: StateObject): ResolveContext {\n return new ResolveContext(PathUtils.subPath(this._path, node => node.state === state));\n }\n\n /**\n * Adds Resolvables to the node that matches the state\n *\n * This adds a [[Resolvable]] (generally one created on the fly; not declared on a [[StateDeclaration.resolve]] block).\n * The resolvable is added to the node matching the `state` parameter.\n *\n * These new resolvables are not automatically fetched.\n * The calling code should either fetch them, fetch something that depends on them,\n * or rely on [[resolvePath]] being called when some state is being entered.\n *\n * Note: each resolvable's [[ResolvePolicy]] is merged with the state's policy, and the global default.\n *\n * @param newResolvables the new Resolvables\n * @param state Used to find the node to put the resolvable on\n */\n addResolvables(newResolvables: Resolvable[], state: StateObject) {\n let node = find(this._path, propEq('state', state));\n let keys = newResolvables.map(r => r.token);\n node.resolvables = node.resolvables.filter(r => keys.indexOf(r.token) === -1).concat(newResolvables);\n }\n\n /**\n * Returns a promise for an array of resolved path Element promises\n *\n * @param when\n * @param trans\n * @returns {Promise|any}\n */\n resolvePath(when: PolicyWhen = \"LAZY\", trans?: Transition): Promise<{ token: any, value: any }[]> {\n // This option determines which 'when' policy Resolvables we are about to fetch.\n let whenOption: string = inArray(ALL_WHENS, when) ? when : \"LAZY\";\n // If the caller specified EAGER, only the EAGER Resolvables are fetched.\n // if the caller specified LAZY, both EAGER and LAZY Resolvables are fetched.`\n let matchedWhens = whenOption === resolvePolicies.when.EAGER ? EAGER_WHENS : ALL_WHENS;\n\n // get the subpath to the state argument, if provided\n trace.traceResolvePath(this._path, when, trans);\n\n const matchesPolicy = (acceptedVals: string[], whenOrAsync: \"when\"|\"async\") =>\n (resolvable: Resolvable) =>\n inArray(acceptedVals, this.getPolicy(resolvable)[whenOrAsync]);\n\n // Trigger all the (matching) Resolvables in the path\n // Reduce all the \"WAIT\" Resolvables into an array\n let promises: Promise[] = this._path.reduce((acc, node) => {\n let nodeResolvables = node.resolvables.filter(matchesPolicy(matchedWhens, 'when'));\n let nowait = nodeResolvables.filter(matchesPolicy(['NOWAIT'], 'async'));\n let wait = nodeResolvables.filter(not(matchesPolicy(['NOWAIT'], 'async')));\n\n // For the matching Resolvables, start their async fetch process.\n let subContext = this.subContext(node.state);\n let getResult = (r: Resolvable) => r.get(subContext, trans)\n // Return a tuple that includes the Resolvable's token\n .then(value => ({ token: r.token, value: value }));\n nowait.forEach(getResult);\n return acc.concat(wait.map(getResult));\n }, []);\n\n // Wait for all the \"WAIT\" resolvables\n return services.$q.all(promises);\n }\n\n injector(): UIInjector {\n return this._injector || (this._injector = new UIInjectorImpl(this));\n }\n\n findNode(resolvable: Resolvable): PathNode {\n return find(this._path, (node: PathNode) => inArray(node.resolvables, resolvable));\n }\n\n /**\n * Gets the async dependencies of a Resolvable\n *\n * Given a Resolvable, returns its dependencies as a Resolvable[]\n */\n getDependencies(resolvable: Resolvable): Resolvable[] {\n let node = this.findNode(resolvable);\n // Find which other resolvables are \"visible\" to the `resolvable` argument\n // subpath stopping at resolvable's node, or the whole path (if the resolvable isn't in the path)\n let subPath: PathNode[] = PathUtils.subPath(this._path, x => x === node) || this._path;\n let availableResolvables: Resolvable[] = subPath\n .reduce((acc, _node) => acc.concat(_node.resolvables), []) //all of subpath's resolvables\n .filter(res => res !== resolvable); // filter out the `resolvable` argument\n\n const getDependency = (token: any) => {\n let matching = availableResolvables.filter(r => r.token === token);\n if (matching.length) return tail(matching);\n\n let fromInjector = this.injector().getNative(token);\n if (isUndefined(fromInjector)) {\n throw new Error(\"Could not find Dependency Injection token: \" + stringify(token));\n }\n\n return new Resolvable(token, () => fromInjector, [], fromInjector);\n };\n\n return resolvable.deps.map(getDependency);\n }\n}\n\nclass UIInjectorImpl implements UIInjector {\n native: $InjectorLike;\n\n constructor(public context: ResolveContext) {\n this.native = this.get(NATIVE_INJECTOR_TOKEN) || services.$injector;\n }\n\n get(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) {\n if (this.context.getPolicy(resolvable).async === 'NOWAIT') {\n return resolvable.get(this.context);\n }\n\n if (!resolvable.resolved) {\n throw new Error(\"Resolvable async .get() not complete:\" + stringify(resolvable.token))\n }\n return resolvable.data;\n }\n\n return this.getNative(token);\n }\n\n getAsync(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) return resolvable.get(this.context);\n return services.$q.when(this.native.get(token));\n }\n\n getNative(token: any) {\n return this.native && this.native.get(token);\n }\n}\n", + "/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { stringify } from '../common/strings';\nimport { map, find, extend, mergeR, tail, omit, arrayTuples, unnestR, identity, anyTrueR } from '../common/common';\nimport {isObject, isUndefined} from '../common/predicates';\nimport { prop, propEq, val, not, is } from '../common/hof';\nimport { StateDeclaration, StateOrName } from '../state/interface';\nimport {\n TransitionOptions, TreeChanges, IHookRegistry, TransitionHookPhase, RegisteredHooks, HookRegOptions,\n HookMatchCriteria, TransitionStateHookFn, TransitionHookFn,\n} from './interface'; // has or is using\nimport { TransitionHook } from './transitionHook';\nimport { matchState, makeEvent, RegisteredHook } from './hookRegistry';\nimport { HookBuilder } from './hookBuilder';\nimport { PathNode } from '../path/pathNode';\nimport { PathUtils } from '../path/pathFactory';\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { RawParams } from '../params/interface';\nimport { ResolvableLiteral } from '../resolve/interface';\n\n/** @hidden */\nconst stateSelf: (_state: StateObject) => StateDeclaration = prop(\"self\");\n\n/**\n * Represents a transition between two states.\n *\n * When navigating to a state, we are transitioning **from** the current state **to** the new state.\n *\n * This object contains all contextual information about the to/from states, parameters, resolves.\n * It has information about all states being entered and exited as a result of the transition.\n */\nexport class Transition implements IHookRegistry {\n\n /** @hidden */\n static diToken = Transition;\n\n /**\n * A unique identifier for the transition.\n *\n * This is an auto incrementing integer, starting from `0`.\n */\n $id: number;\n\n /**\n * A reference to the [[UIRouter]] instance\n *\n * This reference can be used to access the router services, such as the [[StateService]]\n */\n router: UIRouter;\n\n /** @hidden */\n private _deferred = services.$q.defer();\n /**\n * This promise is resolved or rejected based on the outcome of the Transition.\n *\n * When the transition is successful, the promise is resolved\n * When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error\n */\n promise: Promise = this._deferred.promise;\n /**\n * A boolean which indicates if the transition was successful\n *\n * After a successful transition, this value is set to true.\n * After an unsuccessful transition, this value is set to false.\n *\n * The value will be undefined if the transition is not complete\n */\n success: boolean;\n /** @hidden */\n _aborted: boolean;\n /** @hidden */\n private _error: any;\n\n /** @hidden Holds the hook registration functions such as those passed to Transition.onStart() */\n _registeredHooks: RegisteredHooks = { };\n\n /** @hidden */\n private _options: TransitionOptions;\n /** @hidden */\n private _treeChanges: TreeChanges;\n /** @hidden */\n private _targetState: TargetState;\n /** @hidden */\n private _hookBuilder = new HookBuilder(this);\n\n\n /** @hidden */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n\n /** @hidden\n * Creates the transition-level hook registration functions\n * (which can then be used to register hooks)\n */\n private createTransitionHookRegFns() {\n this.router.transitionService._pluginapi._getEvents()\n .filter(type => type.hookPhase !== TransitionHookPhase.CREATE)\n .forEach(type => makeEvent(this, this.router.transitionService, type));\n }\n\n /** @internalapi */\n getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /**\n * Creates a new Transition object.\n *\n * If the target state is not valid, an error is thrown.\n *\n * @internalapi\n *\n * @param fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`\n * encapsulates the \"from state\".\n * @param targetState The target state and parameters being transitioned to (also, the transition options)\n * @param router The [[UIRouter]] instance\n */\n constructor(fromPath: PathNode[], targetState: TargetState, router: UIRouter) {\n this.router = router;\n this._targetState = targetState;\n\n if (!targetState.valid()) {\n throw new Error(targetState.error());\n }\n\n // current() is assumed to come from targetState.options, but provide a naive implementation otherwise.\n this._options = extend({ current: val(this) }, targetState.options());\n this.$id = router.transitionService._transitionCount++;\n let toPath = PathUtils.buildToPath(fromPath, targetState);\n this._treeChanges = PathUtils.treeChanges(fromPath, toPath, this._options.reloadState);\n this.createTransitionHookRegFns();\n\n let onCreateHooks = this._hookBuilder.buildHooksForPhase(TransitionHookPhase.CREATE);\n TransitionHook.invokeHooks(onCreateHooks, () => null);\n\n this.applyViewConfigs(router);\n }\n\n private applyViewConfigs(router: UIRouter) {\n let enteringStates = this._treeChanges.entering.map(node => node.state);\n PathUtils.applyViewConfigs(router.transitionService.$view, this._treeChanges.to, enteringStates);\n }\n\n /**\n * @internalapi\n *\n * @returns the internal from [State] object\n */\n $from() {\n return tail(this._treeChanges.from).state;\n }\n\n /**\n * @internalapi\n *\n * @returns the internal to [State] object\n */\n $to() {\n return tail(this._treeChanges.to).state;\n }\n\n /**\n * Returns the \"from state\"\n *\n * Returns the state that the transition is coming *from*.\n *\n * @returns The state declaration object for the Transition's (\"from state\").\n */\n from(): StateDeclaration {\n return this.$from().self;\n }\n\n /**\n * Returns the \"to state\"\n *\n * Returns the state that the transition is going *to*.\n *\n * @returns The state declaration object for the Transition's target state (\"to state\").\n */\n to(): StateDeclaration {\n return this.$to().self;\n }\n\n /**\n * Gets the Target State\n *\n * A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.\n *\n * @returns the [[TargetState]] of this Transition\n */\n targetState() {\n return this._targetState;\n }\n\n /**\n * Determines whether two transitions are equivalent.\n * @deprecated\n */\n is(compare: (Transition|{to?: any, from?: any})): boolean {\n if (compare instanceof Transition) {\n // TODO: Also compare parameters\n return this.is({ to: compare.$to().name, from: compare.$from().name });\n }\n return !(\n (compare.to && !matchState(this.$to(), compare.to)) ||\n (compare.from && !matchState(this.$from(), compare.from))\n );\n }\n\n /**\n * Gets transition parameter values\n *\n * Returns the parameter values for a transition as key/value pairs.\n * This object is immutable.\n *\n * By default, returns the new parameter values (for the \"to state\").\n *\n * #### Example:\n * ```js\n * var toParams = transition.params();\n * ```\n *\n * To return the previous parameter values, supply `'from'` as the `pathname` argument.\n *\n * #### Example:\n * ```js\n * var fromParams = transition.params('from');\n * ```\n *\n * @param pathname the name of the treeChanges path to get parameter values for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n *\n * @returns transition parameter values for the desired path.\n */\n params(pathname?: string): any;\n params(pathname?: string): T;\n params(pathname: string = \"to\") {\n return Object.freeze(this._treeChanges[pathname].map(prop(\"paramValues\")).reduce(mergeR, {}));\n }\n\n\n /**\n * Creates a [[UIInjector]] Dependency Injector\n *\n * Returns a Dependency Injector for the Transition's target state (to state).\n * The injector provides resolve values which the target state has access to.\n *\n * The `UIInjector` can also provide values from the native root/global injector (ng1/ng2).\n *\n * #### Example:\n * ```js\n * .onEnter({ entering: 'myState' }, trans => {\n * var myResolveValue = trans.injector().get('myResolve');\n * // Inject a global service from the global/native injector (if it exists)\n * var MyService = trans.injector().get('MyService');\n * })\n * ```\n *\n * In some cases (such as `onBefore`), you may need access to some resolve data but it has not yet been fetched.\n * You can use [[UIInjector.getAsync]] to get a promise for the data.\n * #### Example:\n * ```js\n * .onBefore({}, trans => {\n * return trans.injector().getAsync('myResolve').then(myResolveValue =>\n * return myResolveValue !== 'ABORT';\n * });\n * });\n * ```\n *\n * If a `state` is provided, the injector that is returned will be limited to resolve values that the provided state has access to.\n * This can be useful if both a parent state `foo` and a child state `foo.bar` have both defined a resolve such as `data`.\n * #### Example:\n * ```js\n * .onEnter({ to: 'foo.bar' }, trans => {\n * // returns result of `foo` state's `data` resolve\n * // even though `foo.bar` also has a `data` resolve\n * var fooData = trans.injector('foo').get('data');\n * });\n * ```\n *\n * If you need resolve data from the exiting states, pass `'from'` as `pathName`.\n * The resolve data from the `from` path will be returned.\n * #### Example:\n * ```js\n * .onExit({ exiting: 'foo.bar' }, trans => {\n * // Gets the resolve value of `data` from the exiting state.\n * var fooData = trans.injector(null, 'foo.bar').get('data');\n * });\n * ```\n *\n *\n * @param state Limits the resolves provided to only the resolves the provided state has access to.\n * @param pathName Default: `'to'`: Chooses the path for which to create the injector. Use this to access resolves for `exiting` states.\n *\n * @returns a [[UIInjector]]\n */\n injector(state?: StateOrName, pathName = \"to\"): UIInjector {\n let path: PathNode[] = this._treeChanges[pathName];\n if (state) path = PathUtils.subPath(path, node => node.state === state || node.state.name === state);\n return new ResolveContext(path).injector();\n }\n\n /**\n * Gets all available resolve tokens (keys)\n *\n * This method can be used in conjunction with [[injector]] to inspect the resolve values\n * available to the Transition.\n *\n * This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states\n * in the Transition's [[TreeChanges.to]] path.\n *\n * #### Example:\n * This example logs all resolve values\n * ```js\n * let tokens = trans.getResolveTokens();\n * tokens.forEach(token => console.log(token + \" = \" + trans.injector().get(token)));\n * ```\n *\n * #### Example:\n * This example creates promises for each resolve value.\n * This triggers fetches of resolves (if any have not yet been fetched).\n * When all promises have all settled, it logs the resolve values.\n * ```js\n * let tokens = trans.getResolveTokens();\n * let promise = tokens.map(token => trans.injector().getAsync(token));\n * Promise.all(promises).then(values => console.log(\"Resolved values: \" + values));\n * ```\n *\n * Note: Angular 1 users whould use `$q.all()`\n *\n * @param pathname resolve context's path name (e.g., `to` or `from`)\n *\n * @returns an array of resolve tokens (keys)\n */\n getResolveTokens(pathname: string = \"to\"): any[] {\n return new ResolveContext(this._treeChanges[pathname]).getTokens();\n }\n\n /**\n * Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.\n *\n * #### Example:\n * ```js\n * transitionService.onBefore({}, transition => {\n * transition.addResolvable({\n * token: 'myResolve',\n * deps: ['MyService'],\n * resolveFn: myService => myService.getData()\n * });\n * });\n * ```\n *\n * @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])\n * @param state the state in the \"to path\" which should receive the new resolve (otherwise, the root state)\n */\n addResolvable(resolvable: Resolvable|ResolvableLiteral, state: StateOrName = \"\"): void {\n resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);\n\n let stateName: string = (typeof state === \"string\") ? state : state.name;\n let topath = this._treeChanges.to;\n let targetNode = find(topath, node => node.state.name === stateName);\n let resolveContext: ResolveContext = new ResolveContext(topath);\n resolveContext.addResolvables([resolvable as Resolvable], targetNode.state);\n }\n\n /**\n * Gets the transition from which this transition was redirected.\n *\n * If the current transition is a redirect, this method returns the transition that was redirected.\n *\n * #### Example:\n * ```js\n * let transitionA = $state.go('A').transition\n * transitionA.onStart({}, () => $state.target('B'));\n * $transitions.onSuccess({ to: 'B' }, (trans) => {\n * trans.to().name === 'B'; // true\n * trans.redirectedFrom() === transitionA; // true\n * });\n * ```\n *\n * @returns The previous Transition, or null if this Transition is not the result of a redirection\n */\n redirectedFrom(): Transition {\n return this._options.redirectedFrom || null;\n }\n\n /**\n * Gets the original transition in a redirect chain\n *\n * A transition might belong to a long chain of multiple redirects.\n * This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.\n *\n * #### Example:\n * ```js\n * // states\n * registry.register({ name: 'A', redirectTo: 'B' });\n * registry.register({ name: 'B', redirectTo: 'C' });\n * registry.register({ name: 'C', redirectTo: 'D' });\n * registry.register({ name: 'D' });\n *\n * let transitionA = $state.go('A').transition\n *\n * $transitions.onSuccess({ to: 'D' }, (trans) => {\n * trans.to().name === 'D'; // true\n * trans.redirectedFrom().to().name === 'C'; // true\n * trans.originalTransition() === transitionA; // true\n * trans.originalTransition().to().name === 'A'; // true\n * });\n * ```\n *\n * @returns The original Transition that started a redirect chain\n */\n originalTransition(): Transition {\n let rf = this.redirectedFrom();\n return (rf && rf.originalTransition()) || this;\n }\n\n /**\n * Get the transition options\n *\n * @returns the options for this Transition.\n */\n options(): TransitionOptions {\n return this._options;\n }\n\n /**\n * Gets the states being entered.\n *\n * @returns an array of states that will be entered during this transition.\n */\n entering(): StateDeclaration[] {\n return map(this._treeChanges.entering, prop('state')).map(stateSelf);\n }\n\n /**\n * Gets the states being exited.\n *\n * @returns an array of states that will be exited during this transition.\n */\n exiting(): StateDeclaration[] {\n return map(this._treeChanges.exiting, prop('state')).map(stateSelf).reverse();\n }\n\n /**\n * Gets the states being retained.\n *\n * @returns an array of states that are already entered from a previous Transition, that will not be\n * exited during this Transition\n */\n retained(): StateDeclaration[] {\n return map(this._treeChanges.retained, prop('state')).map(stateSelf);\n }\n\n /**\n * Get the [[ViewConfig]]s associated with this Transition\n *\n * Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.\n * This method fetches the `ViewConfigs` for a given path in the Transition (e.g., \"to\" or \"entering\").\n *\n * @param pathname the name of the path to fetch views for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n * @param state If provided, only returns the `ViewConfig`s for a single state in the path\n *\n * @returns a list of ViewConfig objects for the given path.\n */\n views(pathname: string = \"entering\", state?: StateObject): ViewConfig[] {\n let path = this._treeChanges[pathname];\n path = !state ? path : path.filter(propEq('state', state));\n return path.map(prop(\"views\")).filter(identity).reduce(unnestR, []);\n }\n\n /**\n * Return the transition's tree changes\n *\n * A transition goes from one state/parameters to another state/parameters.\n * During a transition, states are entered and/or exited.\n *\n * This function returns various branches (paths) which represent the changes to the\n * active state tree that are caused by the transition.\n *\n * @param pathname The name of the tree changes path to get:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n */\n treeChanges(pathname: string): PathNode[];\n treeChanges(): TreeChanges;\n treeChanges(pathname?: string) {\n return pathname ? this._treeChanges[pathname] : this._treeChanges;\n }\n\n /**\n * Creates a new transition that is a redirection of the current one.\n *\n * This transition can be returned from a [[TransitionService]] hook to\n * redirect a transition to a new state and/or set of parameters.\n *\n * @internalapi\n *\n * @returns Returns a new [[Transition]] instance.\n */\n redirect(targetState: TargetState): Transition {\n let redirects = 1, trans: Transition = this;\n while ((trans = trans.redirectedFrom()) != null) {\n if (++redirects > 20) throw new Error(`Too many consecutive Transition redirects (20+)`);\n }\n\n let redirectOpts: TransitionOptions = { redirectedFrom: this, source: \"redirect\" };\n // If the original transition was caused by URL sync, then use { location: 'replace' }\n // on the new transition (unless the target state explicitly specifies location: false).\n // This causes the original url to be replaced with the url for the redirect target\n // so the original url disappears from the browser history.\n if (this.options().source === 'url' && targetState.options().location !== false) {\n redirectOpts.location = 'replace';\n }\n\n let newOptions = extend({}, this.options(), targetState.options(), redirectOpts);\n targetState = targetState.withOptions(newOptions, true);\n\n let newTransition = this.router.transitionService.create(this._treeChanges.from, targetState);\n let originalEnteringNodes = this._treeChanges.entering;\n let redirectEnteringNodes = newTransition._treeChanges.entering;\n\n // --- Re-use resolve data from original transition ---\n // When redirecting from a parent state to a child state where the parent parameter values haven't changed\n // (because of the redirect), the resolves fetched by the original transition are still valid in the\n // redirected transition.\n //\n // This allows you to define a redirect on a parent state which depends on an async resolve value.\n // You can wait for the resolve, then redirect to a child state based on the result.\n // The redirected transition does not have to re-fetch the resolve.\n // ---------------------------------------------------------\n\n const nodeIsReloading = (reloadState: StateObject) => (node: PathNode) => {\n return reloadState && node.state.includes[reloadState.name];\n };\n\n // Find any \"entering\" nodes in the redirect path that match the original path and aren't being reloaded\n let matchingEnteringNodes: PathNode[] = PathUtils.matching(redirectEnteringNodes, originalEnteringNodes, PathUtils.nonDynamicParams)\n .filter(not(nodeIsReloading(targetState.options().reloadState)));\n\n // Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.\n matchingEnteringNodes.forEach((node, idx) => {\n node.resolvables = originalEnteringNodes[idx].resolvables;\n });\n\n return newTransition;\n }\n\n /** @hidden If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */\n private _changedParams(): Param[] {\n let tc = this._treeChanges;\n\n /** Return undefined if it's not a \"dynamic\" transition, for the following reasons */\n // If user explicitly wants a reload\n if (this._options.reload) return undefined;\n // If any states are exiting or entering\n if (tc.exiting.length || tc.entering.length) return undefined;\n // If to/from path lengths differ\n if (tc.to.length !== tc.from.length) return undefined;\n // If the to/from paths are different\n let pathsDiffer: boolean = arrayTuples(tc.to, tc.from)\n .map(tuple => tuple[0].state !== tuple[1].state)\n .reduce(anyTrueR, false);\n if (pathsDiffer) return undefined;\n\n // Find any parameter values that differ\n let nodeSchemas: Param[][] = tc.to.map((node: PathNode) => node.paramSchema);\n let [toValues, fromValues] = [tc.to, tc.from].map(path => path.map(x => x.paramValues));\n let tuples = arrayTuples(nodeSchemas, toValues, fromValues);\n\n return tuples.map(([schema, toVals, fromVals]) => Param.changed(schema, toVals, fromVals)).reduce(unnestR, []);\n }\n\n /**\n * Returns true if the transition is dynamic.\n *\n * A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.\n *\n * @returns true if the Transition is dynamic\n */\n dynamic(): boolean {\n let changes = this._changedParams();\n return !changes ? false : changes.map(x => x.dynamic).reduce(anyTrueR, false);\n }\n\n /**\n * Returns true if the transition is ignored.\n *\n * A transition is ignored if no states are entered nor exited, and no parameter values have changed.\n *\n * @returns true if the Transition is ignored.\n */\n ignored(): boolean {\n return !!this._ignoredReason();\n }\n\n /** @hidden */\n _ignoredReason(): \"SameAsCurrent\"|\"SameAsPending\"|undefined {\n const pending = this.router.globals.transition;\n const reloadState = this._options.reloadState;\n\n const same = (pathA, pathB) => {\n if (pathA.length !== pathB.length) return false;\n const matching = PathUtils.matching(pathA, pathB);\n return pathA.length === matching.filter(node => !reloadState || !node.state.includes[reloadState.name]).length;\n };\n\n let newTC = this.treeChanges();\n let pendTC = pending && pending.treeChanges();\n\n if (pendTC && same(pendTC.to, newTC.to) && same(pendTC.exiting, newTC.exiting)) return \"SameAsPending\";\n if (newTC.exiting.length === 0 && newTC.entering.length === 0 && same(newTC.from, newTC.to)) return \"SameAsCurrent\";\n }\n\n /**\n * Runs the transition\n *\n * This method is generally called from the [[StateService.transitionTo]]\n *\n * @internalapi\n *\n * @returns a promise for a successful transition.\n */\n run(): Promise {\n let runAllHooks = TransitionHook.runAllHooks;\n\n // Gets transition hooks array for the given phase\n const getHooksFor = (phase: TransitionHookPhase) =>\n this._hookBuilder.buildHooksForPhase(phase);\n\n // When the chain is complete, then resolve or reject the deferred\n const transitionSuccess = () => {\n trace.traceSuccess(this.$to(), this);\n this.success = true;\n this._deferred.resolve(this.to());\n runAllHooks(getHooksFor(TransitionHookPhase.SUCCESS));\n };\n\n const transitionError = (reason: any) => {\n trace.traceError(reason, this);\n this.success = false;\n this._deferred.reject(reason);\n this._error = reason;\n runAllHooks(getHooksFor(TransitionHookPhase.ERROR));\n };\n\n const runTransition = () => {\n // Wait to build the RUN hook chain until the BEFORE hooks are done\n // This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.\n let allRunHooks = getHooksFor(TransitionHookPhase.RUN);\n let done = () => services.$q.when(undefined);\n return TransitionHook.invokeHooks(allRunHooks, done);\n };\n\n const startTransition = () => {\n let globals = this.router.globals;\n\n globals.lastStartedTransitionId = this.$id;\n globals.transition = this;\n globals.transitionHistory.enqueue(this);\n\n trace.traceTransitionStart(this);\n\n return services.$q.when(undefined);\n };\n\n let allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);\n TransitionHook.invokeHooks(allBeforeHooks, startTransition)\n .then(runTransition)\n .then(transitionSuccess, transitionError);\n\n return this.promise;\n }\n\n /** Checks if this transition is currently active/running. */\n isActive = () =>\n this.router.globals.transition === this;\n\n /**\n * Checks if the Transition is valid\n *\n * @returns true if the Transition is valid\n */\n valid() {\n return !this.error() || this.success !== undefined;\n }\n\n /**\n * Aborts this transition\n *\n * Imperative API to abort a Transition.\n * This only applies to Transitions that are not yet complete.\n */\n abort() {\n // Do not set flag if the transition is already complete\n if (isUndefined(this.success)) {\n this._aborted = true;\n }\n }\n\n /**\n * The Transition error reason.\n *\n * If the transition is invalid (and could not be run), returns the reason the transition is invalid.\n * If the transition was valid and ran, but was not successful, returns the reason the transition failed.\n *\n * @returns an error message explaining why the transition is invalid, or the reason the transition failed.\n */\n error() {\n let state: StateObject = this.$to();\n\n if (state.self.abstract)\n return `Cannot transition to abstract state '${state.name}'`;\n\n const paramDefs = state.parameters(), values = this.params();\n const invalidParams = paramDefs.filter(param => !param.validates(values[param.id]));\n if (invalidParams.length) {\n return `Param values not valid for state '${state.name}'. Invalid params: [ ${invalidParams.map(param => param.id).join(', ')} ]`;\n }\n\n if (this.success === false)\n return this._error;\n }\n\n /**\n * A string representation of the Transition\n *\n * @returns A string representation of the Transition\n */\n toString () {\n let fromStateOrName = this.from();\n let toStateOrName = this.to();\n\n const avoidEmptyHash = (params: RawParams) =>\n (params[\"#\"] !== null && params[\"#\"] !== undefined) ? params : omit(params, [\"#\"]);\n\n // (X) means the to state is invalid.\n let id = this.$id,\n from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName,\n fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))),\n toValid = this.valid() ? \"\" : \"(X) \",\n to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName,\n toParams = stringify(avoidEmptyHash(this.params()));\n\n return `Transition#${id}( '${from}'${fromParams} -> ${toValid}'${to}'${toParams} )`;\n }\n}\n", + "/**\n * Functions that manipulate strings\n *\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_strings\n */ /** */\n\nimport { isString, isArray, isDefined, isNull, isPromise, isInjectable, isObject } from \"./predicates\";\nimport { Rejection } from \"../transition/rejectFactory\";\nimport { IInjectable, identity, Obj, tail, pushR } from \"./common\";\nimport { pattern, is, not, val, invoke } from \"./hof\";\nimport { Transition } from \"../transition/transition\";\nimport { Resolvable } from \"../resolve/resolvable\";\n\n/**\n * Returns a string shortened to a maximum length\n *\n * If the string is already less than the `max` length, return the string.\n * Else return the string, shortened to `max - 3` and append three dots (\"...\").\n *\n * @param max the maximum length of the string to return\n * @param str the input string\n */\nexport function maxLength(max: number, str: string) {\n if (str.length <= max) return str;\n return str.substr(0, max - 3) + \"...\";\n}\n\n/**\n * Returns a string, with spaces added to the end, up to a desired str length\n *\n * If the string is already longer than the desired length, return the string.\n * Else returns the string, with extra spaces on the end, such that it reaches `length` characters.\n *\n * @param length the desired length of the string to return\n * @param str the input string\n */\nexport function padString(length: number, str: string) {\n while (str.length < length) str += \" \";\n return str;\n}\n\nexport function kebobString(camelCase: string) {\n return camelCase\n .replace(/^([A-Z])/, $1 => $1.toLowerCase()) // replace first char\n .replace(/([A-Z])/g, $1 => \"-\" + $1.toLowerCase()); // replace rest\n}\n\nfunction _toJson(obj: Obj) {\n return JSON.stringify(obj);\n}\n\nfunction _fromJson(json: string) {\n return isString(json) ? JSON.parse(json) : json;\n}\n\n\nfunction promiseToString(p: Promise) {\n return `Promise(${JSON.stringify(p)})`;\n}\n\nexport function functionToString(fn: Function) {\n let fnStr = fnToString(fn);\n let namedFunctionMatch = fnStr.match(/^(function [^ ]+\\([^)]*\\))/);\n let toStr = namedFunctionMatch ? namedFunctionMatch[1] : fnStr;\n\n let fnName = fn['name'] || \"\";\n if (fnName && toStr.match(/function \\(/)) {\n return 'function ' + fnName + toStr.substr(9);\n }\n return toStr;\n}\n\nexport function fnToString(fn: IInjectable) {\n let _fn = isArray(fn) ? fn.slice(-1)[0] : fn;\n return _fn && _fn.toString() || \"undefined\";\n}\n\nlet stringifyPatternFn: (val: any) => string = null;\nlet stringifyPattern = function(value: any) {\n let isRejection = Rejection.isRejectionPromise;\n\n stringifyPatternFn = stringifyPatternFn || pattern([\n [not(isDefined), val(\"undefined\")],\n [isNull, val(\"null\")],\n [isPromise, val(\"[Promise]\")],\n [isRejection, (x: any) => x._transitionRejection.toString()],\n [is(Rejection), invoke(\"toString\")],\n [is(Transition), invoke(\"toString\")],\n [is(Resolvable), invoke(\"toString\")],\n [isInjectable, functionToString],\n [val(true), identity]\n ]);\n\n return stringifyPatternFn(value);\n};\n\nexport function stringify(o: any) {\n var seen: any[] = [];\n\n function format(val: any) {\n if (isObject(val)) {\n if (seen.indexOf(val) !== -1) return '[circular ref]';\n seen.push(val);\n }\n return stringifyPattern(val);\n }\n\n return JSON.stringify(o, (key, val) => format(val)).replace(/\\\\\"/g, '\"');\n}\n\n/** Returns a function that splits a string on a character or substring */\nexport const beforeAfterSubstr = (char: string) => (str: string): string[] => {\n if (!str) return [\"\", \"\"];\n let idx = str.indexOf(char);\n if (idx === -1) return [str, \"\"];\n return [str.substr(0, idx), str.substr(idx + 1)];\n};\n\nexport const hostRegex = new RegExp('^(?:[a-z]+:)?//[^/]+/');\nexport const stripFile = (str: string) => str.replace(/\\/[^/]*$/, '');\nexport const splitHash = beforeAfterSubstr(\"#\");\nexport const splitQuery = beforeAfterSubstr(\"?\");\nexport const splitEqual = beforeAfterSubstr(\"=\");\nexport const trimHashVal = (str: string) => str ? str.replace(/^#/, \"\") : \"\";\n\n/**\n * Splits on a delimiter, but returns the delimiters in the array\n *\n * #### Example:\n * ```js\n * var splitOnSlashes = splitOnDelim('/');\n * splitOnSlashes(\"/foo\"); // [\"/\", \"foo\"]\n * splitOnSlashes(\"/foo/\"); // [\"/\", \"foo\", \"/\"]\n * ```\n */\nexport function splitOnDelim(delim: string) {\n let re = new RegExp(\"(\" + delim + \")\", \"g\");\n return (str: string) =>\n str.split(re).filter(identity);\n};\n\n\n/**\n * Reduce fn that joins neighboring strings\n *\n * Given an array of strings, returns a new array\n * where all neighboring strings have been joined.\n *\n * #### Example:\n * ```js\n * let arr = [\"foo\", \"bar\", 1, \"baz\", \"\", \"qux\" ];\n * arr.reduce(joinNeighborsR, []) // [\"foobar\", 1, \"bazqux\" ]\n * ```\n */\nexport function joinNeighborsR(acc: any[], x: any) {\n if (isString(tail(acc)) && isString(x))\n return acc.slice(0, -1).concat(tail(acc)+ x);\n return pushR(acc, x);\n};\n\n", + "/** @module common */ /** for typedoc */\nexport * from \"./common\";\nexport * from \"./coreservices\";\nexport * from \"./glob\";\nexport * from \"./hof\";\nexport * from \"./predicates\";\nexport * from \"./queue\";\nexport * from \"./strings\";\nexport * from \"./trace\";\n", + "/**\n * @coreapi\n * @module params\n */\n/** */\nimport { fromJson, toJson, identity, equals, inherit, map, extend, pick } from \"../common/common\";\nimport { isDefined, isNullOrUndefined } from \"../common/predicates\";\nimport { is } from \"../common/hof\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypeDefinition } from \"./interface\";\n\n/**\n * A registry for parameter types.\n *\n * This registry manages the built-in (and custom) parameter types.\n *\n * The built-in parameter types are:\n *\n * - [[string]]\n * - [[path]]\n * - [[query]]\n * - [[hash]]\n * - [[int]]\n * - [[bool]]\n * - [[date]]\n * - [[json]]\n * - [[any]]\n */\nexport class ParamTypes {\n /** @hidden */\n types: any;\n /** @hidden */\n enqueue: boolean = true;\n /** @hidden */\n typeQueue: any[] = [];\n\n /**\n * Built-in parameter type: `string`\n *\n * This parameter type coerces values to strings.\n * It matches anything (`new RegExp(\".*\")`) in the URL\n */\n static string: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `path`\n *\n * This parameter type is the default type for path parameters.\n * A path parameter is any parameter declared in the path portion of a url\n *\n * - `/foo/:param1/:param2`: two path parameters\n *\n * This parameter type behaves exactly like the [[string]] type with one exception.\n * When matching parameter values in the URL, the `path` type does not match forward slashes `/`.\n *\n * #### Angular 1 note:\n * In ng1, this type is overridden with one that pre-encodes slashes as `~2F` instead of `%2F`.\n * For more details about this angular 1 behavior, see: https://github.com/angular-ui/ui-router/issues/2598\n */\n static path: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `query`\n *\n * This parameter type is the default type for query/search parameters.\n * It behaves the same as the [[string]] parameter type.\n *\n * A query parameter is any parameter declared in the query/search portion of a url\n *\n * - `/bar?param2`: a query parameter\n */\n static query: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `hash`\n *\n * This parameter type is used for the `#` parameter (the hash)\n * It behaves the same as the [[string]] parameter type.\n * @coreapi\n */\n static hash: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `int`\n *\n * This parameter type serializes javascript integers (`number`s which represent an integer) to the URL.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'user',\n * url: '/user/{id:int}'\n * });\n * ```\n * ```js\n * $state.go('user', { id: 1298547 });\n * ```\n *\n * The URL will serialize to: `/user/1298547`.\n *\n * When the parameter value is read, it will be the `number` `1298547`, not the string `\"1298547\"`.\n */\n static int: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `bool`\n *\n * This parameter type serializes `true`/`false` as `1`/`0`\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'inbox',\n * url: '/inbox?{unread:bool}'\n * });\n * ```\n * ```js\n * $state.go('inbox', { unread: true });\n * ```\n *\n * The URL will serialize to: `/inbox?unread=1`.\n *\n * Conversely, if the url is `/inbox?unread=0`, the value of the `unread` parameter will be a `false`.\n */\n static bool: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `date`\n *\n * This parameter type can be used to serialize Javascript dates as parameter values.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'search',\n * url: '/search?{start:date}'\n * });\n * ```\n * ```js\n * $state.go('search', { start: new Date(2000, 0, 1) });\n * ```\n *\n * The URL will serialize to: `/search?start=2000-01-01`.\n *\n * Conversely, if the url is `/search?start=2016-12-25`, the value of the `start` parameter will be a `Date` object where:\n *\n * - `date.getFullYear() === 2016`\n * - `date.getMonth() === 11` (month is 0-based)\n * - `date.getDate() === 25`\n */\n static date: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `json`\n *\n * This parameter type can be used to serialize javascript objects into the URL using JSON serialization.\n *\n * #### Example:\n * This example serializes an plain javascript object to the URL\n * ```js\n * .state({\n * name: 'map',\n * url: '/map/{coords:json}'\n * });\n * ```\n * ```js\n * $state.go('map', { coords: { x: 10399.2, y: 49071 });\n * ```\n *\n * The URL will serialize to: `/map/%7B%22x%22%3A10399.2%2C%22y%22%3A49071%7D`\n */\n static json: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `any`\n *\n * This parameter type is used by default for url-less parameters (parameters that do not appear in the URL).\n * This type does not encode or decode.\n * It is compared using a deep `equals` comparison.\n *\n * #### Example:\n * This example defines a non-url parameter on a [[StateDeclaration]].\n * ```js\n * .state({\n * name: 'new',\n * url: '/new',\n * params: {\n * inrepyto: null\n * }\n * });\n * ```\n * ```js\n * $state.go('new', { inreplyto: currentMessage });\n * ```\n */\n static any: ParamTypeDefinition;\n\n\n /** @internalapi */\n private defaultTypes: any = pick(ParamTypes.prototype, [\"hash\", \"string\", \"query\", \"path\", \"int\", \"bool\", \"date\", \"json\", \"any\"]);\n\n /** @internalapi */\n constructor() {\n // Register default types. Store them in the prototype of this.types.\n const makeType = (definition: ParamTypeDefinition, name: string) =>\n new ParamType(extend({ name }, definition));\n this.types = inherit(map(this.defaultTypes, makeType), {});\n }\n\n /** @internalapi */\n dispose() {\n this.types = {};\n }\n\n /**\n * Registers a parameter type\n *\n * End users should call [[UrlMatcherFactory.type]], which delegates to this method.\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n if (!isDefined(definition)) return this.types[name];\n if (this.types.hasOwnProperty(name)) throw new Error(`A type named '${name}' has already been defined.`);\n\n this.types[name] = new ParamType(extend({ name }, definition));\n\n if (definitionFn) {\n this.typeQueue.push({ name, def: definitionFn });\n if (!this.enqueue) this._flushTypeQueue();\n }\n\n return this;\n }\n\n /** @internalapi */\n _flushTypeQueue() {\n while (this.typeQueue.length) {\n let type = this.typeQueue.shift();\n if (type.pattern) throw new Error(\"You cannot override a type's .pattern at runtime.\");\n extend(this.types[type.name], services.$injector.invoke(type.def));\n }\n }\n}\n\n/** @hidden */\nfunction initDefaultTypes() {\n\n const makeDefaultType = (def) => {\n const valToString = (val: any) =>\n val != null ? val.toString() : val;\n\n const defaultTypeBase = {\n encode: valToString,\n decode: valToString,\n is: is(String),\n pattern: /.*/,\n equals: (a: any, b: any) => a == b, // allow coersion for null/undefined/\"\"\n };\n\n return extend({}, defaultTypeBase, def) as ParamTypeDefinition;\n };\n\n // Default Parameter Type Definitions\n extend(ParamTypes.prototype, {\n string: makeDefaultType({}),\n\n path: makeDefaultType({\n pattern: /[^/]*/,\n }),\n\n query: makeDefaultType({}),\n\n hash: makeDefaultType({\n inherit: false,\n }),\n\n int: makeDefaultType({\n decode: (val: string) => parseInt(val, 10),\n is: function(val: any) {\n return !isNullOrUndefined(val) && this.decode(val.toString()) === val;\n },\n pattern: /-?\\d+/,\n }),\n\n bool: makeDefaultType({\n encode: (val: any) => val && 1 || 0,\n decode: (val: string) => parseInt(val, 10) !== 0,\n is: is(Boolean),\n pattern: /0|1/,\n }),\n\n date: makeDefaultType({\n encode: function(val: any) {\n return !this.is(val) ? undefined : [\n val.getFullYear(),\n ('0' + (val.getMonth() + 1)).slice(-2),\n ('0' + val.getDate()).slice(-2),\n ].join(\"-\");\n },\n decode: function(val: string) {\n if (this.is(val)) return val as Date;\n let match = this.capture.exec(val);\n return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;\n },\n is: (val: any) => val instanceof Date && !isNaN(val.valueOf()),\n equals(l: any, r: any) {\n return ['getFullYear', 'getMonth', 'getDate']\n .reduce((acc, fn) => acc && l[fn]() === r[fn](), true);\n },\n pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,\n capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,\n }),\n\n json: makeDefaultType({\n encode: toJson,\n decode: fromJson,\n is: is(Object),\n equals: equals,\n pattern: /[^/]*/,\n }),\n\n // does not encode/decode\n any: makeDefaultType({\n encode: identity,\n decode: identity,\n is: () => true,\n equals: equals,\n }),\n });\n}\n\ninitDefaultTypes();\n\n", + "/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, ancestors, Obj} from \"../common/common\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @internalapi */\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n let parents = ancestors($current, $to),\n parentParams: string[],\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (let i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n parentParams = Object.keys(parents[i].params);\n if (!parentParams.length) continue;\n\n for (let j in parentParams) {\n if (inheritList.indexOf(parentParams[j]) >= 0) continue;\n inheritList.push(parentParams[j]);\n inherited[parentParams[j]] = this[parentParams[j]];\n }\n }\n return extend({}, inherited, newParams);\n };\n}\n\n", + "/** @module path */ /** for typedoc */\nexport * from \"./pathNode\";\nexport * from \"./pathFactory\";", + "/** @module resolve */ /** for typedoc */\nexport * from \"./interface\";\nexport * from \"./resolvable\";\nexport * from \"./resolveContext\";\n", + "/** @module state */ /** for typedoc */\nimport {Obj, omit, noop, extend, inherit, values, applyPairs, tail, mapObj, identity} from \"../common/common\";\nimport {isDefined, isFunction, isString, isArray} from \"../common/predicates\";\nimport {stringify} from \"../common/strings\";\nimport {prop, pattern, is, pipe, val} from \"../common/hof\";\nimport {StateDeclaration} from \"./interface\";\n\nimport {StateObject} from \"./stateObject\";\nimport {StateMatcher} from \"./stateMatcher\";\nimport {Param} from \"../params/param\";\nimport {UrlMatcherFactory} from \"../url/urlMatcherFactory\";\nimport {UrlMatcher} from \"../url/urlMatcher\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {services} from \"../common/coreservices\";\nimport {ResolvePolicy} from \"../resolve/interface\";\nimport { ParamFactory } from \"../url/interface\";\n\nconst parseUrl = (url: string): any => {\n if (!isString(url)) return false;\n let root = url.charAt(0) === '^';\n return { val: root ? url.substring(1) : url, root };\n};\n\nexport type BuilderFunction = (state: StateObject, parent?: BuilderFunction) => any;\n\ninterface Builders {\n [key: string]: BuilderFunction[];\n\n name: BuilderFunction[];\n parent: BuilderFunction[];\n data: BuilderFunction[];\n url: BuilderFunction[];\n navigable: BuilderFunction[];\n params: BuilderFunction[];\n views: BuilderFunction[];\n path: BuilderFunction[];\n includes: BuilderFunction[];\n resolvables: BuilderFunction[];\n}\n\n\nfunction nameBuilder(state: StateObject) {\n return state.name;\n}\n\nfunction selfBuilder(state: StateObject) {\n state.self.$$state = () => state;\n return state.self;\n}\n\nfunction dataBuilder(state: StateObject) {\n if (state.parent && state.parent.data) {\n state.data = state.self.data = inherit(state.parent.data, state.data);\n }\n return state.data;\n}\n\nconst getUrlBuilder = ($urlMatcherFactoryProvider: UrlMatcherFactory, root: () => StateObject) =>\nfunction urlBuilder(state: StateObject) {\n let stateDec: StateDeclaration = state;\n\n // For future states, i.e., states whose name ends with `.**`,\n // match anything that starts with the url prefix\n if (stateDec && stateDec.url && stateDec.name && stateDec.name.match(/\\.\\*\\*$/)) {\n stateDec.url += \"{remainder:any}\"; // match any path (.*)\n }\n\n const parsed = parseUrl(stateDec.url), parent = state.parent;\n const url = !parsed ? stateDec.url : $urlMatcherFactoryProvider.compile(parsed.val, {\n params: state.params || {},\n paramMap: function (paramConfig: any, isSearch: boolean) {\n if (stateDec.reloadOnSearch === false && isSearch) paramConfig = extend(paramConfig || {}, {dynamic: true});\n return paramConfig;\n }\n });\n\n if (!url) return null;\n if (!$urlMatcherFactoryProvider.isMatcher(url)) throw new Error(`Invalid url '${url}' in state '${state}'`);\n return (parsed && parsed.root) ? url : ((parent && parent.navigable) || root()).url.append( url);\n};\n\nconst getNavigableBuilder = (isRoot: (state: StateObject) => boolean) =>\nfunction navigableBuilder(state: StateObject) {\n return !isRoot(state) && state.url ? state : (state.parent ? state.parent.navigable : null);\n};\n\nconst getParamsBuilder = (paramFactory: ParamFactory) =>\nfunction paramsBuilder(state: StateObject): { [key: string]: Param } {\n const makeConfigParam = (config: any, id: string) => paramFactory.fromConfig(id, null, config);\n let urlParams: Param[] = (state.url && state.url.parameters({inherit: false})) || [];\n let nonUrlParams: Param[] = values(mapObj(omit(state.params || {}, urlParams.map(prop('id'))), makeConfigParam));\n return urlParams.concat(nonUrlParams).map(p => [p.id, p]).reduce(applyPairs, {});\n};\n\nfunction pathBuilder(state: StateObject) {\n return state.parent ? state.parent.path.concat(state) : /*root*/ [state];\n}\n\nfunction includesBuilder(state: StateObject) {\n let includes = state.parent ? extend({}, state.parent.includes) : {};\n includes[state.name] = true;\n return includes;\n}\n\n/**\n * This is a [[StateBuilder.builder]] function for the `resolve:` block on a [[StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * validates the `resolve` property and converts it to a [[Resolvable]] array.\n *\n * resolve: input value can be:\n *\n * {\n * // analyzed but not injected\n * myFooResolve: function() { return \"myFooData\"; },\n *\n * // function.toString() parsed, \"DependencyName\" dep as string (not min-safe)\n * myBarResolve: function(DependencyName) { return DependencyName.fetchSomethingAsPromise() },\n *\n * // Array split; \"DependencyName\" dep as string\n * myBazResolve: [ \"DependencyName\", function(dep) { return dep.fetchSomethingAsPromise() },\n *\n * // Array split; DependencyType dep as token (compared using ===)\n * myQuxResolve: [ DependencyType, function(dep) { return dep.fetchSometingAsPromise() },\n *\n * // val.$inject used as deps\n * // where:\n * // corgeResolve.$inject = [\"DependencyName\"];\n * // function corgeResolve(dep) { dep.fetchSometingAsPromise() }\n * // then \"DependencyName\" dep as string\n * myCorgeResolve: corgeResolve,\n *\n * // inject service by name\n * // When a string is found, desugar creating a resolve that injects the named service\n * myGraultResolve: \"SomeService\"\n * }\n *\n * or:\n *\n * [\n * new Resolvable(\"myFooResolve\", function() { return \"myFooData\" }),\n * new Resolvable(\"myBarResolve\", function(dep) { return dep.fetchSomethingAsPromise() }, [ \"DependencyName\" ]),\n * { provide: \"myBazResolve\", useFactory: function(dep) { dep.fetchSomethingAsPromise() }, deps: [ \"DependencyName\" ] }\n * ]\n */\nexport function resolvablesBuilder(state: StateObject): Resolvable[] {\n interface Tuple { token: any, val: any, deps: any[], policy: ResolvePolicy }\n \n /** convert resolve: {} and resolvePolicy: {} objects to an array of tuples */\n const objects2Tuples = (resolveObj: Obj, resolvePolicies: { [key: string]: ResolvePolicy }) =>\n Object.keys(resolveObj || {}).map(token => ({token, val: resolveObj[token], deps: undefined, policy: resolvePolicies[token]}));\n\n /** fetch DI annotations from a function or ng1-style array */\n const annotate = (fn: Function) => {\n let $injector = services.$injector;\n // ng1 doesn't have an $injector until runtime.\n // If the $injector doesn't exist, use \"deferred\" literal as a\n // marker indicating they should be annotated when runtime starts\n return fn['$inject'] || ($injector && $injector.annotate(fn, $injector.strictDi)) || \"deferred\";\n };\n\n /** true if the object has both `token` and `resolveFn`, and is probably a [[ResolveLiteral]] */\n const isResolveLiteral = (obj: any) => !!(obj.token && obj.resolveFn);\n\n /** true if the object looks like a provide literal, or a ng2 Provider */\n const isLikeNg2Provider = (obj: any) => !!((obj.provide || obj.token) && (obj.useValue || obj.useFactory || obj.useExisting || obj.useClass));\n\n /** true if the object looks like a tuple from obj2Tuples */\n const isTupleFromObj = (obj: any) => !!(obj && obj.val && (isString(obj.val) || isArray(obj.val) || isFunction(obj.val)));\n\n /** extracts the token from a Provider or provide literal */\n const token = (p: any) => p.provide || p.token;\n\n /** Given a literal resolve or provider object, returns a Resolvable */\n const literal2Resolvable = pattern([\n [prop('resolveFn'), p => new Resolvable(token(p), p.resolveFn, p.deps, p.policy)],\n [prop('useFactory'), p => new Resolvable(token(p), p.useFactory, (p.deps || p.dependencies), p.policy)],\n [prop('useClass'), p => new Resolvable(token(p), () => new (p.useClass)(), [], p.policy)],\n [prop('useValue'), p => new Resolvable(token(p), () => p.useValue, [], p.policy, p.useValue)],\n [prop('useExisting'), p => new Resolvable(token(p), identity, [p.useExisting], p.policy)],\n ]);\n\n const tuple2Resolvable = pattern([\n [pipe(prop(\"val\"), isString), (tuple: Tuple) => new Resolvable(tuple.token, identity, [ tuple.val ], tuple.policy)],\n [pipe(prop(\"val\"), isArray), (tuple: Tuple) => new Resolvable(tuple.token, tail( tuple.val), tuple.val.slice(0, -1), tuple.policy)],\n [pipe(prop(\"val\"), isFunction), (tuple: Tuple) => new Resolvable(tuple.token, tuple.val, annotate(tuple.val), tuple.policy)],\n ]);\n\n const item2Resolvable = <(obj: any) => Resolvable> pattern([\n [is(Resolvable), (r: Resolvable) => r],\n [isResolveLiteral, literal2Resolvable],\n [isLikeNg2Provider, literal2Resolvable],\n [isTupleFromObj, tuple2Resolvable],\n [val(true), (obj: any) => { throw new Error(\"Invalid resolve value: \" + stringify(obj)) }]\n ]);\n\n // If resolveBlock is already an array, use it as-is.\n // Otherwise, assume it's an object and convert to an Array of tuples\n let decl = state.resolve;\n let items: any[] = isArray(decl) ? decl : objects2Tuples(decl, state.resolvePolicy || {});\n return items.map(item2Resolvable);\n}\n\n/**\n * @internalapi A internal global service\n *\n * StateBuilder is a factory for the internal [[StateObject]] objects.\n *\n * When you register a state with the [[StateRegistry]], you register a plain old javascript object which\n * conforms to the [[StateDeclaration]] interface. This factory takes that object and builds the corresponding\n * [[StateObject]] object, which has an API and is used internally.\n *\n * Custom properties or API may be added to the internal [[StateObject]] object by registering a decorator function\n * using the [[builder]] method.\n */\nexport class StateBuilder {\n /** An object that contains all the BuilderFunctions registered, key'd by the name of the State property they build */\n private builders: Builders;\n\n constructor(private matcher: StateMatcher, urlMatcherFactory: UrlMatcherFactory) {\n let self = this;\n\n const root = () => matcher.find(\"\");\n const isRoot = (state: StateObject) => state.name === \"\";\n\n function parentBuilder(state: StateObject) {\n if (isRoot(state)) return null;\n return matcher.find(self.parentName(state)) || root();\n }\n\n this.builders = {\n name: [ nameBuilder ],\n self: [ selfBuilder ],\n parent: [ parentBuilder ],\n data: [ dataBuilder ],\n // Build a URLMatcher if necessary, either via a relative or absolute URL\n url: [ getUrlBuilder(urlMatcherFactory, root) ],\n // Keep track of the closest ancestor state that has a URL (i.e. is navigable)\n navigable: [ getNavigableBuilder(isRoot) ],\n params: [ getParamsBuilder(urlMatcherFactory.paramFactory) ],\n // Each framework-specific ui-router implementation should define its own `views` builder\n // e.g., src/ng1/statebuilders/views.ts\n views: [],\n // Keep a full path from the root down to this state as this is needed for state activation.\n path: [ pathBuilder ],\n // Speed up $state.includes() as it's used a lot\n includes: [ includesBuilder ],\n resolvables: [ resolvablesBuilder ]\n };\n }\n\n /**\n * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).\n * More than one BuilderFunction can be registered for a given property.\n *\n * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.\n *\n * @param name The name of the State property being registered for.\n * @param fn The BuilderFunction which will be used to build the State property\n * @returns a function which deregisters the BuilderFunction\n */\n builder(name: string, fn: BuilderFunction): (BuilderFunction|BuilderFunction[]|Function) {\n let builders = this.builders;\n let array = builders[name] || [];\n // Backwards compat: if only one builder exists, return it, else return whole arary.\n if (isString(name) && !isDefined(fn)) return array.length > 1 ? array : array[0];\n if (!isString(name) || !isFunction(fn)) return;\n\n builders[name] = array;\n builders[name].push(fn);\n return () => builders[name].splice(builders[name].indexOf(fn, 1)) && null;\n }\n\n /**\n * Builds all of the properties on an essentially blank State object, returning a State object which has all its\n * properties and API built.\n *\n * @param state an uninitialized State object\n * @returns the built State object\n */\n build(state: StateObject): StateObject {\n let {matcher, builders} = this;\n let parent = this.parentName(state);\n\n if (parent && !matcher.find(parent, undefined, false)) {\n return null;\n }\n\n for (let key in builders) {\n if (!builders.hasOwnProperty(key)) continue;\n let chain = builders[key].reduce((parentFn: BuilderFunction, step: BuilderFunction) => (_state) => step(_state, parentFn), noop);\n state[key] = chain(state);\n }\n return state;\n }\n\n parentName(state: StateObject) {\n // name = 'foo.bar.baz.**'\n let name = state.name || \"\";\n // segments = ['foo', 'bar', 'baz', '.**']\n let segments = name.split('.');\n // segments = ['foo', 'bar', 'baz']\n let lastSegment = segments.pop();\n // segments = ['foo', 'bar'] (ignore .** segment for future states)\n if (lastSegment === '**') segments.pop();\n\n if (segments.length) {\n if (state.parent) {\n throw new Error(`States that specify the 'parent:' property should not have a '.' in their name (${name})`);\n }\n\n // 'foo.bar'\n return segments.join(\".\");\n }\n\n if (!state.parent) return \"\";\n return isString(state.parent) ? state.parent : state.parent.name;\n }\n\n name(state: StateObject) {\n let name = state.name;\n if (name.indexOf('.') !== -1 || !state.parent) return name;\n\n let parentName = isString(state.parent) ? state.parent : state.parent.name;\n return parentName ? parentName + \".\" + name : name;\n }\n}\n", + "/** @module state */ /** for typedoc */\nimport {isString} from \"../common/predicates\";\nimport {StateOrName} from \"./interface\";\nimport {StateObject} from \"./stateObject\";\nimport {values} from \"../common/common\";\n\nexport class StateMatcher {\n constructor (private _states: { [key: string]: StateObject }) { }\n \n isRelative(stateName: string) {\n stateName = stateName || \"\";\n return stateName.indexOf(\".\") === 0 || stateName.indexOf(\"^\") === 0;\n }\n\n\n find(stateOrName: StateOrName, base?: StateOrName, matchGlob = true): StateObject {\n if (!stateOrName && stateOrName !== \"\") return undefined;\n let isStr = isString(stateOrName);\n let name: string = isStr ? stateOrName : (stateOrName).name;\n\n if (this.isRelative(name)) name = this.resolvePath(name, base);\n let state = this._states[name];\n\n if (state && (isStr || (!isStr && (state === stateOrName || state.self === stateOrName)))) {\n return state;\n } else if (isStr && matchGlob) {\n let _states = values(this._states);\n let matches = _states.filter(state =>\n state.__stateObjectCache.nameGlob &&\n state.__stateObjectCache.nameGlob.matches(name)\n );\n\n if (matches.length > 1) {\n console.log(`stateMatcher.find: Found multiple matches for ${name} using glob: `, matches.map(match => match.name));\n }\n return matches[0];\n }\n return undefined;\n }\n\n resolvePath(name: string, base: StateOrName) {\n if (!base) throw new Error(`No reference point given for path '${name}'`);\n \n let baseState: StateObject = this.find(base);\n\n let splitName = name.split(\".\"), i = 0, pathLength = splitName.length, current = baseState;\n\n for (; i < pathLength; i++) {\n if (splitName[i] === \"\" && i === 0) {\n current = baseState;\n continue;\n }\n if (splitName[i] === \"^\") {\n if (!current.parent) throw new Error(`Path '${name}' not valid for state '${baseState.name}'`);\n current = current.parent;\n continue;\n }\n break;\n }\n let relName = splitName.slice(i).join(\".\");\n return current.name + (current.name && relName ? \".\" : \"\") + relName;\n }\n}\n", + "/** @module state */ /** for typedoc */\nimport { inArray } from \"../common/common\";\nimport { isString } from \"../common/predicates\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { StateObject } from \"./stateObject\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateRegistryListener, StateRegistry } from \"./stateRegistry\";\nimport { Disposable } from \"../interface\";\nimport { UrlRouter } from \"../url/urlRouter\";\nimport { prop } from \"../common/hof\";\nimport { StateMatcher } from \"./stateMatcher\";\n\n/** @internalapi */\nexport class StateQueueManager implements Disposable {\n queue: StateObject[];\n matcher: StateMatcher;\n\n constructor(\n private $registry: StateRegistry,\n private $urlRouter: UrlRouter,\n public states: { [key: string]: StateObject; },\n public builder: StateBuilder,\n public listeners: StateRegistryListener[]) {\n this.queue = [];\n this.matcher = $registry.matcher;\n }\n\n /** @internalapi */\n dispose() {\n this.queue = [];\n }\n\n register(stateDecl: _StateDeclaration) {\n let queue = this.queue;\n let state = StateObject.create(stateDecl);\n let name = state.name;\n\n if (!isString(name)) throw new Error(\"State must have a valid name\");\n if (this.states.hasOwnProperty(name) || inArray(queue.map(prop('name')), name))\n throw new Error(`State '${name}' is already defined`);\n\n queue.push(state);\n this.flush();\n\n return state;\n }\n\n flush() {\n let {queue, states, builder} = this;\n let registered: StateObject[] = [], // states that got registered\n orphans: StateObject[] = [], // states that don't yet have a parent registered\n previousQueueLength = {}; // keep track of how long the queue when an orphan was first encountered\n const getState = (name) =>\n this.states.hasOwnProperty(name) && this.states[name];\n\n while (queue.length > 0) {\n let state: StateObject = queue.shift();\n let name = state.name;\n let result: StateObject = builder.build(state);\n let orphanIdx: number = orphans.indexOf(state);\n\n if (result) {\n let existingState = getState(name);\n if (existingState && existingState.name === name) {\n throw new Error(`State '${name}' is already defined`);\n }\n\n let existingFutureState = getState(name + \".**\");\n if (existingFutureState) {\n // Remove future state of the same name\n this.$registry.deregister(existingFutureState);\n }\n\n states[name] = state;\n this.attachRoute(state);\n if (orphanIdx >= 0) orphans.splice(orphanIdx, 1);\n registered.push(state);\n continue;\n }\n\n let prev = previousQueueLength[name];\n previousQueueLength[name] = queue.length;\n if (orphanIdx >= 0 && prev === queue.length) {\n // Wait until two consecutive iterations where no additional states were dequeued successfully.\n // throw new Error(`Cannot register orphaned state '${name}'`);\n queue.push(state);\n return states;\n } else if (orphanIdx < 0) {\n orphans.push(state);\n }\n\n queue.push(state);\n }\n\n if (registered.length) {\n this.listeners.forEach(listener => listener(\"registered\", registered.map(s => s.self)));\n }\n\n return states;\n }\n\n attachRoute(state: StateObject) {\n if (state.abstract || !state.url) return;\n\n this.$urlRouter.rule(this.$urlRouter.urlRuleFactory.create(state));\n }\n}\n", + "/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateObject } from \"./stateObject\";\nimport { StateMatcher } from \"./stateMatcher\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateQueueManager } from \"./stateQueueManager\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { BuilderFunction } from \"./stateBuilder\";\nimport { StateOrName } from \"./interface\";\nimport { removeFrom } from \"../common/common\";\nimport { UIRouter } from \"../router\";\nimport { propEq } from \"../common/hof\";\n\n/**\n * The signature for the callback function provided to [[StateRegistry.onStatesChanged]].\n *\n * This callback receives two parameters:\n *\n * @param event a string; either \"registered\" or \"deregistered\"\n * @param states the list of [[StateDeclaration]]s that were registered (or deregistered).\n */\nexport type StateRegistryListener = (event: \"registered\"|\"deregistered\", states: StateDeclaration[]) => void;\n\nexport class StateRegistry {\n private _root: StateObject;\n private states: { [key: string]: StateObject } = {};\n\n matcher: StateMatcher;\n private builder: StateBuilder;\n stateQueue: StateQueueManager;\n\n listeners: StateRegistryListener[] = [];\n\n /** @internalapi */\n constructor(private _router: UIRouter) {\n this.matcher = new StateMatcher(this.states);\n this.builder = new StateBuilder(this.matcher, _router.urlMatcherFactory);\n this.stateQueue = new StateQueueManager(this, _router.urlRouter, this.states, this.builder, this.listeners);\n this._registerRoot();\n }\n\n /** @internalapi */\n private _registerRoot() {\n let rootStateDef: StateDeclaration = {\n name: '',\n url: '^',\n views: null,\n params: {\n '#': { value: null, type: 'hash', dynamic: true }\n },\n abstract: true\n };\n\n let _root = this._root = this.stateQueue.register(rootStateDef);\n _root.navigable = null;\n }\n\n /** @internalapi */\n dispose() {\n this.stateQueue.dispose();\n this.listeners = [];\n this.get().forEach(state => this.get(state) && this.deregister(state));\n }\n\n /**\n * Listen for a State Registry events\n *\n * Adds a callback that is invoked when states are registered or deregistered with the StateRegistry.\n *\n * #### Example:\n * ```js\n * let allStates = registry.get();\n *\n * // Later, invoke deregisterFn() to remove the listener\n * let deregisterFn = registry.onStatesChanged((event, states) => {\n * switch(event) {\n * case: 'registered':\n * states.forEach(state => allStates.push(state));\n * break;\n * case: 'deregistered':\n * states.forEach(state => {\n * let idx = allStates.indexOf(state);\n * if (idx !== -1) allStates.splice(idx, 1);\n * });\n * break;\n * }\n * });\n * ```\n *\n * @param listener a callback function invoked when the registered states changes.\n * The function receives two parameters, `event` and `state`.\n * See [[StateRegistryListener]]\n * @return a function that deregisters the listener\n */\n onStatesChanged(listener: StateRegistryListener): () => void {\n this.listeners.push(listener);\n return function deregisterListener() {\n removeFrom(this.listeners)(listener);\n }.bind(this);\n }\n\n /**\n * Gets the implicit root state\n *\n * Gets the root of the state tree.\n * The root state is implicitly created by UI-Router.\n * Note: this returns the internal [[StateObject]] representation, not a [[StateDeclaration]]\n *\n * @return the root [[StateObject]]\n */\n root() {\n return this._root;\n }\n\n /**\n * Adds a state to the registry\n *\n * Registers a [[StateDeclaration]] or queues it for registration.\n *\n * Note: a state will be queued if the state's parent isn't yet registered.\n *\n * @param stateDefinition the definition of the state to register.\n * @returns the internal [[StateObject]] object.\n * If the state was successfully registered, then the object is fully built (See: [[StateBuilder]]).\n * If the state was only queued, then the object is not fully built.\n */\n register(stateDefinition: _StateDeclaration): StateObject {\n return this.stateQueue.register(stateDefinition);\n }\n\n /** @hidden */\n private _deregisterTree(state: StateObject) {\n let all = this.get().map(s => s.$$state());\n const getChildren = (states: StateObject[]) => {\n let children = all.filter(s => states.indexOf(s.parent) !== -1);\n return children.length === 0 ? children : children.concat(getChildren(children));\n };\n\n let children = getChildren([state]);\n let deregistered: StateObject[] = [state].concat(children).reverse();\n\n deregistered.forEach(state => {\n let $ur = this._router.urlRouter;\n // Remove URL rule\n $ur.rules().filter(propEq(\"state\", state)).forEach($ur.removeRule.bind($ur));\n // Remove state from registry\n delete this.states[state.name];\n });\n\n return deregistered;\n }\n\n /**\n * Removes a state from the registry\n *\n * This removes a state from the registry.\n * If the state has children, they are are also removed from the registry.\n *\n * @param stateOrName the state's name or object representation\n * @returns {StateObject[]} a list of removed states\n */\n deregister(stateOrName: StateOrName) {\n let _state = this.get(stateOrName);\n if (!_state) throw new Error(\"Can't deregister state; not found: \" + stateOrName);\n let deregisteredStates = this._deregisterTree(_state.$$state());\n\n this.listeners.forEach(listener => listener(\"deregistered\", deregisteredStates.map(s => s.self)));\n return deregisteredStates;\n }\n\n /**\n * Gets all registered states\n *\n * Calling this method with no arguments will return a list of all the states that are currently registered.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @return a list of [[StateDeclaration]]s\n */\n get(): StateDeclaration[];\n\n /**\n * Gets a registered state\n *\n * Given a state or a name, finds and returns the [[StateDeclaration]] from the registry.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @param stateOrName either the name of a state, or a state object.\n * @param base the base state to use when stateOrName is relative.\n * @return a registered [[StateDeclaration]] that matched the `stateOrName`, or null if the state isn't registered.\n */\n get(stateOrName: StateOrName, base?: StateOrName): StateDeclaration;\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n if (arguments.length === 0)\n return Object.keys(this.states).map(name => this.states[name].self);\n let found = this.matcher.find(stateOrName, base);\n return found && found.self || null;\n }\n\n decorator(name: string, func: BuilderFunction) {\n return this.builder.builder(name, func);\n }\n}\n", + "/**\n * @coreapi\n * @module url\n */\n/** for typedoc */\nimport {\n map, defaults, inherit, identity, unnest, tail, find, Obj, pairs, allTrueR, unnestR, arrayTuples\n} from \"../common/common\";\nimport { prop, propEq } from \"../common/hof\";\nimport { isArray, isString, isDefined } from \"../common/predicates\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { RawParams } from \"../params/interface\";\nimport { ParamFactory } from \"./interface\";\nimport { joinNeighborsR, splitOnDelim } from \"../common/strings\";\n\n/** @hidden */\nfunction quoteRegExp(string: any, param?: any) {\n let surroundPattern = ['', ''], result = string.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, \"\\\\$&\");\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')]; break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:\\/(', ')|\\/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?']; break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\n/** @hidden */\nconst memoizeTo = (obj: Obj, prop: string, fn: Function) =>\n obj[prop] = obj[prop] || fn();\n\n/** @hidden */\nconst splitOnSlash = splitOnDelim('/');\n\n/** @hidden */\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @hidden */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @hidden */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @hidden */\n private _children: UrlMatcher[] = [];\n /** @hidden */\n private _params: Param[] = [];\n /** @hidden */\n private _segments: string[] = [];\n /** @hidden */\n private _compiled: string[] = [];\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param config A configuration object\n * - `caseInsensitive` - `true` if URL matching should be case insensitive, otherwise `false`, the default value (for backward compatibility) is `false`.\n * - `strict` - `false` if matching against a URL with a trailing slash should be treated as equivalent to a URL without a trailing slash, the default value is `true`.\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, public config?: any) {\n this.pattern = pattern;\n this.config = defaults(this.config, {\n params: {},\n strict: true,\n caseInsensitive: false,\n paramMap: identity\n });\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\:\\s*( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\]+ - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]+|\\\\.)*\\} - a matched set of curly braces containing other atoms\n let placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n searchPlaceholder = /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n last = 0, m: RegExpExecArray, patterns: any[][] = [];\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id))) throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean) => {\n // IE[78] returns '' for unmatched groups instead of null\n let id = m[2] || m[3];\n let regexp = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (regexp) => inherit(paramTypes.type(isSearch ? \"query\" : \"path\"), {\n pattern: new RegExp(regexp, this.config.caseInsensitive ? 'i' : undefined)\n });\n\n return {\n id,\n regexp,\n cfg: this.config.params[id],\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp)\n };\n };\n\n let p: any, segment: string;\n\n while ((m = placeholder.exec(pattern))) {\n p = matchDetails(m, false);\n if (p.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromPath(p.id, p.type, this.config.paramMap(p.cfg, false)));\n this._segments.push(p.segment);\n patterns.push([p.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n let i = segment.indexOf('?');\n\n if (i >= 0) {\n let search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n while ((m = searchPlaceholder.exec(search))) {\n p = matchDetails(m, true);\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromSearch(p.id, p.type, this.config.paramMap(p.cfg, true)));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map(pattern => quoteRegExp.apply(null, pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @hidden */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n let match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp([\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '\\/?' : '',\n '$'\n ].join(''), this.config.caseInsensitive ? 'i' : undefined);\n }).exec(path);\n\n if (!match) return null;\n\n //options = defaults(options, { isolate: false });\n\n let allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter(param => !param.isSearch()),\n searchParams: Param[] = allParams.filter(param => param.isSearch()),\n nPathSegments = this._cache.path.map(urlm => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1)\n throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(string: string) {\n const reverseString = (str: string) => str.split(\"\").reverse().join(\"\");\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, \"-\");\n\n let split = reverseString(string).split(/-(?!\\\\)/);\n let allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n let param: Param = pathParams[i];\n let value: (any|any[]) = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (value && param.array === true) value = decodePathArray(value);\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n }\n searchParams.forEach(param => {\n let value = search[param.id];\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n });\n\n if (hash) values[\"#\"] = hash;\n\n return values;\n }\n\n /**\n * @hidden\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map(matcher => matcher._params));\n }\n\n /**\n * @hidden\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (let param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n let parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) =>\n !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n let paramSchema = this.parameters().filter(paramDef => params.hasOwnProperty(paramDef.id));\n return paramSchema.map(paramDef => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n let urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n let pathSegmentsAndParams: Array = urlMatchers.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map(x => isString(x) ? x : getDetails(x));\n\n // Extract the query params into a separate array\n let queryParams: Array = urlMatchers.map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n let value = param.value(values[param.id]);\n let isValid = param.validates(value);\n let isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n let squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n let encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n let pathString = pathSegmentsAndParams.reduce((acc: string, x: string|ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n let { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return (acc.match(/\\/$/)) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map( encoded, UrlMatcher.encodeDashes).join(\"-\");\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent( encoded);\n }, \"\");\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n let queryString = queryParams.map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [ encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map( encoded, encodeURIComponent);\n\n return ( encoded).map(val => `${param.id}=${val}`);\n }).filter(identity).reduce(unnestR, []).join(\"&\");\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : \"\") + (values[\"#\"] ? \"#\" + values[\"#\"] : \"\");\n }\n\n /** @hidden */\n static encodeDashes(str: string) { // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, c => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @hidden Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n let staticSegments = matcher._segments;\n let pathParams = matcher._params.filter(p => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter(x => x !== \"\" && isDefined(x));\n }\n\n /** @hidden Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter(p => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n matcher._cache.segments = matcher._cache.segments ||\n matcher._cache.path.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map(x => isString(x) ? splitOnSlash(x) : x)\n .reduce(unnestR, []);\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n matcher._cache.weights = matcher._cache.weights ||\n segments(matcher).map(segment => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n });\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a), weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n let cmp, i, pairs = arrayTuples(weightsA, weightsB);\n\n for (i = 0; i < pairs.length; i++) {\n cmp = pairs[i][0] - pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n}\n\n/** @hidden */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: (boolean|string);\n encoded: (string|string[]);\n}\n", + "/**\n * @internalapi\n * @module url\n */ /** for typedoc */\nimport { forEach, extend } from \"../common/common\";\nimport { isObject, isDefined, isFunction, isString } from \"../common/predicates\";\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { ParamTypeDefinition } from \"../params/interface\";\nimport { Disposable } from \"../interface\";\nimport { ParamType } from \"../params/paramType\";\nimport { ParamFactory, UrlMatcherConfig } from \"./interface\";\n\n/**\n * Factory for [[UrlMatcher]] instances.\n *\n * The factory is available to ng1 services as\n * `$urlMatcherFactory` or ng1 providers as `$urlMatcherFactoryProvider`.\n */\nexport class UrlMatcherFactory implements Disposable, UrlMatcherConfig {\n /** @hidden */ paramTypes = new ParamTypes();\n /** @hidden */ _isCaseInsensitive: boolean = false;\n /** @hidden */ _isStrictMode: boolean = true;\n /** @hidden */ _defaultSquashPolicy: (boolean|string) = false;\n\n constructor() {\n extend(this, { UrlMatcher, Param });\n }\n\n /** @inheritdoc */\n caseInsensitive(value?: boolean): boolean {\n return this._isCaseInsensitive = isDefined(value) ? value : this._isCaseInsensitive;\n }\n\n /** @inheritdoc */\n strictMode(value?: boolean): boolean {\n return this._isStrictMode = isDefined(value) ? value : this._isStrictMode;\n }\n\n /** @inheritdoc */\n defaultSquashPolicy(value?: (boolean|string)) {\n if (isDefined(value) && value !== true && value !== false && !isString(value))\n throw new Error(`Invalid squash policy: ${value}. Valid policies: false, true, arbitrary-string`);\n return this._defaultSquashPolicy = isDefined(value) ? value : this._defaultSquashPolicy;\n }\n\n /** @hidden */\n private _getConfig = (config) =>\n extend({ strict: this._isStrictMode, caseInsensitive: this._isCaseInsensitive }, config);\n\n /**\n * Creates a [[UrlMatcher]] for the specified pattern.\n *\n * @param pattern The URL pattern.\n * @param config The config object hash.\n * @returns The UrlMatcher.\n */\n compile(pattern: string, config?: { [key: string]: any }) {\n return new UrlMatcher(pattern, this.paramTypes, this.paramFactory, this._getConfig(config));\n }\n\n /**\n * Returns true if the specified object is a [[UrlMatcher]], or false otherwise.\n *\n * @param object The object to perform the type check against.\n * @returns `true` if the object matches the `UrlMatcher` interface, by\n * implementing all the same methods.\n */\n isMatcher(object: any): boolean {\n // TODO: typeof?\n if (!isObject(object)) return false;\n let result = true;\n\n forEach(UrlMatcher.prototype, (val, name) => {\n if (isFunction(val)) result = result && (isDefined(object[name]) && isFunction(object[name]));\n });\n return result;\n };\n\n /**\n * Creates and registers a custom [[ParamType]] object\n *\n * A [[ParamType]] can be used to generate URLs with typed parameters.\n *\n * @param name The type name.\n * @param definition The type definition. See [[ParamTypeDefinition]] for information on the values accepted.\n * @param definitionFn A function that is injected before the app runtime starts.\n * The result of this function should be a [[ParamTypeDefinition]].\n * The result is merged into the existing `definition`.\n * See [[ParamType]] for information on the values accepted.\n *\n * @returns - if a type was registered: the [[UrlMatcherFactory]]\n * - if only the `name` parameter was specified: the currently registered [[ParamType]] object, or undefined\n *\n * Note: Register custom types *before using them* in a state definition.\n *\n * See [[ParamTypeDefinition]] for examples\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n let type = this.paramTypes.type(name, definition, definitionFn);\n return !isDefined(definition) ? type : this;\n };\n\n /** @hidden */\n $get() {\n this.paramTypes.enqueue = false;\n this.paramTypes._flushTypeQueue();\n return this;\n };\n\n /** @internalapi Creates a new [[Param]] for a given location (DefType) */\n paramFactory: ParamFactory = {\n /** Creates a new [[Param]] from a CONFIG block */\n fromConfig: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.CONFIG, this),\n\n /** Creates a new [[Param]] from a url PATH */\n fromPath: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.PATH, this),\n\n /** Creates a new [[Param]] from a url SEARCH */\n fromSearch: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.SEARCH, this),\n };\n\n /** @internalapi */\n dispose() {\n this.paramTypes.dispose();\n }\n}\n", + "/**\n * @coreapi\n * @module url\n */ /** */\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { isString, isDefined, isFunction, isState } from \"../common/predicates\";\nimport { UIRouter } from \"../router\";\nimport { identity, extend } from \"../common/common\";\nimport { is, pattern } from \"../common/hof\";\nimport { StateObject } from \"../state/stateObject\";\nimport { RawParams } from \"../params/interface\";\nimport {\n UrlRule, UrlRuleMatchFn, UrlRuleHandlerFn, UrlRuleType, UrlParts, MatcherUrlRule, StateRule, RegExpRule\n} from \"./interface\";\n\n/**\n * Creates a [[UrlRule]]\n *\n * Creates a [[UrlRule]] from a:\n *\n * - `string`\n * - [[UrlMatcher]]\n * - `RegExp`\n * - [[StateObject]]\n * @internalapi\n */\nexport class UrlRuleFactory {\n constructor(public router: UIRouter) { }\n\n compile(str: string) {\n return this.router.urlMatcherFactory.compile(str);\n }\n\n static isUrlRule = obj =>\n obj && ['type', 'match', 'handler'].every(key => isDefined(obj[key]));\n\n create(what: string|UrlMatcher|StateObject|RegExp|UrlRuleMatchFn, handler?: string|UrlRuleHandlerFn): UrlRule {\n const makeRule = pattern([\n [isString, (_what: string) => makeRule(this.compile(_what))],\n [is(UrlMatcher), (_what: UrlMatcher) => this.fromUrlMatcher(_what, handler)],\n [isState, (_what: StateObject) => this.fromState(_what, this.router)],\n [is(RegExp), (_what: RegExp) => this.fromRegExp(_what, handler)],\n [isFunction, (_what: UrlRuleMatchFn) => new BaseUrlRule(_what, handler as UrlRuleHandlerFn)],\n ]);\n\n let rule = makeRule(what);\n if (!rule) throw new Error(\"invalid 'what' in when()\");\n return rule;\n }\n\n /**\n * A UrlRule which matches based on a UrlMatcher\n *\n * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, match => \"/home/\" + match.fooId + \"/\" + match.barId);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n *\n * ## Handler as UrlMatcher\n *\n * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.\n * The `handler` UrlMatcher is formatted using the matched param from the first matcher.\n * The url is replaced with the result.\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var handler = $umf.compile(\"/home/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, handler);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n */\n fromUrlMatcher(urlMatcher: UrlMatcher, handler: string|UrlMatcher|UrlRuleHandlerFn): MatcherUrlRule {\n let _handler: UrlRuleHandlerFn = handler as any;\n if (isString(handler)) handler = this.router.urlMatcherFactory.compile(handler);\n if (is(UrlMatcher)(handler)) _handler = (match: RawParams) => (handler as UrlMatcher).format(match);\n\n function match(url: UrlParts) {\n let match = urlMatcher.exec(url.path, url.search, url.hash);\n return urlMatcher.validates(match) && match;\n }\n\n // Prioritize URLs, lowest to highest:\n // - Some optional URL parameters, but none matched\n // - No optional parameters in URL\n // - Some optional parameters, some matched\n // - Some optional parameters, all matched\n function matchPriority(params: RawParams): number {\n let optional = urlMatcher.parameters().filter(param => param.isOptional);\n if (!optional.length) return 0.000001;\n let matched = optional.filter(param => params[param.id]);\n return matched.length / optional.length;\n }\n\n let details = { urlMatcher, matchPriority, type: \"URLMATCHER\" };\n return extend(new BaseUrlRule(match, _handler), details) as MatcherUrlRule;\n }\n\n\n /**\n * A UrlRule which matches a state by its url\n *\n * #### Example:\n * ```js\n * var rule = factory.fromState($state.get('foo'), router);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match);\n * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }\n * ```\n */\n fromState(state: StateObject, router: UIRouter): StateRule {\n /**\n * Handles match by transitioning to matched state\n *\n * First checks if the router should start a new transition.\n * A new transition is not required if the current state's URL\n * and the new URL are already identical\n */\n const handler = (match: RawParams) => {\n let $state = router.stateService;\n let globals = router.globals;\n if ($state.href(state, match) !== $state.href(globals.current, globals.params)) {\n $state.transitionTo(state, match, { inherit: true, source: \"url\" });\n }\n };\n\n let details = { state, type: \"STATE\" };\n return extend(this.fromUrlMatcher(state.url, handler), details) as StateRule;\n }\n\n /**\n * A UrlRule which matches based on a regular expression\n *\n * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - regexp match array (from `regexp`)\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, match => \"/home/\" + match[1])\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n *\n * ## Handler as string\n *\n * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.\n * The string is first interpolated using `string.replace()` style pattern.\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, \"/home/$1\")\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n */\n fromRegExp(regexp: RegExp, handler: string|UrlRuleHandlerFn): RegExpRule {\n if (regexp.global || regexp.sticky) throw new Error(\"Rule RegExp must not be global or sticky\");\n\n /**\n * If handler is a string, the url will be replaced by the string.\n * If the string has any String.replace() style variables in it (like `$2`),\n * they will be replaced by the captures from [[match]]\n */\n const redirectUrlTo = (match: RegExpExecArray) =>\n // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern\n (handler as string).replace(/\\$(\\$|\\d{1,2})/, (m, what) =>\n match[what === '$' ? 0 : Number(what)]);\n\n const _handler = isString(handler) ? redirectUrlTo : handler;\n\n const match = (url: UrlParts): RegExpExecArray =>\n regexp.exec(url.path);\n\n let details = { regexp, type: \"REGEXP\" };\n return extend(new BaseUrlRule(match, _handler), details) as RegExpRule\n }\n}\n\n/**\n * A base rule which calls `match`\n *\n * The value from the `match` function is passed through to the `handler`.\n * @internalapi\n */\nexport class BaseUrlRule implements UrlRule {\n $id: number;\n priority: number;\n type: UrlRuleType = \"RAW\";\n handler: UrlRuleHandlerFn;\n matchPriority = (match) => 0 - this.$id;\n\n constructor(public match: UrlRuleMatchFn, handler?: UrlRuleHandlerFn) {\n this.handler = handler || identity;\n }\n}", + "/**\n * @internalapi\n * @module url\n */\n/** for typedoc */\nimport { createProxyFunctions, extend, removeFrom } from '../common/common';\nimport { isDefined, isFunction, isString } from '../common/predicates';\nimport { UrlMatcher } from './urlMatcher';\nimport { RawParams } from '../params/interface';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { is, pattern, val } from '../common/hof';\nimport { UrlRuleFactory } from './urlRule';\nimport { TargetState } from '../state/targetState';\nimport { MatcherUrlRule, MatchResult, UrlParts, UrlRule, UrlRuleHandlerFn, UrlRuleMatchFn, UrlRulesApi, UrlSyncApi, } from './interface';\nimport { TargetStateDef } from '../state/interface';\nimport { stripFile } from '../common';\n\n/** @hidden */\nfunction appendBasePath(url: string, isHtml5: boolean, absolute: boolean, baseHref: string): string {\n if (baseHref === '/') return url;\n if (isHtml5) return stripFile(baseHref) + url;\n if (absolute) return baseHref.slice(1) + url;\n return url;\n}\n\n/** @hidden */\nconst prioritySort = (a: UrlRule, b: UrlRule) =>\n (b.priority || 0) - (a.priority || 0);\n\n/** @hidden */\nconst typeSort = (a: UrlRule, b: UrlRule) => {\n const weights = { \"STATE\": 4, \"URLMATCHER\": 4, \"REGEXP\": 3, \"RAW\": 2, \"OTHER\": 1 };\n return (weights[a.type] || 0) - (weights[b.type] || 0);\n};\n\n/** @hidden */\nconst urlMatcherSort = (a: MatcherUrlRule, b: MatcherUrlRule) =>\n !a.urlMatcher || !b.urlMatcher ? 0 : UrlMatcher.compare(a.urlMatcher, b.urlMatcher);\n\n/** @hidden */\nconst idSort = (a: UrlRule, b: UrlRule) => {\n // Identically sorted STATE and URLMATCHER best rule will be chosen by `matchPriority` after each rule matches the URL\n const useMatchPriority = { STATE: true, URLMATCHER: true };\n const equal = useMatchPriority[a.type] && useMatchPriority[b.type];\n return equal ? 0 : (a.$id || 0) - (b.$id || 0);\n};\n\n/**\n * Default rule priority sorting function.\n *\n * Sorts rules by:\n *\n * - Explicit priority (set rule priority using [[UrlRulesApi.when]])\n * - Rule type (STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1)\n * - `UrlMatcher` specificity ([[UrlMatcher.compare]]): works for STATE and URLMATCHER types to pick the most specific rule.\n * - Rule registration order (for rule types other than STATE and URLMATCHER)\n * - Equally sorted State and UrlMatcher rules will each match the URL.\n * Then, the *best* match is chosen based on how many parameter values were matched.\n *\n * @coreapi\n */\nlet defaultRuleSortFn: (a: UrlRule, b: UrlRule) => number;\ndefaultRuleSortFn = (a, b) => {\n let cmp = prioritySort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = typeSort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = urlMatcherSort(a as MatcherUrlRule, b as MatcherUrlRule);\n if (cmp !== 0) return cmp;\n\n return idSort(a, b);\n};\n\n/**\n * Updates URL and responds to URL changes\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class updates the URL when the state changes.\n * It also responds to changes in the URL.\n */\nexport class UrlRouter implements UrlRulesApi, UrlSyncApi, Disposable {\n /** used to create [[UrlRule]] objects for common cases */\n public urlRuleFactory: UrlRuleFactory;\n\n /** @hidden */ private _router: UIRouter;\n /** @hidden */ private location: string;\n /** @hidden */ private _sortFn = defaultRuleSortFn;\n /** @hidden */ private _stopFn: Function;\n /** @hidden */ _rules: UrlRule[] = [];\n /** @hidden */ private _otherwiseFn: UrlRule;\n /** @hidden */ interceptDeferred = false;\n /** @hidden */ private _id = 0;\n /** @hidden */ private _sorted = false;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this.urlRuleFactory = new UrlRuleFactory(router);\n createProxyFunctions(val(UrlRouter.prototype), this, val(this));\n }\n\n /** @internalapi */\n dispose() {\n this.listen(false);\n this._rules = [];\n delete this._otherwiseFn;\n }\n\n /** @inheritdoc */\n sort(compareFn?: (a: UrlRule, b: UrlRule) => number) {\n this._rules = this.stableSort(this._rules, this._sortFn = compareFn || this._sortFn);\n this._sorted = true;\n }\n\n private ensureSorted() {\n this._sorted || this.sort();\n }\n\n private stableSort(arr, compareFn) {\n const arrOfWrapper = arr.map((elem, idx) => ({ elem, idx }));\n\n arrOfWrapper.sort((wrapperA, wrapperB) => {\n const cmpDiff = compareFn(wrapperA.elem, wrapperB.elem);\n return cmpDiff === 0\n ? wrapperA.idx - wrapperB.idx\n : cmpDiff;\n });\n\n return arrOfWrapper.map(wrapper => wrapper.elem);\n }\n\n /**\n * Given a URL, check all rules and return the best [[MatchResult]]\n * @param url\n * @returns {MatchResult}\n */\n match(url: UrlParts): MatchResult {\n this.ensureSorted();\n\n url = extend({path: '', search: {}, hash: '' }, url);\n let rules = this.rules();\n if (this._otherwiseFn) rules.push(this._otherwiseFn);\n\n // Checks a single rule. Returns { rule: rule, match: match, weight: weight } if it matched, or undefined\n\n let checkRule = (rule: UrlRule): MatchResult => {\n let match = rule.match(url, this._router);\n return match && { match, rule, weight: rule.matchPriority(match) };\n };\n\n // The rules are pre-sorted.\n // - Find the first matching rule.\n // - Find any other matching rule that sorted *exactly the same*, according to `.sort()`.\n // - Choose the rule with the highest match weight.\n let best: MatchResult;\n for (let i = 0; i < rules.length; i++) {\n // Stop when there is a 'best' rule and the next rule sorts differently than it.\n if (best && this._sortFn(rules[i], best.rule) !== 0) break;\n\n let current = checkRule(rules[i]);\n // Pick the best MatchResult\n best = (!best || current && current.weight > best.weight) ? current : best;\n }\n\n return best;\n }\n\n /** @inheritdoc */\n sync(evt?) {\n if (evt && evt.defaultPrevented) return;\n\n let router = this._router,\n $url = router.urlService,\n $state = router.stateService;\n\n let url: UrlParts = {\n path: $url.path(), search: $url.search(), hash: $url.hash(),\n };\n\n let best = this.match(url);\n\n let applyResult = pattern([\n [isString, (newurl: string) => $url.url(newurl, true)],\n [TargetState.isDef, (def: TargetStateDef) => $state.go(def.state, def.params, def.options)],\n [is(TargetState), (target: TargetState) => $state.go(target.state(), target.params(), target.options())],\n ]);\n\n applyResult(best && best.rule.handler(best.match, url, router));\n }\n\n /** @inheritdoc */\n listen(enabled?: boolean): Function {\n if (enabled === false) {\n this._stopFn && this._stopFn();\n delete this._stopFn;\n } else {\n return this._stopFn = this._stopFn || this._router.urlService.onChange(evt => this.sync(evt));\n }\n }\n\n /**\n * Internal API.\n * @internalapi\n */\n update(read?: boolean) {\n let $url = this._router.locationService;\n if (read) {\n this.location = $url.path();\n return;\n }\n if ($url.path() === this.location) return;\n\n $url.url(this.location, true);\n }\n\n /**\n * Internal API.\n *\n * Pushes a new location to the browser history.\n *\n * @internalapi\n * @param urlMatcher\n * @param params\n * @param options\n */\n push(urlMatcher: UrlMatcher, params?: RawParams, options?: { replace?: (string|boolean) }) {\n let replace = options && !!options.replace;\n this._router.urlService.url(urlMatcher.format(params || {}), replace);\n }\n\n /**\n * Builds and returns a URL with interpolated parameters\n *\n * #### Example:\n * ```js\n * matcher = $umf.compile(\"/about/:person\");\n * params = { person: \"bob\" };\n * $bob = $urlRouter.href(matcher, params);\n * // $bob == \"/about/bob\";\n * ```\n *\n * @param urlMatcher The [[UrlMatcher]] object which is used as the template of the URL to generate.\n * @param params An object of parameter values to fill the matcher's required parameters.\n * @param options Options object. The options are:\n *\n * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. \"http://www.example.com/fullurl\".\n *\n * @returns Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher`\n */\n href(urlMatcher: UrlMatcher, params?: any, options?: { absolute: boolean }): string {\n let url = urlMatcher.format(params);\n if (url == null) return null;\n\n options = options || { absolute: false };\n\n let cfg = this._router.urlService.config;\n let isHtml5 = cfg.html5Mode();\n if (!isHtml5 && url !== null) {\n url = \"#\" + cfg.hashPrefix() + url;\n }\n url = appendBasePath(url, isHtml5, options.absolute, cfg.baseHref());\n\n if (!options.absolute || !url) {\n return url;\n }\n\n let slash = (!isHtml5 && url ? '/' : ''), port = cfg.port();\n port = (port === 80 || port === 443 ? '' : ':' + port);\n\n return [cfg.protocol(), '://', cfg.host(), port, slash, url].join('');\n }\n\n\n /**\n * Manually adds a URL Rule.\n *\n * Usually, a url rule is added using [[StateDeclaration.url]] or [[when]].\n * This api can be used directly for more control (to register a [[BaseUrlRule]], for example).\n * Rules can be created using [[UrlRouter.urlRuleFactory]], or create manually as simple objects.\n *\n * A rule should have a `match` function which returns truthy if the rule matched.\n * It should also have a `handler` function which is invoked if the rule is the best match.\n *\n * @return a function that deregisters the rule\n */\n rule(rule: UrlRule): Function {\n if (!UrlRuleFactory.isUrlRule(rule)) throw new Error(\"invalid rule\");\n rule.$id = this._id++;\n rule.priority = rule.priority || 0;\n\n this._rules.push(rule);\n this._sorted = false;\n\n return () => this.removeRule(rule);\n }\n\n /** @inheritdoc */\n removeRule(rule): void {\n removeFrom(this._rules, rule);\n }\n\n /** @inheritdoc */\n rules(): UrlRule[] {\n this.ensureSorted();\n return this._rules.slice();\n }\n\n /** @inheritdoc */\n otherwise(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n this._otherwiseFn = this.urlRuleFactory.create(val(true), handlerFn);\n this._sorted = false;\n };\n\n /** @inheritdoc */\n initial(handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n let matchFn: UrlRuleMatchFn = (urlParts, router) =>\n router.globals.transitionHistory.size() === 0 && !!/^\\/?$/.exec(urlParts.path);\n\n this.rule(this.urlRuleFactory.create(matchFn, handlerFn));\n };\n\n /** @inheritdoc */\n when(matcher: (RegExp|UrlMatcher|string), handler: string|UrlRuleHandlerFn, options?: { priority: number }): UrlRule {\n let rule = this.urlRuleFactory.create(matcher, handler);\n if (isDefined(options && options.priority)) rule.priority = options.priority;\n this.rule(rule);\n return rule;\n };\n\n /** @inheritdoc */\n deferIntercept(defer?: boolean) {\n if (defer === undefined) defer = true;\n this.interceptDeferred = defer;\n };\n}\n\nfunction getHandlerFn(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef): UrlRuleHandlerFn {\n if (!isFunction(handler) && !isString(handler) && !is(TargetState)(handler) && !TargetState.isDef(handler)) {\n throw new Error(\"'handler' must be a string, function, TargetState, or have a state: 'newtarget' property\");\n }\n return isFunction(handler) ? handler as UrlRuleHandlerFn : val(handler);\n}\n", + "/**\n * @coreapi\n * @module view\n */ /** for typedoc */\nimport {equals, applyPairs, removeFrom, TypedMap} from \"../common/common\";\nimport {curry, prop} from \"../common/hof\";\nimport {isString, isArray} from \"../common/predicates\";\nimport {trace} from \"../common/trace\";\nimport {PathNode} from \"../path/pathNode\";\n\nimport {ActiveUIView, ViewContext, ViewConfig} from \"./interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nexport type ViewConfigFactory = (path: PathNode[], decl: _ViewDeclaration) => ViewConfig|ViewConfig[];\n\nexport interface ViewServicePluginAPI {\n _rootViewContext(context?: ViewContext): ViewContext;\n _viewConfigFactory(viewType: string, factory: ViewConfigFactory);\n _registeredUIViews(): ActiveUIView[];\n _activeViewConfigs(): ViewConfig[];\n}\n\n/**\n * The View service\n *\n * This service pairs existing `ui-view` components (which live in the DOM)\n * with view configs (from the state declaration objects: [[StateDeclaration.views]]).\n *\n * - After a successful Transition, the views from the newly entered states are activated via [[activateViewConfig]].\n * The views from exited states are deactivated via [[deactivateViewConfig]].\n * (See: the [[registerActivateViews]] Transition Hook)\n *\n * - As `ui-view` components pop in and out of existence, they register themselves using [[registerUIView]].\n *\n * - When the [[sync]] function is called, the registered `ui-view`(s) ([[ActiveUIView]])\n * are configured with the matching [[ViewConfig]](s)\n *\n */\nexport class ViewService {\n private _uiViews: ActiveUIView[] = [];\n private _viewConfigs: ViewConfig[] = [];\n private _rootContext: ViewContext;\n private _viewConfigFactories: { [key: string]: ViewConfigFactory } = {};\n\n constructor() { }\n\n public _pluginapi: ViewServicePluginAPI = {\n _rootViewContext: this._rootViewContext.bind(this),\n _viewConfigFactory: this._viewConfigFactory.bind(this),\n _registeredUIViews: () => this._uiViews,\n _activeViewConfigs: () => this._viewConfigs,\n };\n\n private _rootViewContext(context?: ViewContext): ViewContext {\n return this._rootContext = context || this._rootContext;\n };\n\n private _viewConfigFactory(viewType: string, factory: ViewConfigFactory) {\n this._viewConfigFactories[viewType] = factory;\n }\n\n createViewConfig(path: PathNode[], decl: _ViewDeclaration): ViewConfig[] {\n let cfgFactory = this._viewConfigFactories[decl.$type];\n if (!cfgFactory) throw new Error(\"ViewService: No view config factory registered for type \" + decl.$type);\n let cfgs = cfgFactory(path, decl);\n return isArray(cfgs) ? cfgs : [cfgs];\n }\n \n /**\n * Deactivates a ViewConfig.\n *\n * This function deactivates a `ViewConfig`.\n * After calling [[sync]], it will un-pair from any `ui-view` with which it is currently paired.\n *\n * @param viewConfig The ViewConfig view to deregister.\n */\n deactivateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"<- Removing\", viewConfig);\n removeFrom(this._viewConfigs, viewConfig);\n }\n\n activateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"-> Registering\", viewConfig);\n this._viewConfigs.push(viewConfig);\n }\n\n /**\n * Given a ui-view and a ViewConfig, determines if they \"match\".\n *\n * A ui-view has a fully qualified name (fqn) and a context object. The fqn is built from its overall location in\n * the DOM, describing its nesting relationship to any parent ui-view tags it is nested inside of.\n *\n * A ViewConfig has a target ui-view name and a context anchor. The ui-view name can be a simple name, or\n * can be a segmented ui-view path, describing a portion of a ui-view fqn.\n *\n * In order for a ui-view to match ViewConfig, ui-view's $type must match the ViewConfig's $type\n *\n * If the ViewConfig's target ui-view name is a simple name (no dots), then a ui-view matches if:\n * - the ui-view's name matches the ViewConfig's target name\n * - the ui-view's context matches the ViewConfig's anchor\n *\n * If the ViewConfig's target ui-view name is a segmented name (with dots), then a ui-view matches if:\n * - There exists a parent ui-view where:\n * - the parent ui-view's name matches the first segment (index 0) of the ViewConfig's target name\n * - the parent ui-view's context matches the ViewConfig's anchor\n * - And the remaining segments (index 1..n) of the ViewConfig's target name match the tail of the ui-view's fqn\n *\n * Example:\n *\n * DOM:\n * \n * \n * \n * \n * \n * \n * \n * \n *\n * uiViews: [\n * { fqn: \"$default\", creationContext: { name: \"\" } },\n * { fqn: \"$default.foo\", creationContext: { name: \"A\" } },\n * { fqn: \"$default.foo.$default\", creationContext: { name: \"A.B\" } }\n * { fqn: \"$default.foo.$default.bar\", creationContext: { name: \"A.B.C\" } }\n * ]\n *\n * These four view configs all match the ui-view with the fqn: \"$default.foo.$default.bar\":\n *\n * - ViewConfig1: { uiViewName: \"bar\", uiViewContextAnchor: \"A.B.C\" }\n * - ViewConfig2: { uiViewName: \"$default.bar\", uiViewContextAnchor: \"A.B\" }\n * - ViewConfig3: { uiViewName: \"foo.$default.bar\", uiViewContextAnchor: \"A\" }\n * - ViewConfig4: { uiViewName: \"$default.foo.$default.bar\", uiViewContextAnchor: \"\" }\n *\n * Using ViewConfig3 as an example, it matches the ui-view with fqn \"$default.foo.$default.bar\" because:\n * - The ViewConfig's segmented target name is: [ \"foo\", \"$default\", \"bar\" ]\n * - There exists a parent ui-view (which has fqn: \"$default.foo\") where:\n * - the parent ui-view's name \"foo\" matches the first segment \"foo\" of the ViewConfig's target name\n * - the parent ui-view's context \"A\" matches the ViewConfig's anchor context \"A\"\n * - And the remaining segments [ \"$default\", \"bar\" ].join(\".\"_ of the ViewConfig's target name match\n * the tail of the ui-view's fqn \"default.bar\"\n *\n * @internalapi\n */\n static matches = (uiViewsByFqn: TypedMap, uiView: ActiveUIView) => (viewConfig: ViewConfig) => {\n // Don't supply an ng1 ui-view with an ng2 ViewConfig, etc\n if (uiView.$type !== viewConfig.viewDecl.$type) return false;\n\n // Split names apart from both viewConfig and uiView into segments\n let vc = viewConfig.viewDecl;\n let vcSegments = vc.$uiViewName.split(\".\");\n let uivSegments = uiView.fqn.split(\".\");\n\n // Check if the tails of the segment arrays match. ex, these arrays' tails match:\n // vc: [\"foo\", \"bar\"], uiv fqn: [\"$default\", \"foo\", \"bar\"]\n if (!equals(vcSegments, uivSegments.slice(0 - vcSegments.length)))\n return false;\n\n // Now check if the fqn ending at the first segment of the viewConfig matches the context:\n // [\"$default\", \"foo\"].join(\".\") == \"$default.foo\", does the ui-view $default.foo context match?\n let negOffset = (1 - vcSegments.length) || undefined;\n let fqnToFirstSegment = uivSegments.slice(0, negOffset).join(\".\");\n let uiViewContext = uiViewsByFqn[fqnToFirstSegment].creationContext;\n return vc.$uiViewContextAnchor === (uiViewContext && uiViewContext.name);\n }\n\n sync() {\n let uiViewsByFqn: TypedMap =\n this._uiViews.map(uiv => [uiv.fqn, uiv]).reduce(applyPairs, {});\n\n // Return a weighted depth value for a uiView.\n // The depth is the nesting depth of ui-views (based on FQN; times 10,000)\n // plus the depth of the state that is populating the uiView\n function uiViewDepth(uiView: ActiveUIView) {\n const stateDepth = (context: ViewContext) =>\n context && context.parent ? stateDepth(context.parent) + 1 : 1;\n return (uiView.fqn.split(\".\").length * 10000) + stateDepth(uiView.creationContext);\n }\n\n // Return the ViewConfig's context's depth in the context tree.\n function viewConfigDepth(config: ViewConfig) {\n let context: ViewContext = config.viewDecl.$context, count = 0;\n while (++count && context.parent) context = context.parent;\n return count;\n }\n\n // Given a depth function, returns a compare function which can return either ascending or descending order\n const depthCompare = curry((depthFn, posNeg, left, right) => posNeg * (depthFn(left) - depthFn(right)));\n\n const matchingConfigPair = (uiView: ActiveUIView) => {\n let matchingConfigs = this._viewConfigs.filter(ViewService.matches(uiViewsByFqn, uiView));\n if (matchingConfigs.length > 1) {\n // This is OK. Child states can target a ui-view that the parent state also targets (the child wins)\n // Sort by depth and return the match from the deepest child\n // console.log(`Multiple matching view configs for ${uiView.fqn}`, matchingConfigs);\n matchingConfigs.sort(depthCompare(viewConfigDepth, -1)); // descending\n }\n return [uiView, matchingConfigs[0]];\n };\n\n const configureUIView = ([uiView, viewConfig]) => {\n // If a parent ui-view is reconfigured, it could destroy child ui-views.\n // Before configuring a child ui-view, make sure it's still in the active uiViews array.\n if (this._uiViews.indexOf(uiView) !== -1)\n uiView.configUpdated(viewConfig);\n };\n\n // Sort views by FQN and state depth. Process uiviews nearest the root first.\n const pairs = this._uiViews.sort(depthCompare(uiViewDepth, 1)).map(matchingConfigPair);\n\n trace.traceViewSync(pairs);\n\n pairs.forEach(configureUIView);\n };\n\n /**\n * Registers a `ui-view` component\n *\n * When a `ui-view` component is created, it uses this method to register itself.\n * After registration the [[sync]] method is used to ensure all `ui-view` are configured with the proper [[ViewConfig]].\n *\n * Note: the `ui-view` component uses the `ViewConfig` to determine what view should be loaded inside the `ui-view`,\n * and what the view's state context is.\n *\n * Note: There is no corresponding `deregisterUIView`.\n * A `ui-view` should hang on to the return value of `registerUIView` and invoke it to deregister itself.\n *\n * @param uiView The metadata for a UIView\n * @return a de-registration function used when the view is destroyed.\n */\n registerUIView(uiView: ActiveUIView) {\n trace.traceViewServiceUIViewEvent(\"-> Registering\", uiView);\n let uiViews = this._uiViews;\n const fqnAndTypeMatches = (uiv: ActiveUIView) => uiv.fqn === uiView.fqn && uiv.$type === uiView.$type;\n if (uiViews.filter(fqnAndTypeMatches).length)\n trace.traceViewServiceUIViewEvent(\"!!!! duplicate uiView named:\", uiView);\n\n uiViews.push(uiView);\n this.sync();\n\n return () => {\n let idx = uiViews.indexOf(uiView);\n if (idx === -1) {\n trace.traceViewServiceUIViewEvent(\"Tried removing non-registered uiView\", uiView);\n return;\n }\n trace.traceViewServiceUIViewEvent(\"<- Deregistering\", uiView);\n removeFrom(uiViews)(uiView);\n };\n };\n\n /**\n * Returns the list of views currently available on the page, by fully-qualified name.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n available() {\n return this._uiViews.map(prop(\"fqn\"));\n }\n\n /**\n * Returns the list of views on the page containing loaded content.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n active() {\n return this._uiViews.filter(prop(\"$config\")).map(prop(\"name\"));\n }\n\n /**\n * Normalizes a view's name from a state.views configuration block.\n *\n * This should be used by a framework implementation to calculate the values for\n * [[_ViewDeclaration.$uiViewName]] and [[_ViewDeclaration.$uiViewContextAnchor]].\n *\n * @param context the context object (state declaration) that the view belongs to\n * @param rawViewName the name of the view, as declared in the [[StateDeclaration.views]]\n *\n * @returns the normalized uiViewName and uiViewContextAnchor that the view targets\n */\n static normalizeUIViewTarget(context: ViewContext, rawViewName = \"\") {\n // TODO: Validate incoming view name with a regexp to allow:\n // ex: \"view.name@foo.bar\" , \"^.^.view.name\" , \"view.name@^.^\" , \"\" ,\n // \"@\" , \"$default@^\" , \"!$default.$default\" , \"!foo.bar\"\n let viewAtContext: string[] = rawViewName.split(\"@\");\n let uiViewName = viewAtContext[0] || \"$default\"; // default to unnamed view\n let uiViewContextAnchor = isString(viewAtContext[1]) ? viewAtContext[1] : \"^\"; // default to parent context\n\n // Handle relative view-name sugar syntax.\n // Matches rawViewName \"^.^.^.foo.bar\" into array: [\"^.^.^.foo.bar\", \"^.^.^\", \"foo.bar\"],\n let relativeViewNameSugar = /^(\\^(?:\\.\\^)*)\\.(.*$)/.exec(uiViewName);\n if (relativeViewNameSugar) {\n // Clobbers existing contextAnchor (rawViewName validation will fix this)\n uiViewContextAnchor = relativeViewNameSugar[1]; // set anchor to \"^.^.^\"\n uiViewName = relativeViewNameSugar[2]; // set view-name to \"foo.bar\"\n }\n\n if (uiViewName.charAt(0) === '!') {\n uiViewName = uiViewName.substr(1);\n uiViewContextAnchor = \"\"; // target absolutely from root\n }\n\n // handle parent relative targeting \"^.^.^\"\n let relativeMatch = /^(\\^(?:\\.\\^)*)$/;\n if (relativeMatch.exec(uiViewContextAnchor)) {\n let anchor = uiViewContextAnchor.split(\".\").reduce(((anchor, x) => anchor.parent), context);\n uiViewContextAnchor = anchor.name;\n } else if (uiViewContextAnchor === '.') {\n uiViewContextAnchor = context.name;\n }\n\n return {uiViewName, uiViewContextAnchor};\n }\n}", + "/**\n * @coreapi\n * @module core\n */ /** */\nimport {StateParams} from \"./params/stateParams\";\nimport {StateDeclaration} from \"./state/interface\";\nimport {StateObject} from \"./state/stateObject\";\nimport {Transition} from \"./transition/transition\";\nimport {Queue} from \"./common/queue\";\nimport { Disposable } from './interface';\n\n/**\n * Global router state\n *\n * This is where we hold the global mutable state such as current state, current\n * params, current transition, etc.\n */\nexport class UIRouterGlobals implements Disposable {\n /**\n * Current parameter values\n *\n * The parameter values from the latest successful transition\n */\n params: StateParams = new StateParams();\n\n /**\n * Current state\n *\n * The to-state from the latest successful transition\n */\n current: StateDeclaration;\n\n /**\n * Current state (internal object)\n *\n * The to-state from the latest successful transition\n * @internalapi\n */\n $current: StateObject;\n\n /**\n * The current started/running transition.\n * This transition has reached at least the onStart phase, but is not yet complete\n */\n transition: Transition;\n\n /** @internalapi */\n lastStartedTransitionId: number = -1;\n\n /** @internalapi */\n transitionHistory = new Queue([], 1);\n\n /** @internalapi */\n successfulTransitions = new Queue([], 1);\n\n dispose() {\n this.transitionHistory.clear();\n this.successfulTransitions.clear();\n this.transition = null;\n }\n}\n", + "/**\n * @coreapi\n * @module url\n */ /** */\n\nimport { UIRouter } from \"../router\";\nimport { LocationServices, notImplemented, LocationConfig } from \"../common/coreservices\";\nimport { noop, createProxyFunctions } from \"../common/common\";\nimport { UrlConfigApi, UrlSyncApi, UrlRulesApi, UrlParts, MatchResult } from \"./interface\";\n\n/** @hidden */\nconst makeStub = (keys: string[]): any =>\n keys.reduce((acc, key) => (acc[key] = notImplemented(key), acc), { dispose: noop });\n\n/** @hidden */ const locationServicesFns = [\"url\", \"path\", \"search\", \"hash\", \"onChange\"];\n/** @hidden */ const locationConfigFns = [\"port\", \"protocol\", \"host\", \"baseHref\", \"html5Mode\", \"hashPrefix\"];\n/** @hidden */ const umfFns = [\"type\", \"caseInsensitive\", \"strictMode\", \"defaultSquashPolicy\"];\n/** @hidden */ const rulesFns = [\"sort\", \"when\", \"initial\", \"otherwise\", \"rules\", \"rule\", \"removeRule\"];\n/** @hidden */ const syncFns = [\"deferIntercept\", \"listen\", \"sync\", \"match\"];\n\n/**\n * API for URL management\n */\nexport class UrlService implements LocationServices, UrlSyncApi {\n /** @hidden */\n static locationServiceStub: LocationServices = makeStub(locationServicesFns);\n /** @hidden */\n static locationConfigStub: LocationConfig = makeStub(locationConfigFns);\n\n /** @inheritdoc */\n url(): string;\n /** @inheritdoc */\n url(newurl: string, replace?: boolean, state?): void;\n url(newurl?, replace?, state?): any { return };\n /** @inheritdoc */\n path(): string { return };\n /** @inheritdoc */\n search(): { [key: string]: any } { return };\n /** @inheritdoc */\n hash(): string { return };\n /** @inheritdoc */\n onChange(callback: Function): Function { return };\n\n\n /**\n * Returns the current URL parts\n *\n * This method returns the current URL components as a [[UrlParts]] object.\n *\n * @returns the current url parts\n */\n parts(): UrlParts {\n return { path: this.path(), search: this.search(), hash: this.hash() }\n }\n\n dispose() { }\n\n /** @inheritdoc */\n sync(evt?) { return }\n /** @inheritdoc */\n listen(enabled?: boolean): Function { return };\n /** @inheritdoc */\n deferIntercept(defer?: boolean) { return }\n /** @inheritdoc */\n match(urlParts: UrlParts): MatchResult { return }\n\n /**\n * A nested API for managing URL rules and rewrites\n *\n * See: [[UrlRulesApi]] for details\n */\n rules: UrlRulesApi;\n\n /**\n * A nested API to configure the URL and retrieve URL information\n *\n * See: [[UrlConfigApi]] for details\n */\n config: UrlConfigApi;\n\n /** @hidden */\n private router: UIRouter;\n\n /** @hidden */\n constructor(router: UIRouter, lateBind = true) {\n this.router = router;\n this.rules = {} as any;\n this.config = {} as any;\n\n // proxy function calls from UrlService to the LocationService/LocationConfig\n const locationServices = () => router.locationService;\n createProxyFunctions(locationServices, this, locationServices, locationServicesFns, lateBind);\n\n const locationConfig = () => router.locationConfig;\n createProxyFunctions(locationConfig, this.config, locationConfig, locationConfigFns, lateBind);\n\n const umf = () => router.urlMatcherFactory;\n createProxyFunctions(umf, this.config, umf, umfFns);\n\n const urlRouter = () => router.urlRouter;\n createProxyFunctions(urlRouter, this.rules, urlRouter, rulesFns);\n createProxyFunctions(urlRouter, this, urlRouter, syncFns);\n }\n}\n", + "/**\n * @coreapi\n * @module core\n */ /** */\nimport { UrlMatcherFactory } from \"./url/urlMatcherFactory\";\nimport { UrlRouter } from \"./url/urlRouter\";\nimport { TransitionService } from \"./transition/transitionService\";\nimport { ViewService } from \"./view/view\";\nimport { StateRegistry } from \"./state/stateRegistry\";\nimport { StateService } from \"./state/stateService\";\nimport { UIRouterGlobals } from \"./globals\";\nimport { UIRouterPlugin, Disposable } from \"./interface\";\nimport { values, removeFrom } from \"./common/common\";\nimport { isFunction } from \"./common/predicates\";\nimport { UrlService } from \"./url/urlService\";\nimport { LocationServices, LocationConfig } from \"./common/coreservices\";\nimport { Trace, trace } from \"./common/trace\";\n\n/** @hidden */\nlet _routerInstance = 0;\n\n/**\n * The master class used to instantiate an instance of UI-Router.\n *\n * UI-Router (for each specific framework) will create an instance of this class during bootstrap.\n * This class instantiates and wires the UI-Router services together.\n *\n * After a new instance of the UIRouter class is created, it should be configured for your app.\n * For instance, app states should be registered with the [[UIRouter.stateRegistry]].\n *\n * ---\n *\n * Normally the framework code will bootstrap UI-Router.\n * If you are bootstrapping UIRouter manually, tell it to monitor the URL by calling\n * [[UrlService.listen]] then [[UrlService.sync]].\n */\nexport class UIRouter {\n /** @hidden */ $id = _routerInstance++;\n /** @hidden */ _disposed = false;\n /** @hidden */ private _disposables: Disposable[] = [];\n\n /** Provides trace information to the console */\n trace: Trace = trace;\n\n /** Provides services related to ui-view synchronization */\n viewService = new ViewService();\n\n /** Provides services related to Transitions */\n transitionService: TransitionService = new TransitionService(this);\n\n /** Global router state */\n globals: UIRouterGlobals = new UIRouterGlobals();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlMatcherFactory: UrlMatcherFactory = new UrlMatcherFactory();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlRouter: UrlRouter = new UrlRouter(this);\n\n /** Provides a registry for states, and related registration services */\n stateRegistry: StateRegistry = new StateRegistry(this);\n\n /** Provides services related to states */\n stateService = new StateService(this);\n\n /** Provides services related to the URL */\n urlService: UrlService = new UrlService(this);\n\n\n /** Registers an object to be notified when the router is disposed */\n disposable(disposable: Disposable) {\n this._disposables.push(disposable);\n }\n\n /**\n * Disposes this router instance\n *\n * When called, clears resources retained by the router by calling `dispose(this)` on all\n * registered [[disposable]] objects.\n *\n * Or, if a `disposable` object is provided, calls `dispose(this)` on that object only.\n *\n * @param disposable (optional) the disposable to dispose\n */\n dispose(disposable?: any): void {\n if (disposable && isFunction(disposable.dispose)) {\n disposable.dispose(this);\n return undefined;\n }\n\n this._disposed = true;\n this._disposables.slice().forEach(d => {\n try {\n typeof d.dispose === 'function' && d.dispose(this);\n removeFrom(this._disposables, d);\n } catch (ignored) {}\n });\n }\n\n /**\n * Creates a new `UIRouter` object\n *\n * @param locationService a [[LocationServices]] implementation\n * @param locationConfig a [[LocationConfig]] implementation\n * @internalapi\n */\n constructor(\n public locationService: LocationServices = UrlService.locationServiceStub,\n public locationConfig: LocationConfig = UrlService.locationConfigStub\n ) {\n\n this.viewService._pluginapi._rootViewContext(this.stateRegistry.root());\n this.globals.$current = this.stateRegistry.root();\n this.globals.current = this.globals.$current.self;\n\n this.disposable(this.globals);\n this.disposable(this.stateService);\n this.disposable(this.stateRegistry);\n this.disposable(this.transitionService);\n this.disposable(this.urlRouter);\n this.disposable(locationService);\n this.disposable(locationConfig);\n }\n\n /** @hidden */\n private _plugins: { [key: string]: UIRouterPlugin } = {};\n\n /** Add plugin (as ES6 class) */\n plugin(plugin: { new(router: UIRouter, options?: any): T }, options?: any): T;\n /** Add plugin (as javascript constructor function) */\n plugin(plugin: { (router: UIRouter, options?: any): void }, options?: any): T;\n /** Add plugin (as javascript factory function) */\n plugin(plugin: PluginFactory, options?: any): T;\n /**\n * Adds a plugin to UI-Router\n *\n * This method adds a UI-Router Plugin.\n * A plugin can enhance or change UI-Router behavior using any public API.\n *\n * #### Example:\n * ```js\n * import { MyCoolPlugin } from \"ui-router-cool-plugin\";\n *\n * var plugin = router.addPlugin(MyCoolPlugin);\n * ```\n *\n * ### Plugin authoring\n *\n * A plugin is simply a class (or constructor function) which accepts a [[UIRouter]] instance and (optionally) an options object.\n *\n * The plugin can implement its functionality using any of the public APIs of [[UIRouter]].\n * For example, it may configure router options or add a Transition Hook.\n *\n * The plugin can then be published as a separate module.\n *\n * #### Example:\n * ```js\n * export class MyAuthPlugin implements UIRouterPlugin {\n * constructor(router: UIRouter, options: any) {\n * this.name = \"MyAuthPlugin\";\n * let $transitions = router.transitionService;\n * let $state = router.stateService;\n *\n * let authCriteria = {\n * to: (state) => state.data && state.data.requiresAuth\n * };\n *\n * function authHook(transition: Transition) {\n * let authService = transition.injector().get('AuthService');\n * if (!authService.isAuthenticated()) {\n * return $state.target('login');\n * }\n * }\n *\n * $transitions.onStart(authCriteria, authHook);\n * }\n * }\n * ```\n *\n * @param plugin one of:\n * - a plugin class which implements [[UIRouterPlugin]]\n * - a constructor function for a [[UIRouterPlugin]] which accepts a [[UIRouter]] instance\n * - a factory function which accepts a [[UIRouter]] instance and returns a [[UIRouterPlugin]] instance\n * @param options options to pass to the plugin class/factory\n * @returns the registered plugin instance\n */\n plugin(plugin: any, options: any = {}): T {\n let pluginInstance = new plugin(this, options);\n if (!pluginInstance.name) throw new Error(\"Required property `name` missing on plugin: \" + pluginInstance);\n this._disposables.push(pluginInstance);\n return this._plugins[pluginInstance.name] = pluginInstance;\n }\n\n /**\n * Returns registered plugins\n *\n * Returns the registered plugin of the given `pluginName`.\n * If no `pluginName` is given, returns all registered plugins\n *\n * @param pluginName (optional) the name of the plugin to get\n * @return the named plugin (undefined if not found), or all plugins (if `pluginName` is omitted)\n */\n getPlugin(pluginName: string): UIRouterPlugin;\n getPlugin(): UIRouterPlugin[];\n getPlugin(pluginName?: string): UIRouterPlugin|UIRouterPlugin[] {\n return pluginName ? this._plugins[pluginName] : values(this._plugins);\n }\n}\n\n/** @internalapi */\nexport type PluginFactory = (router: UIRouter, options?: any) => T;\n", + "/** @module hooks */ /** */\nimport { Transition } from \"../transition/transition\";\nimport { UIRouter } from \"../router\";\nimport { TransitionService } from \"../transition/transitionService\";\n\nfunction addCoreResolvables(trans: Transition) {\n trans.addResolvable({ token: UIRouter, deps: [], resolveFn: () => trans.router, data: trans.router }, \"\");\n trans.addResolvable({ token: Transition, deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$transition$', deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$stateParams', deps: [], resolveFn: () => trans.params(), data: trans.params() }, \"\");\n\n trans.entering().forEach(state => {\n trans.addResolvable({ token: '$state$', deps: [], resolveFn: () => state, data: state }, state);\n });\n}\n\nexport const registerAddCoreResolvables = (transitionService: TransitionService) =>\n transitionService.onCreate({}, addCoreResolvables);\n", + "/** @module hooks */ /** */\nimport {isString, isFunction} from \"../common/predicates\"\nimport {Transition} from \"../transition/transition\";\nimport {services} from \"../common/coreservices\";\nimport {TargetState} from \"../state/targetState\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\n\n/**\n * A [[TransitionHookFn]] that redirects to a different state or params\n *\n * Registered using `transitionService.onStart({ to: (state) => !!state.redirectTo }, redirectHook);`\n * \n * See [[StateDeclaration.redirectTo]]\n */\nconst redirectToHook: TransitionHookFn = (trans: Transition) => {\n let redirect = trans.to().redirectTo;\n if (!redirect) return;\n\n let $state = trans.router.stateService;\n\n function handleResult(result: any) {\n if (!result) return;\n if (result instanceof TargetState) return result;\n if (isString(result)) return $state.target( result, trans.params(), trans.options());\n if (result['state'] || result['params'])\n return $state.target(result['state'] || trans.to(), result['params'] || trans.params(), trans.options());\n }\n\n if (isFunction(redirect)) {\n return services.$q.when(redirect(trans)).then(handleResult);\n }\n return handleResult(redirect);\n};\n\nexport const registerRedirectToHook = (transitionService: TransitionService) =>\n transitionService.onStart({to: (state) => !!state.redirectTo}, redirectToHook);\n", + "/** @module hooks */\n/** for typedoc */\nimport { TransitionStateHookFn } from '../transition/interface';\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { StateDeclaration } from '../state/interface';\nimport { StateObject } from '../state/stateObject';\n\n/**\n * A factory which creates an onEnter, onExit or onRetain transition hook function\n *\n * The returned function invokes the (for instance) state.onEnter hook when the\n * state is being entered.\n *\n * @hidden\n */\nfunction makeEnterExitRetainHook(hookName: string): TransitionStateHookFn {\n return (transition: Transition, state: StateDeclaration) => {\n let _state: StateObject = state.$$state();\n let hookFn: TransitionStateHookFn = _state[hookName];\n return hookFn(transition, state);\n }\n}\n\n/**\n * The [[TransitionStateHookFn]] for onExit\n *\n * When the state is being exited, the state's .onExit function is invoked.\n *\n * Registered using `transitionService.onExit({ exiting: (state) => !!state.onExit }, onExitHook);`\n *\n * See: [[IHookRegistry.onExit]]\n */\nconst onExitHook: TransitionStateHookFn = makeEnterExitRetainHook('onExit');\nexport const registerOnExitHook = (transitionService: TransitionService) =>\n transitionService.onExit({exiting: state => !!state.onExit}, onExitHook);\n\n/**\n * The [[TransitionStateHookFn]] for onRetain\n *\n * When the state was already entered, and is not being exited or re-entered, the state's .onRetain function is invoked.\n *\n * Registered using `transitionService.onRetain({ retained: (state) => !!state.onRetain }, onRetainHook);`\n *\n * See: [[IHookRegistry.onRetain]]\n */\nconst onRetainHook: TransitionStateHookFn = makeEnterExitRetainHook('onRetain');\nexport const registerOnRetainHook = (transitionService: TransitionService) =>\n transitionService.onRetain({retained: state => !!state.onRetain}, onRetainHook);\n\n/**\n * The [[TransitionStateHookFn]] for onEnter\n *\n * When the state is being entered, the state's .onEnter function is invoked.\n *\n * Registered using `transitionService.onEnter({ entering: (state) => !!state.onEnter }, onEnterHook);`\n *\n * See: [[IHookRegistry.onEnter]]\n */\nconst onEnterHook: TransitionStateHookFn = makeEnterExitRetainHook('onEnter');\nexport const registerOnEnterHook = (transitionService: TransitionService) =>\n transitionService.onEnter({entering: state => !!state.onEnter}, onEnterHook);\n\n", + "/** @module hooks */\n/** for typedoc */\nimport { noop } from '../common/common';\nimport { Transition } from '../transition/transition';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { TransitionStateHookFn, TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\nimport { val } from '../common/hof';\nimport { StateDeclaration } from '../state/interface';\n\n/**\n * A [[TransitionHookFn]] which resolves all EAGER Resolvables in the To Path\n *\n * Registered using `transitionService.onStart({}, eagerResolvePath);`\n *\n * When a Transition starts, this hook resolves all the EAGER Resolvables, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst eagerResolvePath: TransitionHookFn = (trans: Transition) =>\n new ResolveContext(trans.treeChanges().to)\n .resolvePath(\"EAGER\", trans)\n .then(noop);\n\nexport const registerEagerResolvePath = (transitionService: TransitionService) =>\n transitionService.onStart({}, eagerResolvePath, {priority: 1000});\n\n/**\n * A [[TransitionHookFn]] which resolves all LAZY Resolvables for the state (and all its ancestors) in the To Path\n *\n * Registered using `transitionService.onEnter({ entering: () => true }, lazyResolveState);`\n *\n * When a State is being entered, this hook resolves all the Resolvables for this state, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst lazyResolveState: TransitionStateHookFn = (trans: Transition, state: StateDeclaration) =>\n new ResolveContext(trans.treeChanges().to)\n .subContext(state.$$state())\n .resolvePath(\"LAZY\", trans)\n .then(noop);\n\nexport const registerLazyResolveState = (transitionService: TransitionService) =>\n transitionService.onEnter({ entering: val(true) }, lazyResolveState, {priority: 1000});\n\n", + "/** @module hooks */ /** for typedoc */\nimport {noop} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {Transition} from \"../transition/transition\";\nimport {ViewService} from \"../view/view\";\nimport {ViewConfig} from \"../view/interface\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n\n/**\n * A [[TransitionHookFn]] which waits for the views to load\n *\n * Registered using `transitionService.onStart({}, loadEnteringViews);`\n *\n * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.\n * In angular 1, this includes loading the templates.\n */\nconst loadEnteringViews: TransitionHookFn = (transition: Transition) => {\n let $q = services.$q;\n let enteringViews = transition.views(\"entering\");\n if (!enteringViews.length) return;\n return $q.all(enteringViews.map(view => $q.when(view.load()))).then(noop);\n};\n\nexport const registerLoadEnteringViews = (transitionService: TransitionService) =>\n transitionService.onFinish({}, loadEnteringViews);\n\n/**\n * A [[TransitionHookFn]] which activates the new views when a transition is successful.\n *\n * Registered using `transitionService.onSuccess({}, activateViews);`\n *\n * After a transition is complete, this hook deactivates the old views from the previous state,\n * and activates the new views from the destination state.\n *\n * See [[ViewService]]\n */\nconst activateViews: TransitionHookFn = (transition: Transition) => {\n let enteringViews = transition.views(\"entering\");\n let exitingViews = transition.views(\"exiting\");\n if (!enteringViews.length && !exitingViews.length) return;\n\n let $view: ViewService = transition.router.viewService;\n\n exitingViews.forEach((vc: ViewConfig) => $view.deactivateViewConfig(vc));\n enteringViews.forEach((vc: ViewConfig) => $view.activateViewConfig(vc));\n\n $view.sync();\n};\n\nexport const registerActivateViews = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, activateViews);\n", + "/** @module hooks */\n/** for typedoc */\nimport { Transition } from '../transition/transition';\nimport { copy } from '../common/common';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates global UI-Router state\n *\n * Registered using `transitionService.onBefore({}, updateGlobalState);`\n *\n * Before a [[Transition]] starts, updates the global value of \"the current transition\" ([[Globals.transition]]).\n * After a successful [[Transition]], updates the global values of \"the current state\"\n * ([[Globals.current]] and [[Globals.$current]]) and \"the current param values\" ([[Globals.params]]).\n *\n * See also the deprecated properties:\n * [[StateService.transition]], [[StateService.current]], [[StateService.params]]\n */\nconst updateGlobalState = (trans: Transition) => {\n let globals = trans.router.globals;\n\n const transitionSuccessful = () => {\n globals.successfulTransitions.enqueue(trans);\n globals.$current = trans.$to();\n globals.current = globals.$current.self;\n\n copy(trans.params(), globals.params);\n };\n\n const clearCurrentTransition = () => {\n // Do not clear globals.transition if a different transition has started in the meantime\n if (globals.transition === trans) globals.transition = null;\n };\n\n trans.onSuccess({}, transitionSuccessful, { priority: 10000 });\n trans.promise.then(clearCurrentTransition, clearCurrentTransition);\n};\n\nexport const registerUpdateGlobalState = (transitionService: TransitionService) =>\n transitionService.onCreate({}, updateGlobalState);\n", + "/** @module hooks */ /** */\nimport {UrlRouter} from \"../url/urlRouter\";\nimport {StateService} from \"../state/stateService\";\nimport {Transition} from \"../transition/transition\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n/** \n * A [[TransitionHookFn]] which updates the URL after a successful transition\n * \n * Registered using `transitionService.onSuccess({}, updateUrl);`\n */\nconst updateUrl: TransitionHookFn = (transition: Transition) => {\n let options = transition.options();\n let $state: StateService = transition.router.stateService;\n let $urlRouter: UrlRouter = transition.router.urlRouter;\n\n // Dont update the url in these situations:\n // The transition was triggered by a URL sync (options.source === 'url')\n // The user doesn't want the url to update (options.location === false)\n // The destination state, and all parents have no navigable url\n if (options.source !== 'url' && options.location && $state.$current.navigable) {\n var urlOptions = {replace: options.location === 'replace'};\n $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);\n }\n\n $urlRouter.update(true);\n};\n\nexport const registerUpdateUrl = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, updateUrl, {priority: 9999});\n", + "/** @module hooks */ /** */\nimport {Transition} from \"../transition/transition\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {StateDeclaration, LazyLoadResult} from \"../state/interface\";\nimport {services} from \"../common/coreservices\";\nimport { StateRule } from \"../url/interface\";\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => System.import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n let router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n let orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n let $url = router.urlService;\n let result = $url.match($url.parts());\n let rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === \"STATE\") {\n let state = (rule as StateRule).state;\n let params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n let promises = transition.entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: (state) => !!state.lazyLoad }, lazyLoadHook);\n\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise {\n let lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = (result) => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = (err) => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] =\n services.$q.when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(state => transition.router.stateRegistry.register(state));\n }\n return result;\n }\n\n return promise;\n}\n", + "/** @module transition */ /** */\nimport { TransitionHookPhase, PathType } from \"./interface\";\nimport { GetErrorHandler, GetResultHandler, TransitionHook } from \"./transitionHook\";\n/**\n * This class defines a type of hook, such as `onBefore` or `onEnter`.\n * Plugins can define custom hook types, such as sticky states does for `onInactive`.\n *\n * @interalapi\n */\nexport class TransitionEventType {\n\n constructor(public name: string,\n public hookPhase: TransitionHookPhase,\n public hookOrder: number,\n public criteriaMatchPath: PathType,\n public reverseSort: boolean = false,\n public getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n public getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n public synchronous: boolean = false,\n ) { }\n}\n", + "/** @module hooks */ /** */\n\nimport { trace } from '../common/trace';\nimport { Rejection } from '../transition/rejectFactory';\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that skips a transition if it should be ignored\n *\n * This hook is invoked at the end of the onBefore phase.\n *\n * If the transition should be ignored (because no parameter or states changed)\n * then the transition is ignored and not processed.\n */\nfunction ignoredHook(trans: Transition) {\n const ignoredReason = trans._ignoredReason();\n if (!ignoredReason) return;\n\n trace.traceTransitionIgnored(trans);\n\n const pending = trans.router.globals.transition;\n\n // The user clicked a link going back to the *current state* ('A')\n // However, there is also a pending transition in flight (to 'B')\n // Abort the transition to 'B' because the user now wants to be back at 'A'.\n if (ignoredReason === 'SameAsCurrent' && pending) {\n pending.abort();\n }\n\n return Rejection.ignored().toPromise();\n}\n\nexport const registerIgnoredTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, ignoredHook, { priority: -9999 });\n", + "/** @module hooks */ /** */\n\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that rejects the Transition if it is invalid\n *\n * This hook is invoked at the end of the onBefore phase.\n * If the transition is invalid (for example, param values do not validate)\n * then the transition is rejected.\n */\nfunction invalidTransitionHook(trans: Transition) {\n if (!trans.valid()) {\n throw new Error(trans.error());\n }\n}\n\nexport const registerInvalidTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });\n", + "/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport {\n IHookRegistry, TransitionOptions, TransitionHookScope, TransitionHookPhase, TransitionCreateHookFn, HookMatchCriteria,\n HookRegOptions, PathTypes, PathType, RegisteredHooks, TransitionHookFn, TransitionStateHookFn\n} from \"./interface\";\nimport { Transition } from \"./transition\";\nimport { makeEvent, RegisteredHook } from \"./hookRegistry\";\nimport { TargetState } from \"../state/targetState\";\nimport { PathNode } from \"../path/pathNode\";\nimport { ViewService } from \"../view/view\";\nimport { UIRouter } from \"../router\";\nimport { registerAddCoreResolvables } from \"../hooks/coreResolvables\";\nimport { registerRedirectToHook } from \"../hooks/redirectTo\";\nimport { registerOnExitHook, registerOnRetainHook, registerOnEnterHook } from \"../hooks/onEnterExitRetain\";\nimport { registerEagerResolvePath, registerLazyResolveState } from \"../hooks/resolve\";\nimport { registerLoadEnteringViews, registerActivateViews } from \"../hooks/views\";\nimport { registerUpdateGlobalState } from \"../hooks/updateGlobals\";\nimport { registerUpdateUrl } from \"../hooks/url\";\nimport { registerLazyLoadHook } from \"../hooks/lazyLoad\";\nimport { TransitionEventType } from \"./transitionEventType\";\nimport { TransitionHook, GetResultHandler, GetErrorHandler } from \"./transitionHook\";\nimport { isDefined } from \"../common/predicates\";\nimport { removeFrom, values, createProxyFunctions } from \"../common/common\";\nimport { Disposable } from \"../interface\"; // has or is using\nimport { val } from \"../common/hof\";\nimport { registerIgnoredTransitionHook } from '../hooks/ignoredTransition';\nimport { registerInvalidTransitionHook } from '../hooks/invalidTransition';\n\n/**\n * The default [[Transition]] options.\n *\n * Include this object when applying custom defaults:\n * let reloadOpts = { reload: true, notify: true }\n * let options = defaults(theirOpts, customDefaults, defaultOptions);\n */\nexport let defaultTransOpts: TransitionOptions = {\n location : true,\n relative : null,\n inherit : false,\n notify : true,\n reload : false,\n custom : {},\n current : () => null,\n source : \"unknown\"\n};\n\n\n/**\n * Plugin API for Transition Service\n * @internalapi\n */\nexport interface TransitionServicePluginAPI {\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n */\n _definePathType(name: string, hookScope: TransitionHookScope);\n\n /**\n * Gets a Path definition used as a criterion against a TreeChanges path\n */\n _getPathTypes(): PathTypes;\n\n /**\n * Defines a transition hook type and returns a transition hook registration\n * function (which can then be used to register hooks of this type).\n */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort?: boolean,\n getResultHandler?: GetResultHandler,\n getErrorHandler?: GetErrorHandler,\n rejectIfSuperseded?: boolean);\n\n /**\n * Returns the known event types, such as `onBefore`\n * If a phase argument is provided, returns only events for the given phase.\n */\n _getEvents(phase?: TransitionHookPhase): TransitionEventType[];\n\n /** Returns the hooks registered for the given hook name */\n getHooks(hookName: string): RegisteredHook[];\n}\n\n/**\n * This class provides services related to Transitions.\n *\n * - Most importantly, it allows global Transition Hooks to be registered.\n * - It allows the default transition error handler to be set.\n * - It also has a factory function for creating new [[Transition]] objects, (used internally by the [[StateService]]).\n *\n * At bootstrap, [[UIRouter]] creates a single instance (singleton) of this class.\n */\nexport class TransitionService implements IHookRegistry, Disposable {\n /** @hidden */\n _transitionCount = 0;\n\n /**\n * Registers a [[TransitionHookFn]], called *while a transition is being constructed*.\n *\n * Registers a transition lifecycle hook, which is invoked during transition construction.\n *\n * This low level hook should only be used by plugins.\n * This can be a useful time for plugins to add resolves or mutate the transition as needed.\n * The Sticky States plugin uses this hook to modify the treechanges.\n *\n * ### Lifecycle\n *\n * `onCreate` hooks are invoked *while a transition is being constructed*.\n *\n * ### Return value\n *\n * The hook's return value is ignored\n *\n * @internalapi\n * @param criteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @param options the registration options\n * @returns a function which deregisters the hook.\n */\n onCreate(criteria: HookMatchCriteria, callback: TransitionCreateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n\n /** @hidden */\n public $view: ViewService;\n\n /** @hidden The transition hook types, such as `onEnter`, `onStart`, etc */\n private _eventTypes: TransitionEventType[] = [];\n /** @hidden The registered transition hooks */\n _registeredHooks = { } as RegisteredHooks;\n /** @hidden The paths on a criteria object */\n private _criteriaPaths = { } as PathTypes;\n /** @hidden */\n private _router: UIRouter;\n\n /** @internalapi */\n _pluginapi: TransitionServicePluginAPI;\n\n /**\n * This object has hook de-registration functions for the built-in hooks.\n * This can be used by third parties libraries that wish to customize the behaviors\n *\n * @hidden\n */\n _deregisterHookFns: {\n addCoreResolves: Function;\n ignored: Function;\n invalid: Function;\n redirectTo: Function;\n onExit: Function;\n onRetain: Function;\n onEnter: Function;\n eagerResolve: Function;\n lazyResolve: Function;\n loadViews: Function;\n activateViews: Function;\n updateGlobals: Function;\n updateUrl: Function;\n lazyLoad: Function;\n };\n\n /** @hidden */\n constructor(_router: UIRouter) {\n this._router = _router;\n this.$view = _router.viewService;\n this._deregisterHookFns = {};\n this._pluginapi = createProxyFunctions(val(this), {}, val(this), [\n '_definePathType',\n '_defineEvent',\n '_getPathTypes',\n '_getEvents',\n 'getHooks',\n ]);\n\n this._defineCorePaths();\n this._defineCoreEvents();\n this._registerCoreTransitionHooks();\n }\n\n /**\n * dispose\n * @internalapi\n */\n dispose(router: UIRouter) {\n values(this._registeredHooks).forEach((hooksArray: RegisteredHook[]) => hooksArray.forEach(hook => {\n hook._deregistered = true;\n removeFrom(hooksArray, hook);\n }));\n }\n\n /**\n * Creates a new [[Transition]] object\n *\n * This is a factory function for creating new Transition objects.\n * It is used internally by the [[StateService]] and should generally not be called by application code.\n *\n * @param fromPath the path to the current state (the from state)\n * @param targetState the target state (destination)\n * @returns a Transition\n */\n create(fromPath: PathNode[], targetState: TargetState): Transition {\n return new Transition(fromPath, targetState, this._router);\n }\n\n /** @hidden */\n private _defineCoreEvents() {\n const Phase = TransitionHookPhase;\n const TH = TransitionHook;\n const paths = this._criteriaPaths;\n const NORMAL_SORT = false, REVERSE_SORT = true;\n const ASYNCHRONOUS = false, SYNCHRONOUS = true;\n\n this._defineEvent(\"onCreate\", Phase.CREATE, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.THROW_ERROR, SYNCHRONOUS);\n\n this._defineEvent(\"onBefore\", Phase.BEFORE, 0, paths.to);\n\n this._defineEvent(\"onStart\", Phase.RUN, 0, paths.to);\n this._defineEvent(\"onExit\", Phase.RUN, 100, paths.exiting, REVERSE_SORT);\n this._defineEvent(\"onRetain\", Phase.RUN, 200, paths.retained);\n this._defineEvent(\"onEnter\", Phase.RUN, 300, paths.entering);\n this._defineEvent(\"onFinish\", Phase.RUN, 400, paths.to);\n\n this._defineEvent(\"onSuccess\", Phase.SUCCESS, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n this._defineEvent(\"onError\", Phase.ERROR, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n }\n\n /** @hidden */\n private _defineCorePaths() {\n const { STATE, TRANSITION } = TransitionHookScope;\n\n this._definePathType(\"to\", TRANSITION);\n this._definePathType(\"from\", TRANSITION);\n this._definePathType(\"exiting\", STATE);\n this._definePathType(\"retained\", STATE);\n this._definePathType(\"entering\", STATE);\n }\n\n /** @hidden */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort: boolean = false,\n getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n synchronous: boolean = false)\n {\n let eventType = new TransitionEventType(name, hookPhase, hookOrder, criteriaMatchPath, reverseSort, getResultHandler, getErrorHandler, synchronous);\n\n this._eventTypes.push(eventType);\n makeEvent(this, this, eventType);\n };\n\n /** @hidden */\n private _getEvents(phase?: TransitionHookPhase): TransitionEventType[] {\n let transitionHookTypes = isDefined(phase) ?\n this._eventTypes.filter(type => type.hookPhase === phase) :\n this._eventTypes.slice();\n\n return transitionHookTypes.sort((l, r) => {\n let cmpByPhase = l.hookPhase - r.hookPhase;\n return cmpByPhase === 0 ? l.hookOrder - r.hookOrder : cmpByPhase;\n })\n }\n\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n *\n * @hidden\n */\n private _definePathType(name: string, hookScope: TransitionHookScope) {\n this._criteriaPaths[name] = { name, scope: hookScope };\n }\n\n /** * @hidden */\n private _getPathTypes(): PathTypes {\n return this._criteriaPaths;\n }\n\n /** @hidden */\n public getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /** @hidden */\n private _registerCoreTransitionHooks() {\n let fns = this._deregisterHookFns;\n\n fns.addCoreResolves = registerAddCoreResolvables(this);\n fns.ignored = registerIgnoredTransitionHook(this);\n fns.invalid = registerInvalidTransitionHook(this);\n\n // Wire up redirectTo hook\n fns.redirectTo = registerRedirectToHook(this);\n \n // Wire up onExit/Retain/Enter state hooks\n fns.onExit = registerOnExitHook(this);\n fns.onRetain = registerOnRetainHook(this);\n fns.onEnter = registerOnEnterHook(this);\n\n // Wire up Resolve hooks\n fns.eagerResolve = registerEagerResolvePath(this);\n fns.lazyResolve = registerLazyResolveState(this);\n \n // Wire up the View management hooks\n fns.loadViews = registerLoadEnteringViews(this);\n fns.activateViews = registerActivateViews(this);\n\n // Updates global state after a transition\n fns.updateGlobals = registerUpdateGlobalState(this);\n\n // After globals.current is updated at priority: 10000\n fns.updateUrl = registerUpdateUrl(this);\n\n // Lazy load state trees\n fns.lazyLoad = registerLazyLoadHook(this);\n }\n}\n", + "/**\n * @coreapi\n * @module state\n */\n/** */\nimport { createProxyFunctions, defaults, extend, inArray, noop, removeFrom, silenceUncaughtInPromise, silentRejection } from '../common/common';\nimport { isDefined, isObject, isString } from '../common/predicates';\nimport { Queue } from '../common/queue';\nimport { services } from '../common/coreservices';\n\nimport { PathUtils } from '../path/pathFactory';\nimport { PathNode } from '../path/pathNode';\n\nimport { HookResult, TransitionOptions } from '../transition/interface';\nimport { defaultTransOpts } from '../transition/transitionService';\nimport { Rejection, RejectType } from '../transition/rejectFactory';\nimport { Transition } from '../transition/transition';\n\nimport { HrefOptions, LazyLoadResult, StateDeclaration, StateOrName, TransitionPromise } from './interface';\nimport { StateObject } from './stateObject';\nimport { TargetState } from './targetState';\n\nimport { RawParams } from '../params/interface';\nimport { Param } from '../params/param';\nimport { Glob } from '../common/glob';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { lazyLoadState } from '../hooks/lazyLoad';\nimport { not, val } from '../common/hof';\nimport { StateParams } from '../params/stateParams';\n\nexport type OnInvalidCallback =\n (toState?: TargetState, fromState?: TargetState, injector?: UIInjector) => HookResult;\n\n/**\n * Provides state related service functions\n *\n * This class provides services related to ui-router states.\n * An instance of this class is located on the global [[UIRouter]] object.\n */\nexport class StateService {\n /** @internalapi */\n invalidCallbacks: OnInvalidCallback[] = [];\n\n /**\n * The [[Transition]] currently in progress (or null)\n *\n * This is a passthrough through to [[UIRouterGlobals.transition]]\n */\n get transition() { return this.router.globals.transition; }\n /**\n * The latest successful state parameters\n *\n * This is a passthrough through to [[UIRouterGlobals.params]]\n */\n get params(): StateParams { return this.router.globals.params; }\n /**\n * The current [[StateDeclaration]]\n *\n * This is a passthrough through to [[UIRouterGlobals.current]]\n */\n get current() { return this.router.globals.current; }\n /**\n * The current [[StateObject]]\n *\n * This is a passthrough through to [[UIRouterGlobals.$current]]\n */\n get $current() { return this.router.globals.$current; }\n\n /** @internalapi */\n constructor(private router: UIRouter) {\n let getters = ['current', '$current', 'params', 'transition'];\n let boundFns = Object.keys(StateService.prototype).filter(not(inArray(getters)));\n createProxyFunctions(val(StateService.prototype), this, val(this), boundFns);\n }\n\n /** @internalapi */\n dispose() {\n this.defaultErrorHandler(noop);\n this.invalidCallbacks = [];\n }\n\n /**\n * Handler for when [[transitionTo]] is called with an invalid state.\n *\n * Invokes the [[onInvalid]] callbacks, in natural order.\n * Each callback's return value is checked in sequence until one of them returns an instance of TargetState.\n * The results of the callbacks are wrapped in $q.when(), so the callbacks may return promises.\n *\n * If a callback returns an TargetState, then it is used as arguments to $state.transitionTo() and the result returned.\n *\n * @internalapi\n */\n private _handleInvalidTargetState(fromPath: PathNode[], toState: TargetState) {\n let fromState = PathUtils.makeTargetState(this.router.stateRegistry, fromPath);\n let globals = this.router.globals;\n const latestThing = () => globals.transitionHistory.peekTail();\n let latest = latestThing();\n let callbackQueue = new Queue(this.invalidCallbacks.slice());\n let injector = new ResolveContext(fromPath).injector();\n\n const checkForRedirect = (result: HookResult) => {\n if (!(result instanceof TargetState)) {\n return;\n }\n\n let target = result;\n // Recreate the TargetState, in case the state is now defined.\n target = this.target(target.identifier(), target.params(), target.options());\n\n if (!target.valid()) {\n return Rejection.invalid(target.error()).toPromise();\n }\n\n if (latestThing() !== latest) {\n return Rejection.superseded().toPromise();\n }\n\n return this.transitionTo(target.identifier(), target.params(), target.options());\n };\n\n function invokeNextCallback() {\n let nextCallback = callbackQueue.dequeue();\n if (nextCallback === undefined) return Rejection.invalid(toState.error()).toPromise();\n\n let callbackResult = services.$q.when(nextCallback(toState, fromState, injector));\n return callbackResult.then(checkForRedirect).then(result => result || invokeNextCallback());\n }\n\n return invokeNextCallback();\n }\n\n /**\n * Registers an Invalid State handler\n *\n * Registers a [[OnInvalidCallback]] function to be invoked when [[StateService.transitionTo]]\n * has been called with an invalid state reference parameter\n *\n * Example:\n * ```js\n * stateService.onInvalid(function(to, from, injector) {\n * if (to.name() === 'foo') {\n * let lazyLoader = injector.get('LazyLoadService');\n * return lazyLoader.load('foo')\n * .then(() => stateService.target('foo'));\n * }\n * });\n * ```\n *\n * @param {function} callback invoked when the toState is invalid\n * This function receives the (invalid) toState, the fromState, and an injector.\n * The function may optionally return a [[TargetState]] or a Promise for a TargetState.\n * If one is returned, it is treated as a redirect.\n *\n * @returns a function which deregisters the callback\n */\n onInvalid(callback: OnInvalidCallback): Function {\n this.invalidCallbacks.push(callback);\n return function deregisterListener() {\n removeFrom(this.invalidCallbacks)(callback);\n }.bind(this);\n }\n\n\n /**\n * Reloads the current state\n *\n * A method that force reloads the current state, or a partial state hierarchy.\n * All resolves are re-resolved, and components reinstantiated.\n *\n * #### Example:\n * ```js\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * $state.reload();\n * }\n * });\n * ```\n *\n * Note: `reload()` is just an alias for:\n *\n * ```js\n * $state.transitionTo($state.current, $state.params, {\n * reload: true, inherit: false\n * });\n * ```\n *\n * @param reloadState A state name or a state object.\n * If present, this state and all its children will be reloaded, but ancestors will not reload.\n *\n * #### Example:\n * ```js\n * //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item'\n * //and current state is 'contacts.detail.item'\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * //will reload 'contact.detail' and nested 'contact.detail.item' states\n * $state.reload('contact.detail');\n * }\n * });\n * ```\n *\n * @returns A promise representing the state of the new transition. See [[StateService.go]]\n */\n reload(reloadState?: StateOrName): Promise {\n return this.transitionTo(this.current, this.params, {\n reload: isDefined(reloadState) ? reloadState : true,\n inherit: false,\n notify: false,\n });\n };\n\n /**\n * Transition to a different state and/or parameters\n *\n * Convenience method for transitioning to a new state.\n *\n * `$state.go` calls `$state.transitionTo` internally but automatically sets options to\n * `{ location: true, inherit: true, relative: router.globals.$current, notify: true }`.\n * This allows you to use either an absolute or relative `to` argument (because of `relative: router.globals.$current`).\n * It also allows you to specify * only the parameters you'd like to update, while letting unspecified parameters\n * inherit from the current parameter values (because of `inherit: true`).\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.go('contact.detail');\n * };\n * });\n * ```\n *\n * @param to Absolute state name, state object, or relative state path (relative to current state).\n *\n * Some examples:\n *\n * - `$state.go('contact.detail')` - will go to the `contact.detail` state\n * - `$state.go('^')` - will go to the parent state\n * - `$state.go('^.sibling')` - if current state is `home.child`, will go to the `home.sibling` state\n * - `$state.go('.child.grandchild')` - if current state is home, will go to the `home.child.grandchild` state\n *\n * @param params A map of the parameters that will be sent to the state, will populate $stateParams.\n *\n * Any parameters that are not specified will be inherited from current parameter values (because of `inherit: true`).\n * This allows, for example, going to a sibling state that shares parameters defined by a parent state.\n *\n * @param options Transition options\n *\n * @returns {promise} A promise representing the state of the new transition.\n */\n go(to: StateOrName, params?: RawParams, options?: TransitionOptions): TransitionPromise {\n let defautGoOpts = { relative: this.$current, inherit: true };\n let transOpts = defaults(options, defautGoOpts, defaultTransOpts);\n return this.transitionTo(to, params, transOpts);\n };\n\n /**\n * Creates a [[TargetState]]\n *\n * This is a factory method for creating a TargetState\n *\n * This may be returned from a Transition Hook to redirect a transition, for example.\n */\n target(identifier: StateOrName, params?: RawParams, options: TransitionOptions = {}): TargetState {\n // If we're reloading, find the state object to reload from\n if (isObject(options.reload) && !(options.reload).name)\n throw new Error('Invalid reload state object');\n let reg = this.router.stateRegistry;\n options.reloadState = options.reload === true ? reg.root() : reg.matcher.find( options.reload, options.relative);\n\n if (options.reload && !options.reloadState)\n throw new Error(`No such reload state '${(isString(options.reload) ? options.reload : (options.reload).name)}'`);\n\n return new TargetState(this.router.stateRegistry, identifier, params, options);\n };\n\n private getCurrentPath(): PathNode[] {\n let globals = this.router.globals;\n let latestSuccess: Transition = globals.successfulTransitions.peekTail();\n const rootPath = () => [ new PathNode(this.router.stateRegistry.root()) ];\n return latestSuccess ? latestSuccess.treeChanges().to : rootPath();\n }\n\n /**\n * Low-level method for transitioning to a new state.\n *\n * The [[go]] method (which uses `transitionTo` internally) is recommended in most situations.\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.transitionTo('contact.detail');\n * };\n * });\n * ```\n *\n * @param to State name or state object.\n * @param toParams A map of the parameters that will be sent to the state,\n * will populate $stateParams.\n * @param options Transition options\n *\n * @returns A promise representing the state of the new transition. See [[go]]\n */\n transitionTo(to: StateOrName, toParams: RawParams = {}, options: TransitionOptions = {}): TransitionPromise {\n let router = this.router;\n let globals = router.globals;\n options = defaults(options, defaultTransOpts);\n const getCurrent = () =>\n globals.transition;\n options = extend(options, { current: getCurrent });\n\n let ref: TargetState = this.target(to, toParams, options);\n let currentPath = this.getCurrentPath();\n\n if (!ref.exists())\n return this._handleInvalidTargetState(currentPath, ref);\n\n if (!ref.valid())\n return silentRejection(ref.error());\n\n /**\n * Special handling for Ignored, Aborted, and Redirected transitions\n *\n * The semantics for the transition.run() promise and the StateService.transitionTo()\n * promise differ. For instance, the run() promise may be rejected because it was\n * IGNORED, but the transitionTo() promise is resolved because from the user perspective\n * no error occurred. Likewise, the transition.run() promise may be rejected because of\n * a Redirect, but the transitionTo() promise is chained to the new Transition's promise.\n */\n const rejectedTransitionHandler = (transition: Transition) => (error: any): Promise => {\n if (error instanceof Rejection) {\n const isLatest = router.globals.lastStartedTransitionId === transition.$id;\n\n if (error.type === RejectType.IGNORED) {\n isLatest && router.urlRouter.update();\n // Consider ignored `Transition.run()` as a successful `transitionTo`\n return services.$q.when(globals.current);\n }\n\n const detail: any = error.detail;\n if (error.type === RejectType.SUPERSEDED && error.redirected && detail instanceof TargetState) {\n // If `Transition.run()` was redirected, allow the `transitionTo()` promise to resolve successfully\n // by returning the promise for the new (redirect) `Transition.run()`.\n let redirect: Transition = transition.redirect(detail);\n return redirect.run().catch(rejectedTransitionHandler(redirect));\n }\n\n if (error.type === RejectType.ABORTED) {\n isLatest && router.urlRouter.update();\n return services.$q.reject(error);\n }\n }\n\n let errorHandler = this.defaultErrorHandler();\n errorHandler(error);\n\n return services.$q.reject(error);\n };\n\n let transition = this.router.transitionService.create(currentPath, ref);\n let transitionToPromise = transition.run().catch(rejectedTransitionHandler(transition));\n silenceUncaughtInPromise(transitionToPromise); // issue #2676\n\n // Return a promise for the transition, which also has the transition object on it.\n return extend(transitionToPromise, { transition });\n };\n\n /**\n * Checks if the current state *is* the provided state\n *\n * Similar to [[includes]] but only checks for the full state name.\n * If params is supplied then it will be tested for strict equality against the current\n * active params object, so all params must match with none missing and no extras.\n *\n * #### Example:\n * ```js\n * $state.$current.name = 'contacts.details.item';\n *\n * // absolute name\n * $state.is('contact.details.item'); // returns true\n * $state.is(contactDetailItemStateObject); // returns true\n * ```\n *\n * // relative name (. and ^), typically from a template\n * // E.g. from the 'contacts.details' template\n * ```html\n *
    Item
    \n * ```\n *\n * @param stateOrName The state name (absolute or relative) or state object you'd like to check.\n * @param params A param object, e.g. `{sectionId: section.id}`, that you'd like\n * to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns Returns true if it is the state.\n */\n is(stateOrName: StateOrName, params?: RawParams, options?: { relative?: StateOrName }): boolean {\n options = defaults(options, { relative: this.$current });\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n if (!isDefined(state)) return undefined;\n if (this.$current !== state) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n /**\n * Checks if the current state *includes* the provided state\n *\n * A method to determine if the current active state is equal to or is the child of the\n * state stateName. If any params are passed then they will be tested for a match as well.\n * Not all the parameters need to be passed, just the ones you'd like to test for equality.\n *\n * #### Example when `$state.$current.name === 'contacts.details.item'`\n * ```js\n * // Using partial names\n * $state.includes(\"contacts\"); // returns true\n * $state.includes(\"contacts.details\"); // returns true\n * $state.includes(\"contacts.details.item\"); // returns true\n * $state.includes(\"contacts.list\"); // returns false\n * $state.includes(\"about\"); // returns false\n * ```\n *\n * #### Glob Examples when `* $state.$current.name === 'contacts.details.item.url'`:\n * ```js\n * $state.includes(\"*.details.*.*\"); // returns true\n * $state.includes(\"*.details.**\"); // returns true\n * $state.includes(\"**.item.**\"); // returns true\n * $state.includes(\"*.details.item.url\"); // returns true\n * $state.includes(\"*.details.*.url\"); // returns true\n * $state.includes(\"*.details.*\"); // returns false\n * $state.includes(\"item.**\"); // returns false\n * ```\n *\n * @param stateOrName A partial name, relative name, glob pattern,\n * or state object to be searched for within the current state name.\n * @param params A param object, e.g. `{sectionId: section.id}`,\n * that you'd like to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns {boolean} Returns true if it does include the state\n */\n includes(stateOrName: StateOrName, params?: RawParams, options?: TransitionOptions): boolean {\n options = defaults(options, { relative: this.$current });\n let glob = isString(stateOrName) && Glob.fromString( stateOrName);\n\n if (glob) {\n if (!glob.matches(this.$current.name)) return false;\n stateOrName = this.$current.name;\n }\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative), include = this.$current.includes;\n\n if (!isDefined(state)) return undefined;\n if (!isDefined(include[state.name])) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n\n /**\n * Generates a URL for a state and parameters\n *\n * Returns the url for the given state populated with the given params.\n *\n * #### Example:\n * ```js\n * expect($state.href(\"about.person\", { person: \"bob\" })).toEqual(\"/about/bob\");\n * ```\n *\n * @param stateOrName The state name or state object you'd like to generate a url from.\n * @param params An object of parameter values to fill the state's required parameters.\n * @param options Options object. The options are:\n *\n * @returns {string} compiled state url\n */\n href(stateOrName: StateOrName, params: RawParams, options?: HrefOptions): string {\n let defaultHrefOpts = {\n lossy: true,\n inherit: true,\n absolute: false,\n relative: this.$current,\n };\n options = defaults(options, defaultHrefOpts);\n params = params || {};\n\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n\n if (!isDefined(state)) return null;\n if (options.inherit) params = this.params.$inherit(params, this.$current, state);\n\n let nav = (state && options.lossy) ? state.navigable : state;\n\n if (!nav || nav.url === undefined || nav.url === null) {\n return null;\n }\n return this.router.urlRouter.href(nav.url, params, {\n absolute: options.absolute,\n });\n };\n\n /** @hidden */\n private _defaultErrorHandler: ((_error: any) => void) = function $defaultErrorHandler($error$) {\n if ($error$ instanceof Error && $error$.stack) {\n console.error($error$);\n console.error($error$.stack);\n } else if ($error$ instanceof Rejection) {\n console.error($error$.toString());\n if ($error$.detail && $error$.detail.stack)\n console.error($error$.detail.stack);\n } else {\n console.error($error$);\n }\n };\n\n /**\n * Sets or gets the default [[transitionTo]] error handler.\n *\n * The error handler is called when a [[Transition]] is rejected or when any error occurred during the Transition.\n * This includes errors caused by resolves and transition hooks.\n *\n * Note:\n * This handler does not receive certain Transition rejections.\n * Redirected and Ignored Transitions are not considered to be errors by [[StateService.transitionTo]].\n *\n * The built-in default error handler logs the error to the console.\n *\n * You can provide your own custom handler.\n *\n * #### Example:\n * ```js\n * stateService.defaultErrorHandler(function() {\n * // Do not log transitionTo errors\n * });\n * ```\n *\n * @param handler a global error handler function\n * @returns the current global error handler\n */\n defaultErrorHandler(handler?: (error: any) => void): (error: any) => void {\n return this._defaultErrorHandler = handler || this._defaultErrorHandler;\n }\n\n /**\n * Gets a registered [[StateDeclaration]] object\n *\n * Returns the state declaration object for any specific state, or for all registered states.\n *\n * @param stateOrName (absolute or relative) If provided, will only get the declaration object for the requested state.\n * If not provided, returns an array of ALL states.\n * @param base When `stateOrName` is a relative state reference (such as `.bar.baz`), the state will be retrieved relative to this state.\n *\n * @returns a [[StateDeclaration]] object (or array of all registered [[StateDeclaration]] objects.)\n */\n get(stateOrName: StateOrName, base: StateOrName): StateDeclaration;\n get(stateOrName: StateOrName): StateDeclaration;\n get(): StateDeclaration[];\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n let reg = this.router.stateRegistry;\n if (arguments.length === 0) return reg.get();\n return reg.get(stateOrName, base || this.$current);\n }\n\n /**\n * Lazy loads a state\n *\n * Explicitly runs a state's [[StateDeclaration.lazyLoad]] function.\n *\n * @param stateOrName the state that should be lazy loaded\n * @param transition the optional Transition context to use (if the lazyLoad function requires an injector, etc)\n * Note: If no transition is provided, a noop transition is created using the from the current state to the current state.\n * This noop transition is not actually run.\n *\n * @returns a promise to lazy load\n */\n lazyLoad(stateOrName: StateOrName, transition?: Transition): Promise {\n let state: StateDeclaration = this.get(stateOrName);\n if (!state || !state.lazyLoad) throw new Error(\"Can not lazy load \" + stateOrName);\n\n let currentPath = this.getCurrentPath();\n let target = PathUtils.makeTargetState(this.router.stateRegistry, currentPath);\n transition = transition || this.router.transitionService.create(currentPath, target);\n\n return lazyLoadState(transition, state);\n }\n}\n", + "/**\n * # Transition subsystem\n *\n * This module contains APIs related to a Transition.\n *\n * See:\n * - [[TransitionService]]\n * - [[Transition]]\n * - [[HookFn]], [[TransitionHookFn]], [[TransitionStateHookFn]], [[HookMatchCriteria]], [[HookResult]]\n *\n * @coreapi\n * @preferred\n * @module transition\n */ /** for typedoc */\nexport * from \"./interface\";\nexport * from \"./hookBuilder\";\nexport * from \"./hookRegistry\";\nexport * from \"./rejectFactory\";\nexport * from \"./transition\";\nexport * from \"./transitionHook\";\nexport * from \"./transitionEventType\";\nexport * from \"./transitionService\";\n\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isArray, isObject, $QLike } from \"../common/index\";\n\n/**\n * An angular1-like promise api\n *\n * This object implements four methods similar to the\n * [angular 1 promise api](https://docs.angularjs.org/api/ng/service/$q)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This API provides native ES6 promise support wrapped as a $q-like API.\n * Internally, UI-Router uses this $q object to perform promise operations.\n * The `angular-ui-router` (ui-router for angular 1) uses the $q API provided by angular.\n *\n * $q-like promise api\n */\nexport const $q = {\n /** Normalizes a value as a promise */\n when: (val) => new Promise((resolve, reject) => resolve(val)),\n\n /** Normalizes a value as a promise rejection */\n reject: (val) => new Promise((resolve, reject) => { reject(val); }),\n\n /** @returns a deferred object, which has `resolve` and `reject` functions */\n defer: () => {\n let deferred: any = {};\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n },\n\n /** Like Promise.all(), but also supports object key/promise notation like $q */\n all: (promises: { [key: string]: Promise } | Promise[]) => {\n if (isArray(promises)) {\n return Promise.all(promises);\n }\n\n if (isObject(promises)) {\n // Convert promises map to promises array.\n // When each promise resolves, map it to a tuple { key: key, val: val }\n let chain = Object.keys(promises)\n .map(key => promises[key].then(val => ({key, val})));\n\n // Then wait for all promises to resolve, and convert them back to an object\n return $q.all(chain).then(values =>\n values.reduce((acc, tuple) => { acc[tuple.key] = tuple.val; return acc; }, {}));\n }\n }\n} as $QLike;", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n extend, assertPredicate, isFunction, isArray, isInjectable, $InjectorLike, IInjectable\n} from \"../common/index\";\n\n// globally available injectables\nlet globals = {};\nlet STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nlet ARGUMENT_NAMES = /([^\\s,]+)/g;\n\n/**\n * A basic angular1-like injector api\n *\n * This object implements four methods similar to the\n * [angular 1 dependency injector](https://docs.angularjs.org/api/auto/service/$injector)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This object provides a naive implementation of a globally scoped dependency injection system.\n * It supports the following DI approaches:\n *\n * ### Function parameter names\n *\n * A function's `.toString()` is called, and the parameter names are parsed.\n * This only works when the parameter names aren't \"mangled\" by a minifier such as UglifyJS.\n *\n * ```js\n * function injectedFunction(FooService, BarService) {\n * // FooService and BarService are injected\n * }\n * ```\n *\n * ### Function annotation\n *\n * A function may be annotated with an array of dependency names as the `$inject` property.\n *\n * ```js\n * injectedFunction.$inject = [ 'FooService', 'BarService' ];\n * function injectedFunction(fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }\n * ```\n *\n * ### Array notation\n *\n * An array provides the names of the dependencies to inject (as strings).\n * The function is the last element of the array.\n *\n * ```js\n * [ 'FooService', 'BarService', function (fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }]\n * ```\n *\n * @type {$InjectorLike}\n */\nexport const $injector = {\n /** Gets an object from DI based on a string token */\n get: name => globals[name],\n\n /** Returns true if an object named `name` exists in global DI */\n has: (name) => $injector.get(name) != null,\n\n /**\n * Injects a function\n *\n * @param fn the function to inject\n * @param context the function's `this` binding\n * @param locals An object with additional DI tokens and values, such as `{ someToken: { foo: 1 } }`\n */\n invoke: (fn: IInjectable, context?, locals?) => {\n let all = extend({}, globals, locals || {});\n let params = $injector.annotate(fn);\n let ensureExist = assertPredicate((key: string) => all.hasOwnProperty(key), key => `DI can't find injectable: '${key}'`);\n let args = params.filter(ensureExist).map(x => all[x]);\n if (isFunction(fn)) return fn.apply(context, args);\n else return (fn as any[]).slice(-1)[0].apply(context, args);\n },\n\n /**\n * Returns a function's dependencies\n *\n * Analyzes a function (or array) and returns an array of DI tokens that the function requires.\n * @return an array of `string`s\n */\n annotate: (fn: IInjectable): any[] => {\n if (!isInjectable(fn)) throw new Error(`Not an injectable function: ${fn}`);\n if (fn && (fn as any).$inject) return (fn as any).$inject;\n if (isArray(fn)) return fn.slice(0, -1);\n let fnStr = fn.toString().replace(STRIP_COMMENTS, '');\n let result = fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);\n return result || [];\n }\n} as $InjectorLike;", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n LocationConfig, LocationServices, identity, unnestR, isArray, splitEqual, splitHash, splitQuery\n} from \"../common\";\nimport { UIRouter } from \"../router\";\n\nexport const keyValsToObjectR = (accum, [key, val]) => {\n if (!accum.hasOwnProperty(key)) {\n accum[key] = val;\n } else if (isArray(accum[key])) {\n accum[key].push(val);\n } else {\n accum[key] = [accum[key], val]\n }\n return accum;\n};\n\nexport const getParams = (queryString: string): any =>\n queryString.split(\"&\").filter(identity).map(splitEqual).reduce(keyValsToObjectR, {});\n\nexport function parseUrl(url: string) {\n const orEmptyString = x => x || \"\";\n let [beforehash, hash] = splitHash(url).map(orEmptyString);\n let [path, search] = splitQuery(beforehash).map(orEmptyString);\n\n return { path, search, hash, url };\n}\n\nexport const buildUrl = (loc: LocationServices) => {\n let path = loc.path();\n let searchObject = loc.search();\n let hash = loc.hash();\n\n let search = Object.keys(searchObject).map(key => {\n let param = searchObject[key];\n let vals = isArray(param) ? param : [param];\n return vals.map(val => key + \"=\" + val);\n }).reduce(unnestR, []).join(\"&\");\n\n return path + (search ? \"?\" + search : \"\") + (hash ? \"#\" + hash : \"\");\n};\n\nexport function locationPluginFactory(\n name: string,\n isHtml5: boolean,\n serviceClass: { new(router?: UIRouter): LocationServices },\n configurationClass: { new(router?: UIRouter, isHtml5?: boolean): LocationConfig }\n) {\n return function(router: UIRouter) {\n let service = router.locationService = new serviceClass(router);\n let configuration = router.locationConfig = new configurationClass(router, isHtml5);\n\n function dispose(router: UIRouter) {\n router.dispose(service);\n router.dispose(configuration);\n }\n\n return { name, service, configuration, dispose };\n };\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */ /** */\n\nimport { deregAll, isDefined, LocationServices, removeFrom, root } from '../common';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { HistoryLike, LocationLike } from './interface';\nimport { buildUrl, getParams, parseUrl } from './utils';\n\n/** A base `LocationServices` */\nexport abstract class BaseLocationServices implements LocationServices, Disposable {\n constructor(router: UIRouter, public fireAfterUpdate: boolean) {\n this._location = root.location;\n this._history = root.history;\n }\n\n _listener = evt => this._listeners.forEach(cb => cb(evt));\n\n private _listeners: Function[] = [];\n _location: LocationLike;\n _history: HistoryLike;\n\n /**\n * This should return the current internal URL representation.\n *\n * The internal URL includes only the portion that UI-Router matches.\n * It does not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n */\n abstract _get(): string;\n\n /**\n * This should set the current URL.\n *\n * The `url` param should include only the portion that UI-Router matches on.\n * It should not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n *\n * However, after this function completes, the browser URL should reflect the entire (fully qualified)\n * HREF including those data.\n */\n abstract _set(state: any, title: string, url: string, replace: boolean);\n\n hash = () => parseUrl(this._get()).hash;\n path = () => parseUrl(this._get()).path;\n search = () => getParams(parseUrl(this._get()).search);\n\n url(url?: string, replace: boolean = true): string {\n if (isDefined(url) && url !== this._get()) {\n this._set(null, null, url, replace);\n\n if (this.fireAfterUpdate) {\n this._listeners.forEach(cb => cb({ url }));\n }\n }\n\n return buildUrl(this);\n }\n\n onChange(cb: EventListener) {\n this._listeners.push(cb);\n return () => removeFrom(this._listeners, cb);\n }\n\n dispose(router: UIRouter) {\n deregAll(this._listeners);\n }\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { root, trimHashVal } from '../common';\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\n\n/** A `LocationServices` that uses the browser hash \"#\" to get/set the current location */\nexport class HashLocationService extends BaseLocationServices {\n constructor(router: UIRouter) {\n super(router, false);\n root.addEventListener('hashchange', this._listener, false);\n }\n\n _get() {\n return trimHashVal(this._location.hash);\n }\n _set(state: any, title: string, url: string, replace: boolean) {\n this._location.hash = url;\n }\n\n dispose (router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('hashchange', this._listener);\n }\n}\n\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BaseLocationServices } from './baseLocationService';\nimport { UIRouter } from '../router';\n\n/** A `LocationServices` that gets/sets the current location from an in-memory object */\nexport class MemoryLocationService extends BaseLocationServices {\n _url: string;\n\n constructor(router: UIRouter) {\n super(router, true);\n }\n\n _get() {\n return this._url;\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n this._url = url;\n }\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\nimport { LocationConfig, root, splitHash, splitQuery, stripFile } from '../common';\n\n/**\n * A `LocationServices` that gets/sets the current location using the browser's `location` and `history` apis\n *\n * Uses `history.pushState` and `history.replaceState`\n */\nexport class PushStateLocationService extends BaseLocationServices {\n _config: LocationConfig;\n\n constructor(router: UIRouter) {\n super(router, true);\n this._config = router.urlService.config;\n root.addEventListener('popstate', this._listener, false);\n };\n\n /**\n * Gets the base prefix without:\n * - trailing slash\n * - trailing filename\n * - protocol and hostname\n *\n * If , this returns '/base'.\n * If , this returns '/base'.\n *\n * See: https://html.spec.whatwg.org/dev/semantics.html#the-base-element\n */\n _getBasePrefix() {\n return stripFile(this._config.baseHref());\n }\n\n _get() {\n let { pathname, hash, search } = this._location;\n search = splitQuery(search)[1]; // strip ? if found\n hash = splitHash(hash)[1]; // strip # if found\n\n const basePrefix = this._getBasePrefix();\n let exactMatch = pathname === this._config.baseHref();\n let startsWith = pathname.startsWith(basePrefix);\n pathname = exactMatch ? '/' : startsWith ? pathname.substring(basePrefix.length) : pathname;\n\n return pathname + (search ? '?' + search : '') + (hash ? '#' + hash : '');\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n let fullUrl = this._getBasePrefix() + url;\n\n if (replace) {\n this._history.replaceState(state, title, fullUrl);\n } else {\n this._history.pushState(state, title, fullUrl);\n }\n }\n\n dispose(router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('popstate', this._listener);\n }\n}\n\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { LocationConfig } from \"../common/coreservices\";\nimport { isDefined } from \"../common/predicates\";\nimport { noop } from \"../common/common\";\n\n/** A `LocationConfig` mock that gets/sets all config from an in-memory object */\nexport class MemoryLocationConfig implements LocationConfig {\n _baseHref = '';\n _port = 80;\n _protocol = \"http\";\n _host = \"localhost\";\n _hashPrefix = \"\";\n\n port = () => this._port;\n protocol = () => this._protocol;\n host = () => this._host;\n baseHref = () => this._baseHref;\n html5Mode = () => false;\n hashPrefix = (newval?) => isDefined(newval) ? this._hashPrefix = newval : this._hashPrefix;\n dispose = noop;\n}", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isDefined } from \"../common/predicates\";\nimport { LocationConfig } from \"../common/coreservices\";\n\n/** A `LocationConfig` that delegates to the browser's `location` object */\nexport class BrowserLocationConfig implements LocationConfig {\n private _baseHref = undefined;\n private _hashPrefix = \"\";\n\n constructor(router?, private _isHtml5 = false) { }\n\n port(): number {\n if (location.port) {\n return Number(location.port);\n }\n\n return this.protocol() === 'https' ? 443 : 80;\n }\n\n protocol(): string {\n return location.protocol.replace(/:/g, '');\n }\n\n host(): string {\n return location.hostname;\n }\n\n html5Mode(): boolean {\n return this._isHtml5;\n }\n\n hashPrefix(): string;\n hashPrefix(newprefix?: string): string {\n return isDefined(newprefix) ? this._hashPrefix = newprefix : this._hashPrefix;\n };\n\n baseHref(href?: string): string {\n return isDefined(href) ? this._baseHref = href :\n isDefined(this._baseHref) ? this._baseHref : this.applyDocumentBaseHref();\n }\n\n applyDocumentBaseHref() {\n let baseTag: HTMLBaseElement = document.getElementsByTagName(\"base\")[0];\n return this._baseHref = baseTag ? baseTag.href.substr(location.origin.length) : \"\";\n }\n\n dispose() {}\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BrowserLocationConfig } from \"./browserLocationConfig\";\nimport { HashLocationService } from \"./hashLocationService\";\nimport { locationPluginFactory } from \"./utils\";\nimport { LocationPlugin, ServicesPlugin } from \"./interface\";\nimport { UIRouter } from \"../router\";\nimport { PushStateLocationService } from \"./pushStateLocationService\";\nimport { MemoryLocationService } from \"./memoryLocationService\";\nimport { MemoryLocationConfig } from \"./memoryLocationConfig\";\nimport { $injector } from \"./injector\";\nimport { $q } from \"./q\";\nimport { services } from \"../common/coreservices\";\n\nexport function servicesPlugin(router: UIRouter): ServicesPlugin {\n services.$injector = $injector;\n services.$q = $q;\n\n return { name: \"vanilla.services\", $q, $injector, dispose: () => null };\n}\n\n/** A `UIRouterPlugin` uses the browser hash to get/set the current location */\nexport const hashLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory('vanilla.hashBangLocation', false, HashLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location using the browser's `location` and `history` apis */\nexport const pushStateLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.pushStateLocation\", true, PushStateLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location from an in-memory object */\nexport const memoryLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.memoryLocation\", false, MemoryLocationService, MemoryLocationConfig);\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nexport * from \"./vanilla/index\";\n", + "/**\n * # Core classes and interfaces\n *\n * The classes and interfaces that are core to ui-router and do not belong\n * to a more specific subsystem (such as resolve).\n *\n * @coreapi\n * @preferred\n * @module core\n */ /** for typedoc */\n\n// Need to import or export at least one concrete something\nimport {noop} from \"./common/common\";\nimport {UIRouter} from \"./router\";\n\n/**\n * An interface for getting values from dependency injection.\n *\n * This is primarily used to get resolve values for a given token.\n * An instance of the `UIInjector` can be retrieved from the current transition using [[Transition.injector]].\n *\n * ---\n *\n * If no resolve is found for a token, then it will delegate to the native injector.\n * The native injector may be Angular 1 `$injector`, Angular 2 `Injector`, or a simple polyfill.\n *\n * In Angular 2, the native injector might be the root Injector,\n * or it might be a lazy loaded `NgModule` injector scoped to a lazy load state tree.\n */\nexport interface UIInjector {\n /**\n * Gets a value from the injector.\n *\n * For a given token, returns the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this throws an error.\n *\n * #### Example:\n * ```js\n * var myResolve = injector.get('myResolve');\n * ```\n *\n * #### ng1 Example:\n * ```js\n * // Fetch StateService\n * injector.get('$state').go('home');\n * ```\n *\n * #### ng2 Example:\n * ```js\n * import {StateService} from \"ui-router-ng2\";\n * // Fetch StateService\n * injector.get(StateService).go('home');\n * ```\n *\n * #### Typescript Example:\n * ```js\n * var stringArray = injector.get('myStringArray');\n * ```\n *\n * ### `NOWAIT` policy\n *\n * When using [[ResolvePolicy.async]] === `NOWAIT`, the value returned from `get()` is a promise for the result.\n * The promise is not automatically unwrapped.\n *\n * @param token the key for the value to get. May be a string, a class, or any arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n get(token: any): any;\n /** Gets a value as type `T` (generics parameter) */\n get(token: any): T;\n\n /**\n * Asynchronously gets a value from the injector\n *\n * For a given token, returns a promise for the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this triggers the resolve to load.\n *\n * #### Example:\n * ```js\n * return injector.getAsync('myResolve').then(value => {\n * if (value === 'declined') return false;\n * });\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return a Promise for the Dependency Injection value that matches the token\n */\n getAsync(token: any): Promise;\n /** Asynchronously gets a value as type `T` (generics parameter) */\n getAsync(token: any): Promise;\n\n /**\n * Gets a value from the native injector\n *\n * Returns a value from the native injector, bypassing anything in the [[ResolveContext]].\n *\n * Example:\n * ```js\n * let someThing = injector.getNative(SomeToken);\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n getNative(token: any): any;\n getNative(token: any): T;\n}\n\n/** @internalapi */\nexport interface UIRouterPlugin extends Disposable {\n name: string;\n}\n\n/** @internalapi */\nexport abstract class UIRouterPluginBase implements UIRouterPlugin, Disposable {\n abstract name: string;\n dispose(router: UIRouter) { }\n}\n\n/** @internalapi */\nexport interface Disposable {\n /** Instructs the Disposable to clean up any resources */\n dispose(router?: UIRouter);\n}", + "/**\n * @coreapi\n * @module common\n */ /** */\n\nexport * from \"./common/index\";\nexport * from \"./params/index\";\nexport * from \"./path/index\";\nexport * from \"./resolve/index\";\nexport * from \"./state/index\";\nexport * from \"./transition/index\";\nexport * from \"./url/index\";\nexport * from \"./view/index\";\nexport * from \"./globals\";\n\nexport * from \"./router\";\nexport * from \"./vanilla\";\nexport * from \"./interface\";\n", + "/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n", + "/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n", + "/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n *
    \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n", + "/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n", + "/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n", + "/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n", + "/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n", + "/**\n * # Angular 1 injectable services\n *\n * This is a list of the objects which can be injected using angular's injector.\n *\n * There are three different kind of injectable objects:\n *\n * ## **Provider** objects\n * #### injectable into a `.config()` block during configtime\n *\n * - [[$uiRouterProvider]]: The UI-Router instance\n * - [[$stateProvider]]: State registration\n * - [[$transitionsProvider]]: Transition hooks\n * - [[$urlServiceProvider]]: All URL related public APIs\n *\n * - [[$uiViewScrollProvider]]: Disable ui-router view scrolling\n * - [[$urlRouterProvider]]: (deprecated) Url matching rules\n * - [[$urlMatcherFactoryProvider]]: (deprecated) Url parsing config\n *\n * ## **Service** objects\n * #### injectable globally during runtime\n *\n * - [[$uiRouter]]: The UI-Router instance\n * - [[$trace]]: Enable transition trace/debug\n * - [[$transitions]]: Transition hooks\n * - [[$state]]: Imperative state related APIs\n * - [[$stateRegistry]]: State registration\n * - [[$urlService]]: All URL related public APIs\n * - [[$uiRouterGlobals]]: Global variables\n * - [[$uiViewScroll]]: Scroll an element into view\n *\n * - [[$stateParams]]: (deprecated) Global state param values\n * - [[$urlRouter]]: (deprecated) URL synchronization\n * - [[$urlMatcherFactory]]: (deprecated) URL parsing config\n *\n * ## **Per-Transition** objects\n *\n * - These kind of objects are injectable into:\n * - Resolves ([[Ng1StateDeclaration.resolve]]),\n * - Transition Hooks ([[TransitionService.onStart]], etc),\n * - Routed Controllers ([[Ng1ViewDeclaration.controller]])\n *\n * #### Different instances are injected based on the [[Transition]]\n *\n * - [[$transition$]]: The current Transition object\n * - [[$stateParams]]: State param values for pending Transition (deprecated)\n * - Any resolve data defined using [[Ng1StateDeclaration.resolve]]\n *\n * @ng1api\n * @preferred\n * @module injectables\n */ /** */\n\nimport { StateProvider } from \"./stateProvider\";\nimport {\n StateService, TransitionService, Transition, UrlRouter, UrlMatcherFactory,\n StateParams, StateRegistry, UIRouterGlobals, UIRouter, Trace, UrlService\n} from \"@uirouter/core\";\nimport { UIViewScrollProvider } from \"./viewScroll\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\n\n/**\n * The current (or pending) State Parameters\n *\n * An injectable global **Service Object** which holds the state parameters for the latest **SUCCESSFUL** transition.\n *\n * The values are not updated until *after* a `Transition` successfully completes.\n *\n * **Also:** an injectable **Per-Transition Object** object which holds the pending state parameters for the pending `Transition` currently running.\n *\n * ### Deprecation warning:\n *\n * The value injected for `$stateParams` is different depending on where it is injected.\n *\n * - When injected into an angular service, the object injected is the global **Service Object** with the parameter values for the latest successful `Transition`.\n * - When injected into transition hooks, resolves, or view controllers, the object is the **Per-Transition Object** with the parameter values for the running `Transition`.\n *\n * Because of these confusing details, this service is deprecated.\n *\n * ### Instead of using the global `$stateParams` service object,\n * inject [[$uiRouterGlobals]] and use [[UIRouterGlobals.params]]\n *\n * ```js\n * MyService.$inject = ['$uiRouterGlobals'];\n * function MyService($uiRouterGlobals) {\n * return {\n * paramValues: function () {\n * return $uiRouterGlobals.params;\n * }\n * }\n * }\n * ```\n *\n * ### Instead of using the per-transition `$stateParams` object,\n * inject the current `Transition` (as [[$transition$]]) and use [[Transition.params]]\n *\n * ```js\n * MyController.$inject = ['$transition$'];\n * function MyController($transition$) {\n * var username = $transition$.params().username;\n * // .. do something with username\n * }\n * ```\n *\n * ---\n *\n * This object can be injected into other services.\n *\n * #### Deprecated Example:\n * ```js\n * SomeService.$inject = ['$http', '$stateParams'];\n * function SomeService($http, $stateParams) {\n * return {\n * getUser: function() {\n * return $http.get('/api/users/' + $stateParams.username);\n * }\n * }\n * };\n * angular.service('SomeService', SomeService);\n * ```\n * @deprecated\n */\nvar $stateParams: StateParams;\n\n/**\n * Global UI-Router variables\n *\n * The router global state as a **Service Object** (injectable during runtime).\n *\n * This object contains globals such as the current state and current parameter values.\n */\nvar $uiRouterGlobals: UIRouterGlobals;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Service Object** (injectable during runtime).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouterProvider]] for injection during angular config time.\n */\nlet $uiRouter: UIRouter ;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Provider Object** (injectable during config phase).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouter]] for injection during runtime.\n */\nvar $uiRouterProvider: UIRouter;\n\n/**\n * Transition debug/tracing\n *\n * The [[Trace]] singleton as a **Service Object** (injectable during runtime).\n *\n * Enables or disables Transition tracing which can help to debug issues.\n */\nvar $trace: Trace;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitionsProvider]] for injection during the config phase.\n */\nvar $transitions: TransitionService;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Provider Object** (injectable during config phase)\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitions]] for injection during runtime.\n */\nvar $transitionsProvider: TransitionService;\n\n/**\n * The current [[Transition]] object\n *\n * The current [[Transition]] object as a **Per-Transition Object** (injectable into Resolve, Hooks, Controllers)\n *\n * This object returns information about the current transition, including:\n *\n * - To/from states\n * - To/from parameters\n * - Transition options\n * - States being entered, exited, and retained\n * - Resolve data\n * - A Promise for the transition\n * - Any transition failure information\n * - An injector for both Service and Per-Transition Objects\n */\nvar $transition$: Transition;\n\n/**\n * The State Service\n *\n * The [[StateService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service used to manage and query information on registered states.\n * It exposes state related APIs including:\n *\n * - Start a [[Transition]]\n * - Imperatively lazy load states\n * - Check if a state is currently active\n * - Look up states by name\n * - Build URLs for a state+parameters\n * - Configure the global Transition error handler\n *\n * This angular service exposes the [[StateService]] singleton.\n */\nvar $state: StateService;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistryProvider]] for injection during the config phase.\n */\nvar $stateRegistry: StateRegistry;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistry]] for injection during runtime.\n */\nvar $stateRegistryProvider: StateRegistry;\n\n/**\n * The View Scroll provider\n *\n * The [[UIViewScrollProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[UIViewScrollProvider]] singleton and is\n * used to disable UI-Router's scroll behavior.\n */\nvar $uiViewScrollProvider: UIViewScrollProvider;\n\n/**\n * The View Scroll function\n *\n * The View Scroll function as a **Service Object** (injectable during runtime).\n *\n * This is a function that scrolls an element into view.\n * The element is scrolled after a `$timeout` so the DOM has time to refresh.\n *\n * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor,\n * this can be enabled by calling [[UIViewScrollProvider.useAnchorScroll]].\n *\n * Note: this function is used by the [[directives.uiView]] when the `autoscroll` expression evaluates to true.\n */\nvar $uiViewScroll: ($element: JQuery) => void;\n\n/**\n * The StateProvider\n *\n * An angular1-only [[StateProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[StateProvider]] singleton.\n *\n * The `StateProvider` is primarily used to register states or add custom state decorators.\n *\n * ##### Note: This provider is a ng1 vestige.\n * It is a passthrough to [[$stateRegistry]] and [[$state]].\n */\nvar $stateProvider: StateProvider;\n\n/**\n * The URL Service Provider\n *\n * The [[UrlService]] singleton as a **Provider Object** (injectable during the angular config phase).\n *\n * A service used to configure and interact with the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during runtime as [[$urlService]].\n */\nvar $urlServiceProvider: UrlService;\n\n/**\n * The URL Service\n *\n * The [[UrlService]] singleton as a **Service Object** (injectable during runtime).\n *\n * Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n *\n * Used to configure the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n */\nvar $urlService: UrlService;\n\n/**\n * The URL Router Provider\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlServiceProvider]] instead.\n *\n * The [[UrlRouter]] singleton as a **Provider Object** (injectable during config time).\n *\n * #### Note: This object is also exposed as [[$urlRouter]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlRouterProvider: UrlRouterProvider;\n\n/**\n * The Url Router\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlRouter]] singleton as a **Service Object** (injectable during runtime).\n *\n * #### Note: This object is also exposed as [[$urlRouterProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlRouter: UrlRouter;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactoryProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlMatcherFactory: UrlMatcherFactory;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactory]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlMatcherFactoryProvider: UrlMatcherFactory;\n\n\n\n", + "/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n", + "/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n", + "/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n", + "/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n", + "/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n" + ], + "names": [ + "ng_from_import.module", + "val", + "this", + "angular", + "RejectType", + "Category", + "TransitionHookPhase", + "TransitionHookScope", + "noop", + "DefType", + "inherit", + "values", + "root", + "all", + "prop", + "pattern", + "pairs", + "parseUrl", + "__extends", + "id" + ], + "mappings": "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" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js index ff5a4e1523..67e2e2fef1 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js @@ -4,9 +4,9 @@ * This causes it to be incompatible with plugins that depend on @uirouter/core. * We recommend switching to the ui-router-core.js and ui-router-angularjs.js bundles instead. * For more information, see https://ui-router.github.io/blog/uirouter-for-angularjs-umd-bundles - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("angular")):"function"==typeof define&&define.amd?define(["exports","angular"],e):e(t["@uirouter/angularjs"]={},t.angular)}(this,function(t,e){"use strict";function r(t){function e(r){return r.length>=n?t.apply(null,r):function(){return e(r.concat([].slice.apply(arguments)))}}var r=[].slice.apply(arguments,[1]),n=t.length;return e(r)}function n(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}}function i(){for(var t=[],e=0;e=0&&t.splice(r,1),t}function v(t,e){return t.push(e),e}function m(t){for(var e=[],r=1;r1||o.ctrlKey||o.metaKey||o.shiftKey||t.attr("target"))){var s=r(function(){e.go(u.uiState,u.uiStateParams,u.uiStateOpts)});o.preventDefault();var c=n.isAnchor&&!u.href?1:0;o.preventDefault=function(){c--<=0&&r.cancel(s)}}}}function Et(t,e){return{relative:$t(t)||e.$current,inherit:!0,source:"sref"}}function Tt(t,e,r,n){var i;n&&(i=n.events),te(i)||(i=["click"]);for(var o=t.on?"on":"bind",a=0,u=i;athis._limit&&e.shift(),t},t.prototype.dequeue=function(){if(this.size())return this._items.splice(0,1)[0]},t.prototype.clear=function(){var t=this._items;return this._items=[],t},t.prototype.size=function(){return this._items.length},t.prototype.remove=function(t){var e=this._items.indexOf(t);return e>-1&&this._items.splice(e,1)[0]},t.prototype.peekTail=function(){return this._items[this._items.length-1]},t.prototype.peekHead=function(){if(this.size())return this._items[0]},t}();!function(t){t[t.SUPERSEDED=2]="SUPERSEDED",t[t.ABORTED=3]="ABORTED",t[t.INVALID=4]="INVALID",t[t.IGNORED=5]="IGNORED",t[t.ERROR=6]="ERROR"}(t.RejectType||(t.RejectType={}));var Ae=0,He=function(){function e(t,e,r){this.$id=Ae++,this.type=t,this.message=e,this.detail=r}return e.prototype.toString=function(){var t=function(t){return t&&t.toString!==Object.prototype.toString?t.toString():J(t)}(this.detail),e=this;return"Transition Rejection($id: "+e.$id+" type: "+e.type+", message: "+e.message+", detail: "+t+")"},e.prototype.toPromise=function(){return he(je(this),{_transitionRejection:this})},e.isRejectionPromise=function(t){return t&&"function"==typeof t.then&&Ft(e)(t._transitionRejection)},e.superseded=function(r,n){var i=new e(t.RejectType.SUPERSEDED,"The transition has been superseded by a different transition",r);return n&&n.redirected&&(i.redirected=!0),i},e.redirected=function(t){return e.superseded(t,{redirected:!0})},e.invalid=function(r){return new e(t.RejectType.INVALID,"This transition is invalid",r)},e.ignored=function(r){return new e(t.RejectType.IGNORED,"The transition was ignored",r)},e.aborted=function(r){return new e(t.RejectType.ABORTED,"The transition has been aborted",r)},e.errored=function(r){return new e(t.RejectType.ERROR,"The transition errored",r)},e.normalize=function(t){return Ft(e)(t)?t:e.errored(t)},e}(),qe=function(t){var e=t.viewDecl,r=e.$context.name||"(root)";return"[View#"+t.$id+" from '"+r+"' state]: target ui-view: '"+e.$uiViewName+"@"+e.$uiViewContextAnchor+"'"},De=Kt(console.table)?console.table.bind(console):console.log.bind(console);!function(t){t[t.RESOLVE=0]="RESOLVE",t[t.TRANSITION=1]="TRANSITION",t[t.HOOK=2]="HOOK",t[t.UIVIEW=3]="UIVIEW",t[t.VIEWCONFIG=4]="VIEWCONFIG"}(t.Category||(t.Category={}));var Fe=At("$id"),Ne=At("router.$id"),Ue=function(t){return"Transition #"+Fe(t)+"-"+Ne(t)},Le=function(){function e(){this._enabled={},this.approximateDigests=0}return e.prototype._set=function(e,r){var n=this;r.length||(r=Object.keys(t.Category).map(function(t){return parseInt(t,10)}).filter(function(t){return!isNaN(t)}).map(function(e){return t.Category[e]})),r.map(V).forEach(function(t){return n._enabled[t]=e})},e.prototype.enable=function(){for(var t=[],e=0;e "+J(e))},e.prototype.traceTransitionIgnored=function(e){this.enabled(t.Category.TRANSITION)&&console.log(Ue(e)+": Ignored <> "+J(e))},e.prototype.traceHookInvocation=function(e,r,n){if(this.enabled(t.Category.HOOK)){var i=At("traceData.hookType")(n)||"internal",o=At("traceData.context.state.name")(n)||At("traceData.context")(n)||"unknown",a=W(e.registeredHook.callback);console.log(Ue(r)+": Hook -> "+i+" context: "+o+", "+M(200,a))}},e.prototype.traceHookResult=function(e,r,n){this.enabled(t.Category.HOOK)&&console.log(Ue(r)+": <- Hook returned: "+M(200,J(e)))},e.prototype.traceResolvePath=function(e,r,n){this.enabled(t.Category.RESOLVE)&&console.log(Ue(n)+": Resolving "+e+" ("+r+")")},e.prototype.traceResolvableResolved=function(e,r){this.enabled(t.Category.RESOLVE)&&console.log(Ue(r)+": <- Resolved "+e+" to: "+M(200,J(e.data)))},e.prototype.traceError=function(e,r){this.enabled(t.Category.TRANSITION)&&console.log(Ue(r)+": <- Rejected "+J(r)+", reason: "+e)},e.prototype.traceSuccess=function(e,r){this.enabled(t.Category.TRANSITION)&&console.log(Ue(r)+": <- Success "+J(r)+", final state: "+e.name)},e.prototype.traceUIViewEvent=function(e,r,n){void 0===n&&(n=""),this.enabled(t.Category.UIVIEW)&&console.log("ui-view: "+B(30,e)+" "+j(r)+n)},e.prototype.traceUIViewConfigUpdated=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Updating",e," with ViewConfig from context='"+r+"'")},e.prototype.traceUIViewFill=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Fill",e," with: "+M(200,r))},e.prototype.traceViewSync=function(e){if(this.enabled(t.Category.VIEWCONFIG)){var r=e.map(function(t){var e=t[0],r=t[1];return{"ui-view fqn":e.$type+":"+e.fqn,"state: view name":r&&r.viewDecl.$context.name+": "+r.viewDecl.$name+" ("+r.viewDecl.$type+")"}}).sort(function(t,e){return t["ui-view fqn"].localeCompare(e["ui-view fqn"])});De(r)}},e.prototype.traceViewServiceEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&console.log("VIEWCONFIG: "+e+" "+qe(r))},e.prototype.traceViewServiceUIViewEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&console.log("VIEWCONFIG: "+e+" "+j(r))},e}(),Me=new Le;!function(t){t[t.CREATE=0]="CREATE",t[t.BEFORE=1]="BEFORE",t[t.RUN=2]="RUN",t[t.SUCCESS=3]="SUCCESS",t[t.ERROR=4]="ERROR"}(t.TransitionHookPhase||(t.TransitionHookPhase={})),function(t){t[t.TRANSITION=0]="TRANSITION",t[t.STATE=1]="STATE"}(t.TransitionHookScope||(t.TransitionHookScope={}));var Be=function(){function t(t,e,r,n){this._stateRegistry=t,this._identifier=e,this._identifier=e,this._params=he({},r||{}),this._options=he({},n||{}),this._definition=t.matcher.find(e,this._options.relative)}return t.prototype.name=function(){return this._definition&&this._definition.name||this._identifier},t.prototype.identifier=function(){return this._identifier},t.prototype.params=function(){return this._params},t.prototype.$state=function(){return this._definition},t.prototype.state=function(){return this._definition&&this._definition.self},t.prototype.options=function(){return this._options},t.prototype.exists=function(){return!(!this._definition||!this._definition.self)},t.prototype.valid=function(){return!this.error()},t.prototype.error=function(){var t=this.options().relative;if(!this._definition&&t){var e=t.name?t.name:t;return"Could not resolve '"+this.name()+"' from state '"+e+"'"}return this._definition?this._definition.self?void 0:"State '"+this.name()+"' has an invalid definition":"No such state '"+this.name()+"'"},t.prototype.toString=function(){return"'"+this.name()+"'"+J(this.params())},t.prototype.withState=function(e){return new t(this._stateRegistry,e,this._params,this._options)},t.prototype.withParams=function(e,r){void 0===r&&(r=!1);var n=r?e:he({},this._params,e);return new t(this._stateRegistry,this._identifier,n,this._options)},t.prototype.withOptions=function(e,r){void 0===r&&(r=!1);var n=r?e:he({},this._options,e);return new t(this._stateRegistry,this._identifier,this._params,n)},t.isDef=function(t){return t&&t.state&&(Zt(t.state)||Zt(t.state.name))},t}(),Ge={current:l,transition:null,traceData:{},bind:null},We=function(){function e(e,r,n,i){var o=this;this.transition=e,this.stateContext=r,this.registeredHook=n,this.options=i,this.isSuperseded=function(){return o.type.hookPhase===t.TransitionHookPhase.RUN&&!o.options.transition.isActive()},this.options=m(i,Ge),this.type=n.eventType}return e.prototype.logError=function(t){this.transition.router.stateService.defaultErrorHandler()(t)},e.prototype.invokeHook=function(){var t=this,e=this.registeredHook;if(!e._deregistered){var r=this.getNotCurrentRejection();if(r)return r;var n=this.options;Me.traceHookInvocation(this,this.transition,n);var i=function(r){return e.eventType.getErrorHandler(t)(r)},o=function(r){return e.eventType.getResultHandler(t)(r)};try{var a=e.callback.call(n.bind,t.transition,t.stateContext);return!this.type.synchronous&&ie(a)?a.catch(function(t){return He.normalize(t).toPromise()}).then(o,i):o(a)}catch(t){return i(He.normalize(t))}finally{e.invokeLimit&&++e.invokeCount>=e.invokeLimit&&e.deregister()}}},e.prototype.handleHookResult=function(t){var e=this,r=this.getNotCurrentRejection();return r||(ie(t)?t.then(function(t){return e.handleHookResult(t)}):(Me.traceHookResult(t,this.transition,this.options),!1===t?He.aborted("Hook aborted transition").toPromise():Ft(Be)(t)?He.redirected(t).toPromise():void 0))},e.prototype.getNotCurrentRejection=function(){var t=this.transition.router;return t._disposed?He.aborted("UIRouter instance #"+t.$id+" has been stopped (disposed)").toPromise():this.transition._aborted?He.aborted().toPromise():this.isSuperseded()?He.superseded(this.options.current()).toPromise():void 0},e.prototype.toString=function(){var t=this,e=t.options,r=t.registeredHook;return(At("traceData.hookType")(e)||"internal")+" context: "+(At("traceData.context.state.name")(e)||At("traceData.context")(e)||"unknown")+", "+M(200,z(r.callback))},e.chain=function(t,e){return t.reduce(function(t,e){return t.then(function(){return e.invokeHook()})},e||ae.$q.when())},e.invokeHooks=function(t,r){for(var n=0;n20)throw new Error("Too many consecutive Transition redirects (20+)");var n={redirectedFrom:this,source:"redirect"};"url"===this.options().source&&!1!==t.options().location&&(n.location="replace");var i=he({},this.options(),t.options(),n);t=t.withOptions(i,!0);var o=this.router.transitionService.create(this._treeChanges.from,t),a=this._treeChanges.entering,u=o._treeChanges.entering;return tr.matching(u,a,tr.nonDynamicParams).filter(Ht(function(t){return function(e){return t&&e.state.includes[t.name]}}(t.options().reloadState))).forEach(function(t,e){t.resolvables=a[e].resolvables}),o},e.prototype._changedParams=function(){var t=this._treeChanges;if(!(this._options.reload||t.exiting.length||t.entering.length||t.to.length!==t.from.length||T(t.to,t.from).map(function(t){return t[0].state!==t[1].state}).reduce(be,!1))){var e=t.to.map(function(t){return t.paramSchema}),r=[t.to,t.from].map(function(t){return t.map(function(t){return t.paramValues})});return T(e,r[0],r[1]).map(function(t){var e=t[0],r=t[1],n=t[2];return Ze.changed(e,r,n)}).reduce(Re,[])}},e.prototype.dynamic=function(){var t=this._changedParams();return!!t&&t.map(function(t){return t.dynamic}).reduce(be,!1)},e.prototype.ignored=function(){return!!this._ignoredReason()},e.prototype._ignoredReason=function(){var t=this.router.globals.transition,e=this._options.reloadState,r=function(t,r){if(t.length!==r.length)return!1;var n=tr.matching(t,r);return t.length===n.filter(function(t){return!e||!t.state.includes[e.name]}).length},n=this.treeChanges(),i=t&&t.treeChanges();return i&&r(i.to,n.to)&&r(i.exiting,n.exiting)?"SameAsPending":0===n.exiting.length&&0===n.entering.length&&r(n.from,n.to)?"SameAsCurrent":void 0},e.prototype.run=function(){var e=this,r=We.runAllHooks,n=function(t){return e._hookBuilder.buildHooksForPhase(t)},i=n(t.TransitionHookPhase.BEFORE);return We.invokeHooks(i,function(){var t=e.router.globals;return t.lastStartedTransitionId=e.$id,t.transition=e,t.transitionHistory.enqueue(e),Me.traceTransitionStart(e),ae.$q.when(void 0)}).then(function(){var e=n(t.TransitionHookPhase.RUN);return We.invokeHooks(e,function(){return ae.$q.when(void 0)})}).then(function(){Me.traceSuccess(e.$to(),e),e.success=!0,e._deferred.resolve(e.to()),r(n(t.TransitionHookPhase.SUCCESS))},function(i){Me.traceError(i,e),e.success=!1,e._deferred.reject(i),e._error=i,r(n(t.TransitionHookPhase.ERROR))}),this.promise},e.prototype.valid=function(){return!this.error()||void 0!==this.success},e.prototype.abort=function(){Wt(this.success)&&(this._aborted=!0)},e.prototype.error=function(){var t=this.$to();if(t.self.abstract)return"Cannot transition to abstract state '"+t.name+"'";var e=t.parameters(),r=this.params(),n=e.filter(function(t){return!t.validates(r[t.id])});return n.length?"Param values not valid for state '"+t.name+"'. Invalid params: [ "+n.map(function(t){return t.id}).join(", ")+" ]":!1===this.success?this._error:void 0},e.prototype.toString=function(){var t=this.from(),e=this.to(),r=function(t){return null!==t["#"]&&void 0!==t["#"]?t:_(t,["#"])};return"Transition#"+this.$id+"( '"+(Xt(t)?t.name:t)+"'"+J(r(this._treeChanges.from.map(jt("paramValues")).reduce(_e,{})))+" -> "+(this.valid()?"":"(X) ")+"'"+(Xt(e)?e.name:e)+"'"+J(r(this.params()))+" )"},e.diToken=e,e}(),hr=null,pr=function(t){var e=He.isRejectionPromise;return(hr=hr||s([[Ht(zt),Ut("undefined")],[Jt,Ut("null")],[ie,Ut("[Promise]")],[e,function(t){return t._transitionRejection.toString()}],[Ft(He),u("toString")],[Ft(lr),u("toString")],[Ft(rr),u("toString")],[c,W],[Ut(!0),f]]))(t)},dr=function(t){return function(e){if(!e)return["",""];var r=e.indexOf(t);return-1===r?[e,""]:[e.substr(0,r),e.substr(r+1)]}},vr=new RegExp("^(?:[a-z]+:)?//[^/]+/"),mr=function(t){return t.replace(/\/[^/]*$/,"")},yr=dr("#"),gr=dr("?"),_r=dr("="),wr=function(t){return t?t.replace(/^#/,""):""},$r=function(){function t(){this.enqueue=!0,this.typeQueue=[],this.defaultTypes=g(t.prototype,["hash","string","query","path","int","bool","date","json","any"]);this.types=de(b(this.defaultTypes,function(t,e){return new Qe(he({name:e},t))}),{})}return t.prototype.dispose=function(){this.types={}},t.prototype.type=function(t,e,r){if(!zt(e))return this.types[t];if(this.types.hasOwnProperty(t))throw new Error("A type named '"+t+"' has already been defined.");return this.types[t]=new Qe(he({name:t},e)),r&&(this.typeQueue.push({name:t,def:r}),this.enqueue||this._flushTypeQueue()),this},t.prototype._flushTypeQueue=function(){for(;this.typeQueue.length;){var t=this.typeQueue.shift();if(t.pattern)throw new Error("You cannot override a type's .pattern at runtime.");he(this.types[t.name],ae.$injector.invoke(t.def))}},t}();!function(){var t=function(t){var e=function(t){return null!=t?t.toString():t},r={encode:e,decode:e,is:Ft(String),pattern:/.*/,equals:function(t,e){return t==e}};return he({},r,t)};he($r.prototype,{string:t({}),path:t({pattern:/[^/]*/}),query:t({}),hash:t({inherit:!1}),int:t({decode:function(t){return parseInt(t,10)},is:function(t){return!Qt(t)&&this.decode(t.toString())===t},pattern:/-?\d+/}),bool:t({encode:function(t){return t&&1||0},decode:function(t){return 0!==parseInt(t,10)},is:Ft(Boolean),pattern:/0|1/}),date:t({encode:function(t){return this.is(t)?[t.getFullYear(),("0"+(t.getMonth()+1)).slice(-2),("0"+t.getDate()).slice(-2)].join("-"):void 0},decode:function(t){if(this.is(t))return t;var e=this.capture.exec(t);return e?new Date(e[1],e[2]-1,e[3]):void 0},is:function(t){return t instanceof Date&&!isNaN(t.valueOf())},equals:function(t,e){return["getFullYear","getMonth","getDate"].reduce(function(r,n){return r&&t[n]()===e[n]()},!0)},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/}),json:t({encode:fe,decode:ce,is:Ft(Object),equals:pe,pattern:/[^/]*/}),any:t({encode:f,decode:f,is:function(){return!0},equals:pe})})}();var Sr,br=function(){function t(t){void 0===t&&(t={}),he(this,t)}return t.prototype.$inherit=function(t,e,r){var n,i=y(e,r),o={},a=[];for(var u in i)if(i[u]&&i[u].params&&(n=Object.keys(i[u].params)).length)for(var s in n)a.indexOf(n[s])>=0||(a.push(n[s]),o[n[s]]=this[n[s]]);return he({},o,t)},t}(),Rr=function(t){if(!Zt(t))return!1;var e="^"===t.charAt(0);return{val:e?t.substring(1):t,root:e}},Er=function(t,e){return function(r){var n=r;n&&n.url&&n.name&&n.name.match(/\.\*\*$/)&&(n.url+="{remainder:any}");var i=Rr(n.url),o=r.parent,a=i?t.compile(i.val,{params:r.params||{},paramMap:function(t,e){return!1===n.reloadOnSearch&&e&&(t=he(t||{},{dynamic:!0})),t}}):n.url;if(!a)return null;if(!t.isMatcher(a))throw new Error("Invalid url '"+a+"' in state '"+r+"'");return i&&i.root?a:(o&&o.navigable||e()).url.append(a)}},Tr=function(t){return function(e){return!t(e)&&e.url?e:e.parent?e.parent.navigable:null}},Cr=function(t){return function(e){var r=e.url&&e.url.parameters({inherit:!1})||[],n=$e(we(_(e.params||{},r.map(jt("id"))),function(e,r){return t.fromConfig(r,null,e)}));return r.concat(n).map(function(t){return[t.id,t]}).reduce(C,{})}},Pr=function(){function t(t,e){this.matcher=t;var r=this,n=function(){return t.find("")},i=function(t){return""===t.name};this.builders={name:[Y],self:[Z],parent:[function(e){return i(e)?null:t.find(r.parentName(e))||n()}],data:[X],url:[Er(e,n)],navigable:[Tr(i)],params:[Cr(e.paramFactory)],views:[],path:[tt],includes:[et],resolvables:[rt]}}return t.prototype.builder=function(t,e){var r=this.builders,n=r[t]||[];return Zt(t)&&!zt(e)?n.length>1?n:n[0]:Zt(t)&&Kt(e)?(r[t]=n,r[t].push(e),function(){return r[t].splice(r[t].indexOf(e,1))&&null}):void 0},t.prototype.build=function(t){var e=this,r=e.matcher,n=e.builders,i=this.parentName(t);if(i&&!r.find(i,void 0,!1))return null;for(var o in n)if(n.hasOwnProperty(o)){var a=n[o].reduce(function(t,e){return function(r){return e(r,t)}},l);t[o]=a(t)}return t},t.prototype.parentName=function(t){var e=t.name||"",r=e.split(".");if("**"===r.pop()&&r.pop(),r.length){if(t.parent)throw new Error("States that specify the 'parent:' property should not have a '.' in their name ("+e+")");return r.join(".")}return t.parent?Zt(t.parent)?t.parent:t.parent.name:""},t.prototype.name=function(t){var e=t.name;if(-1!==e.indexOf(".")||!t.parent)return e;var r=Zt(t.parent)?t.parent:t.parent.name;return r?r+"."+e:e},t}(),kr=function(){function t(t){this._states=t}return t.prototype.isRelative=function(t){return 0===(t=t||"").indexOf(".")||0===t.indexOf("^")},t.prototype.find=function(t,e,r){if(void 0===r&&(r=!0),t||""===t){var n=Zt(t),i=n?t:t.name;this.isRelative(i)&&(i=this.resolvePath(i,e));var o=this._states[i];if(o&&(n||!(n||o!==t&&o.self!==t)))return o;if(n&&r){var a=$e(this._states).filter(function(t){return t.__stateObjectCache.nameGlob&&t.__stateObjectCache.nameGlob.matches(i)});return a.length>1&&console.log("stateMatcher.find: Found multiple matches for "+i+" using glob: ",a.map(function(t){return t.name})),a[0]}}},t.prototype.resolvePath=function(t,e){if(!e)throw new Error("No reference point given for path '"+t+"'");for(var r=this.find(e),n=t.split("."),i=0,o=n.length,a=r;i0;){var c=r.shift(),f=c.name,l=i.build(c),h=a.indexOf(c);if(l){var p=s(f);if(p&&p.name===f)throw new Error("State '"+f+"' is already defined");var d=s(f+".**");d&&this.$registry.deregister(d),n[f]=c,this.attachRoute(c),h>=0&&a.splice(h,1),o.push(c)}else{var v=u[f];if(u[f]=r.length,h>=0&&v===r.length)return r.push(c),n;h<0&&a.push(c),r.push(c)}}return o.length&&this.listeners.forEach(function(t){return t("registered",o.map(function(t){return t.self}))}),n},t.prototype.attachRoute=function(t){!t.abstract&&t.url&&this.$urlRouter.rule(this.$urlRouter.urlRuleFactory.create(t))},t}(),xr=function(){function t(t){this._router=t,this.states={},this.listeners=[],this.matcher=new kr(this.states),this.builder=new Pr(this.matcher,t.urlMatcherFactory),this.stateQueue=new Or(this,t.urlRouter,this.states,this.builder,this.listeners),this._registerRoot()}return t.prototype._registerRoot=function(){var t={name:"",url:"^",views:null,params:{"#":{value:null,type:"hash",dynamic:!0}},abstract:!0};(this._root=this.stateQueue.register(t)).navigable=null},t.prototype.dispose=function(){var t=this;this.stateQueue.dispose(),this.listeners=[],this.get().forEach(function(e){return t.get(e)&&t.deregister(e)})},t.prototype.onStatesChanged=function(t){return this.listeners.push(t),function(){me(this.listeners)(t)}.bind(this)},t.prototype.root=function(){return this._root},t.prototype.register=function(t){return this.stateQueue.register(t)},t.prototype._deregisterTree=function(t){var e=this,r=this.get().map(function(t){return t.$$state()}),n=function(t){var e=r.filter(function(e){return-1!==t.indexOf(e.parent)});return 0===e.length?e:e.concat(n(e))},i=n([t]),o=[t].concat(i).reverse();return o.forEach(function(t){var r=e._router.urlRouter;r.rules().filter(Vt("state",t)).forEach(r.removeRule.bind(r)),delete e.states[t.name]}),o},t.prototype.deregister=function(t){var e=this.get(t);if(!e)throw new Error("Can't deregister state; not found: "+t);var r=this._deregisterTree(e.$$state());return this.listeners.forEach(function(t){return t("deregistered",r.map(function(t){return t.self}))}),r},t.prototype.get=function(t,e){var r=this;if(0===arguments.length)return Object.keys(this.states).map(function(t){return r.states[t].self});var n=this.matcher.find(t,e);return n&&n.self||null},t.prototype.decorator=function(t,e){return this.builder.builder(t,e)},t}(),Ir=function(t,e,r){return t[e]=t[e]||r()},jr=Q("/"),Vr=function(){function e(t,r,n,i){var o=this;this.config=i,this._cache={path:[this]},this._children=[],this._params=[],this._segments=[],this._compiled=[],this.pattern=t,this.config=m(this.config,{params:{},strict:!0,caseInsensitive:!1,paramMap:f});for(var a,u,s,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,h=0,p=[],d=function(r){if(!e.nameValidator.test(r))throw new Error("Invalid parameter name '"+r+"' in pattern '"+t+"'");if(S(o._params,Vt("id",r)))throw new Error("Duplicate parameter name '"+r+"' in pattern '"+t+"'")},v=function(e,n){var i=e[2]||e[3],a=n?e[4]:e[4]||("*"===e[1]?"[\\s\\S]*":null);return{id:i,regexp:a,cfg:o.config.params[i],segment:t.substring(h,e.index),type:a?r.type(a)||function(t){return de(r.type(n?"query":"path"),{pattern:new RegExp(t,o.config.caseInsensitive?"i":void 0)})}(a):null}};(a=c.exec(t))&&!((u=v(a,!1)).segment.indexOf("?")>=0);)d(u.id),this._params.push(n.fromPath(u.id,u.type,this.config.paramMap(u.cfg,!1))),this._segments.push(u.segment),p.push([u.segment,P(this._params)]),h=c.lastIndex;var y=(s=t.substring(h)).indexOf("?");if(y>=0){var g=s.substring(y);if(s=s.substring(0,y),g.length>0)for(h=0;a=l.exec(g);)d((u=v(a,!0)).id),this._params.push(n.fromSearch(u.id,u.type,this.config.paramMap(u.cfg,!0))),h=c.lastIndex}this._segments.push(s),this._compiled=p.map(function(t){return nt.apply(null,t)}).concat(nt(s))}return e.prototype.append=function(t){return this._children.push(t),t._cache={path:this._cache.path.concat(t),parent:this,pattern:null},t},e.prototype.isRoot=function(){return this._cache.path[0]===this},e.prototype.toString=function(){return this.pattern},e.prototype.exec=function(t,e,r,n){var i=this;void 0===e&&(e={}),void 0===n&&(n={});var o=Ir(this._cache,"pattern",function(){return new RegExp(["^",Ce(i._cache.path.map(jt("_compiled"))).join(""),!1===i.config.strict?"/?":"","$"].join(""),i.config.caseInsensitive?"i":void 0)}).exec(t);if(!o)return null;var a=this.parameters(),u=a.filter(function(t){return!t.isSearch()}),s=a.filter(function(t){return t.isSearch()}),c=this._cache.path.map(function(t){return t._segments.length-1}).reduce(function(t,e){return t+e}),f={};if(c!==o.length-1)throw new Error("Unbalanced capture group in route '"+this.pattern+"'");for(var l=0;ln.weight?o:n}return n},t.prototype.sync=function(t){if(!t||!t.defaultPrevented){var e=this._router,r=e.urlService,n=e.stateService,i={path:r.path(),search:r.search(),hash:r.hash()},o=this.match(i);s([[Zt,function(t){return r.url(t,!0)}],[Be.isDef,function(t){return n.go(t.state,t.params,t.options)}],[Ft(Be),function(t){return n.go(t.state(),t.params(),t.options())}]])(o&&o.rule.handler(o.match,i,e))}},t.prototype.listen=function(t){var e=this;if(!1!==t)return this._stopFn=this._stopFn||this._router.urlService.onChange(function(t){return e.sync(t)});this._stopFn&&this._stopFn(),delete this._stopFn},t.prototype.update=function(t){var e=this._router.locationService;t?this.location=e.path():e.path()!==this.location&&e.url(this.location,!0)},t.prototype.push=function(t,e,r){var n=r&&!!r.replace;this._router.urlService.url(t.format(e||{}),n)},t.prototype.href=function(t,e,r){var n=t.format(e);if(null==n)return null;r=r||{absolute:!1};var i=this._router.urlService.config,o=i.html5Mode();if(o||null===n||(n="#"+i.hashPrefix()+n),n=it(n,o,r.absolute,i.baseHref()),!r.absolute||!n)return n;var a=!o&&n?"/":"",u=i.port();return u=80===u||443===u?"":":"+u,[i.protocol(),"://",i.host(),u,a,n].join("")},t.prototype.rule=function(t){var e=this;if(!Hr.isUrlRule(t))throw new Error("invalid rule");return t.$id=this._id++,t.priority=t.priority||0,this._rules.push(t),this._sorted=!1,function(){return e.removeRule(t)}},t.prototype.removeRule=function(t){me(this._rules,t)},t.prototype.rules=function(){return this.ensureSorted(),this._rules.slice()},t.prototype.otherwise=function(t){var e=ot(t);this._otherwiseFn=this.urlRuleFactory.create(Ut(!0),e),this._sorted=!1},t.prototype.initial=function(t){var e=ot(t);this.rule(this.urlRuleFactory.create(function(t,e){return 0===e.globals.transitionHistory.size()&&!!/^\/?$/.exec(t.path)},e))},t.prototype.when=function(t,e,r){var n=this.urlRuleFactory.create(t,e);return zt(r&&r.priority)&&(n.priority=r.priority),this.rule(n),n},t.prototype.deferIntercept=function(t){void 0===t&&(t=!0),this.interceptDeferred=t},t}(),Mr=function(){function t(){var t=this;this._uiViews=[],this._viewConfigs=[],this._viewConfigFactories={},this._pluginapi={_rootViewContext:this._rootViewContext.bind(this),_viewConfigFactory:this._viewConfigFactory.bind(this),_registeredUIViews:function(){return t._uiViews},_activeViewConfigs:function(){return t._viewConfigs}}}return t.prototype._rootViewContext=function(t){return this._rootContext=t||this._rootContext},t.prototype._viewConfigFactory=function(t,e){this._viewConfigFactories[t]=e},t.prototype.createViewConfig=function(t,e){var r=this._viewConfigFactories[e.$type];if(!r)throw new Error("ViewService: No view config factory registered for type "+e.$type);var n=r(t,e);return te(n)?n:[n]},t.prototype.deactivateViewConfig=function(t){Me.traceViewServiceEvent("<- Removing",t),me(this._viewConfigs,t)},t.prototype.activateViewConfig=function(t){Me.traceViewServiceEvent("-> Registering",t),this._viewConfigs.push(t)},t.prototype.sync=function(){function e(t){for(var e=t.viewDecl.$context,r=0;++r&&e.parent;)e=e.parent;return r}var n=this,i=this._uiViews.map(function(t){return[t.fqn,t]}).reduce(C,{}),o=r(function(t,e,r,n){return e*(t(r)-t(n))}),a=this._uiViews.sort(o(function(t){var e=function(t){return t&&t.parent?e(t.parent)+1:1};return 1e4*t.fqn.split(".").length+e(t.creationContext)},1)).map(function(r){var a=n._viewConfigs.filter(t.matches(i,r));return a.length>1&&a.sort(o(e,-1)),[r,a[0]]});Me.traceViewSync(a),a.forEach(function(t){var e=t[0],r=t[1];-1!==n._uiViews.indexOf(e)&&e.configUpdated(r)})},t.prototype.registerUIView=function(t){Me.traceViewServiceUIViewEvent("-> Registering",t);var e=this._uiViews;return e.filter(function(e){return e.fqn===t.fqn&&e.$type===t.$type}).length&&Me.traceViewServiceUIViewEvent("!!!! duplicate uiView named:",t),e.push(t),this.sync(),function(){-1!==e.indexOf(t)?(Me.traceViewServiceUIViewEvent("<- Deregistering",t),me(e)(t)):Me.traceViewServiceUIViewEvent("Tried removing non-registered uiView",t)}},t.prototype.available=function(){return this._uiViews.map(jt("fqn"))},t.prototype.active=function(){return this._uiViews.filter(jt("$config")).map(jt("name"))},t.normalizeUIViewTarget=function(t,e){void 0===e&&(e="");var r=e.split("@"),n=r[0]||"$default",i=Zt(r[1])?r[1]:"^",o=/^(\^(?:\.\^)*)\.(.*$)/.exec(n);return o&&(i=o[1],n=o[2]),"!"===n.charAt(0)&&(n=n.substr(1),i=""),/^(\^(?:\.\^)*)$/.exec(i)?i=i.split(".").reduce(function(t,e){return t.parent},t).name:"."===i&&(i=t.name),{uiViewName:n,uiViewContextAnchor:i}},t.matches=function(t,e){return function(r){if(e.$type!==r.viewDecl.$type)return!1;var n=r.viewDecl,i=n.$uiViewName.split("."),o=e.fqn.split(".");if(!pe(i,o.slice(0-i.length)))return!1;var a=1-i.length||void 0,u=o.slice(0,a).join("."),s=t[u].creationContext;return n.$uiViewContextAnchor===(s&&s.name)}},t}(),Br=function(){function t(){this.params=new br,this.lastStartedTransitionId=-1,this.transitionHistory=new Ve([],1),this.successfulTransitions=new Ve([],1)}return t.prototype.dispose=function(){this.transitionHistory.clear(),this.successfulTransitions.clear(),this.transition=null},t}(),Gr=function(t){return t.reduce(function(t,e){return t[e]=oe(e),t},{dispose:l})},Wr=["url","path","search","hash","onChange"],zr=["port","protocol","host","baseHref","html5Mode","hashPrefix"],Jr=["type","caseInsensitive","strictMode","defaultSquashPolicy"],Qr=["sort","when","initial","otherwise","rules","rule","removeRule"],Kr=["deferIntercept","listen","sync","match"],Yr=function(){function t(t,e){void 0===e&&(e=!0),this.router=t,this.rules={},this.config={};var r=function(){return t.locationService};h(r,this,r,Wr,e);var n=function(){return t.locationConfig};h(n,this.config,n,zr,e);var i=function(){return t.urlMatcherFactory};h(i,this.config,i,Jr);var o=function(){return t.urlRouter};h(o,this.rules,o,Qr),h(o,this,o,Kr)}return t.prototype.url=function(t,e,r){},t.prototype.path=function(){},t.prototype.search=function(){},t.prototype.hash=function(){},t.prototype.onChange=function(t){},t.prototype.parts=function(){return{path:this.path(),search:this.search(),hash:this.hash()}},t.prototype.dispose=function(){},t.prototype.sync=function(t){},t.prototype.listen=function(t){},t.prototype.deferIntercept=function(t){},t.prototype.match=function(t){},t.locationServiceStub=Gr(Wr),t.locationConfigStub=Gr(zr),t}(),Zr=0,Xr=function(){function t(t,e){void 0===t&&(t=Yr.locationServiceStub),void 0===e&&(e=Yr.locationConfigStub),this.locationService=t,this.locationConfig=e,this.$id=Zr++,this._disposed=!1,this._disposables=[],this.trace=Me,this.viewService=new Mr,this.transitionService=new Pn(this),this.globals=new Br,this.urlMatcherFactory=new Ar,this.urlRouter=new Lr(this),this.stateRegistry=new xr(this),this.stateService=new kn(this),this.urlService=new Yr(this),this._plugins={},this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),this.globals.$current=this.stateRegistry.root(),this.globals.current=this.globals.$current.self,this.disposable(this.globals),this.disposable(this.stateService),this.disposable(this.stateRegistry),this.disposable(this.transitionService),this.disposable(this.urlRouter),this.disposable(t),this.disposable(e)}return t.prototype.disposable=function(t){this._disposables.push(t)},t.prototype.dispose=function(t){var e=this;t&&Kt(t.dispose)?t.dispose(this):(this._disposed=!0,this._disposables.slice().forEach(function(t){try{"function"==typeof t.dispose&&t.dispose(e),me(e._disposables,t)}catch(t){}}))},t.prototype.plugin=function(t,e){void 0===e&&(e={});var r=new t(this,e);if(!r.name)throw new Error("Required property `name` missing on plugin: "+r);return this._disposables.push(r),this._plugins[r.name]=r},t.prototype.getPlugin=function(t){return t?this._plugins[t]:$e(this._plugins)},t}(),tn=function(t){return t.onCreate({},at)},en=function(t){function e(e){if(e)return e instanceof Be?e:Zt(e)?n.target(e,t.params(),t.options()):e.state||e.params?n.target(e.state||t.to(),e.params||t.params(),t.options()):void 0}var r=t.to().redirectTo;if(r){var n=t.router.stateService;return Kt(r)?ae.$q.when(r(t)).then(e):e(r)}},rn=function(t){return t.onStart({to:function(t){return!!t.redirectTo}},en)},nn=ut("onExit"),on=function(t){return t.onExit({exiting:function(t){return!!t.onExit}},nn)},an=ut("onRetain"),un=function(t){return t.onRetain({retained:function(t){return!!t.onRetain}},an)},sn=ut("onEnter"),cn=function(t){return t.onEnter({entering:function(t){return!!t.onEnter}},sn)},fn=function(t){return new sr(t.treeChanges().to).resolvePath("EAGER",t).then(l)},ln=function(t){return t.onStart({},fn,{priority:1e3})},hn=function(t,e){return new sr(t.treeChanges().to).subContext(e.$$state()).resolvePath("LAZY",t).then(l)},pn=function(t){return t.onEnter({entering:Ut(!0)},hn,{priority:1e3})},dn=function(t){var e=ae.$q,r=t.views("entering");if(r.length)return e.all(r.map(function(t){return e.when(t.load())})).then(l)},vn=function(t){return t.onFinish({},dn)},mn=function(t){var e=t.views("entering"),r=t.views("exiting");if(e.length||r.length){var n=t.router.viewService;r.forEach(function(t){return n.deactivateViewConfig(t)}),e.forEach(function(t){return n.activateViewConfig(t)}),n.sync()}},yn=function(t){return t.onSuccess({},mn)},gn=function(t){var e=t.router.globals,r=function(){e.transition===t&&(e.transition=null)};t.onSuccess({},function(){e.successfulTransitions.enqueue(t),e.$current=t.$to(),e.current=e.$current.self,k(t.params(),e.params)},{priority:1e4}),t.promise.then(r,r)},_n=function(t){return t.onCreate({},gn)},wn=function(t){var e=t.options(),r=t.router.stateService,n=t.router.urlRouter;if("url"!==e.source&&e.location&&r.$current.navigable){var i={replace:"replace"===e.location};n.push(r.$current.navigable.url,r.params,i)}n.update(!0)},$n=function(t){return t.onSuccess({},wn,{priority:9999})},Sn=function(t){var e=t.router,r=t.entering().filter(function(t){return!!t.$$state().lazyLoad}).map(function(e){return st(t,e)});return ae.$q.all(r).then(function(){if("url"!==t.originalTransition().options().source){var r=t.targetState();return e.stateService.target(r.identifier(),r.params(),r.options())}var n=e.urlService,i=n.match(n.parts()),o=i&&i.rule;if(o&&"STATE"===o.type){var a=o.state,u=i.match;return e.stateService.target(a,u,t.options())}e.urlService.sync()})},bn=function(t){return t.onBefore({entering:function(t){return!!t.lazyLoad}},Sn)},Rn=function(){return function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=We.HANDLE_RESULT),void 0===a&&(a=We.REJECT_ERROR),void 0===u&&(u=!1),this.name=t,this.hookPhase=e,this.hookOrder=r,this.criteriaMatchPath=n,this.reverseSort=i,this.getResultHandler=o,this.getErrorHandler=a,this.synchronous=u}}(),En=function(t){return t.onBefore({},ct,{priority:-9999})},Tn=function(t){return t.onBefore({},ft,{priority:-1e4})},Cn={location:!0,relative:null,inherit:!1,notify:!0,reload:!1,custom:{},current:function(){return null},source:"unknown"},Pn=function(){function e(t){this._transitionCount=0,this._eventTypes=[],this._registeredHooks={},this._criteriaPaths={},this._router=t,this.$view=t.viewService,this._deregisterHookFns={},this._pluginapi=h(Ut(this),{},Ut(this),["_definePathType","_defineEvent","_getPathTypes","_getEvents","getHooks"]),this._defineCorePaths(),this._defineCoreEvents(),this._registerCoreTransitionHooks()}return e.prototype.onCreate=function(t,e,r){},e.prototype.onBefore=function(t,e,r){},e.prototype.onStart=function(t,e,r){},e.prototype.onExit=function(t,e,r){},e.prototype.onRetain=function(t,e,r){},e.prototype.onEnter=function(t,e,r){},e.prototype.onFinish=function(t,e,r){},e.prototype.onSuccess=function(t,e,r){},e.prototype.onError=function(t,e,r){},e.prototype.dispose=function(t){$e(this._registeredHooks).forEach(function(t){return t.forEach(function(e){e._deregistered=!0,me(t,e)})})},e.prototype.create=function(t,e){return new lr(t,e,this._router)},e.prototype._defineCoreEvents=function(){var e=t.TransitionHookPhase,r=We,n=this._criteriaPaths;this._defineEvent("onCreate",e.CREATE,0,n.to,!1,r.LOG_REJECTED_RESULT,r.THROW_ERROR,!0),this._defineEvent("onBefore",e.BEFORE,0,n.to),this._defineEvent("onStart",e.RUN,0,n.to),this._defineEvent("onExit",e.RUN,100,n.exiting,!0),this._defineEvent("onRetain",e.RUN,200,n.retained),this._defineEvent("onEnter",e.RUN,300,n.entering),this._defineEvent("onFinish",e.RUN,400,n.to),this._defineEvent("onSuccess",e.SUCCESS,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0),this._defineEvent("onError",e.ERROR,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0)},e.prototype._defineCorePaths=function(){var e=t.TransitionHookScope.STATE,r=t.TransitionHookScope.TRANSITION;this._definePathType("to",r),this._definePathType("from",r),this._definePathType("exiting",e),this._definePathType("retained",e),this._definePathType("entering",e)},e.prototype._defineEvent=function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=We.HANDLE_RESULT),void 0===a&&(a=We.REJECT_ERROR),void 0===u&&(u=!1);var s=new Rn(t,e,r,n,i,o,a,u);this._eventTypes.push(s),H(this,this,s)},e.prototype._getEvents=function(t){return(zt(t)?this._eventTypes.filter(function(e){return e.hookPhase===t}):this._eventTypes.slice()).sort(function(t,e){var r=t.hookPhase-e.hookPhase;return 0===r?t.hookOrder-e.hookOrder:r})},e.prototype._definePathType=function(t,e){this._criteriaPaths[t]={name:t,scope:e}},e.prototype._getPathTypes=function(){return this._criteriaPaths},e.prototype.getHooks=function(t){return this._registeredHooks[t]},e.prototype._registerCoreTransitionHooks=function(){var t=this._deregisterHookFns;t.addCoreResolves=tn(this),t.ignored=En(this),t.invalid=Tn(this),t.redirectTo=rn(this),t.onExit=on(this),t.onRetain=un(this),t.onEnter=cn(this),t.eagerResolve=ln(this),t.lazyResolve=pn(this),t.loadViews=vn(this),t.activateViews=yn(this),t.updateGlobals=_n(this),t.updateUrl=$n(this),t.lazyLoad=bn(this)},e}(),kn=function(){function e(t){this.router=t,this.invalidCallbacks=[],this._defaultErrorHandler=function(t){t instanceof Error&&t.stack?(console.error(t),console.error(t.stack)):t instanceof He?(console.error(t.toString()),t.detail&&t.detail.stack&&console.error(t.detail.stack)):console.error(t)};var r=["current","$current","params","transition"],n=Object.keys(e.prototype).filter(Ht(ve(r)));h(Ut(e.prototype),this,Ut(this),n)}return Object.defineProperty(e.prototype,"transition",{get:function(){return this.router.globals.transition},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"params",{get:function(){return this.router.globals.params},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.router.globals.current},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"$current",{get:function(){return this.router.globals.$current},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.defaultErrorHandler(l),this.invalidCallbacks=[]},e.prototype._handleInvalidTargetState=function(t,e){function r(){var t=s.dequeue();return void 0===t?He.invalid(e.error()).toPromise():ae.$q.when(t(e,i,c)).then(f).then(function(t){return t||r()})}var n=this,i=tr.makeTargetState(this.router.stateRegistry,t),o=this.router.globals,a=function(){return o.transitionHistory.peekTail()},u=a(),s=new Ve(this.invalidCallbacks.slice()),c=new sr(t).injector(),f=function(t){if(t instanceof Be){var e=t;return(e=n.target(e.identifier(),e.params(),e.options())).valid()?a()!==u?He.superseded().toPromise():n.transitionTo(e.identifier(),e.params(),e.options()):He.invalid(e.error()).toPromise()}};return r()},e.prototype.onInvalid=function(t){return this.invalidCallbacks.push(t),function(){me(this.invalidCallbacks)(t)}.bind(this)},e.prototype.reload=function(t){return this.transitionTo(this.current,this.params,{reload:!zt(t)||t,inherit:!1,notify:!1})},e.prototype.go=function(t,e,r){var n=m(r,{relative:this.$current,inherit:!0},Cn);return this.transitionTo(t,e,n)},e.prototype.target=function(t,e,r){if(void 0===r&&(r={}),Xt(r.reload)&&!r.reload.name)throw new Error("Invalid reload state object");var n=this.router.stateRegistry;if(r.reloadState=!0===r.reload?n.root():n.matcher.find(r.reload,r.relative),r.reload&&!r.reloadState)throw new Error("No such reload state '"+(Zt(r.reload)?r.reload:r.reload.name)+"'");return new Be(this.router.stateRegistry,t,e,r)},e.prototype.getCurrentPath=function(){var t=this,e=this.router.globals.successfulTransitions.peekTail();return e?e.treeChanges().to:[new Xe(t.router.stateRegistry.root())]},e.prototype.transitionTo=function(e,r,n){var i=this;void 0===r&&(r={}),void 0===n&&(n={});var o=this.router,a=o.globals;n=m(n,Cn);n=he(n,{current:function(){return a.transition}});var u=this.target(e,r,n),s=this.getCurrentPath();if(!u.exists())return this._handleInvalidTargetState(s,u);if(!u.valid())return je(u.error());var c=function(e){return function(r){if(r instanceof He){var n=o.globals.lastStartedTransitionId===e.$id;if(r.type===t.RejectType.IGNORED)return n&&o.urlRouter.update(),ae.$q.when(a.current);var u=r.detail;if(r.type===t.RejectType.SUPERSEDED&&r.redirected&&u instanceof Be){var s=e.redirect(u);return s.run().catch(c(s))}if(r.type===t.RejectType.ABORTED)return n&&o.urlRouter.update(),ae.$q.reject(r)}return i.defaultErrorHandler()(r),ae.$q.reject(r)}},f=this.router.transitionService.create(s,u),l=f.run().catch(c(f));return Ie(l),he(l,{transition:f})},e.prototype.is=function(t,e,r){r=m(r,{relative:this.$current});var n=this.router.stateRegistry.matcher.find(t,r.relative);if(zt(n)){if(this.$current!==n)return!1;if(!e)return!0;var i=n.parameters({inherit:!0,matchingKeys:e});return Ze.equals(i,Ze.values(i,e),this.params)}},e.prototype.includes=function(t,e,r){r=m(r,{relative:this.$current});var n=Zt(t)&&Lt.fromString(t);if(n){if(!n.matches(this.$current.name))return!1;t=this.$current.name}var i=this.router.stateRegistry.matcher.find(t,r.relative),o=this.$current.includes;if(zt(i)){if(!zt(o[i.name]))return!1;if(!e)return!0;var a=i.parameters({inherit:!0,matchingKeys:e});return Ze.equals(a,Ze.values(a,e),this.params)}},e.prototype.href=function(t,e,r){r=m(r,{lossy:!0,inherit:!0,absolute:!1,relative:this.$current}),e=e||{};var n=this.router.stateRegistry.matcher.find(t,r.relative);if(!zt(n))return null;r.inherit&&(e=this.params.$inherit(e,this.$current,n));var i=n&&r.lossy?n.navigable:n;return i&&void 0!==i.url&&null!==i.url?this.router.urlRouter.href(i.url,e,{absolute:r.absolute}):null},e.prototype.defaultErrorHandler=function(t){return this._defaultErrorHandler=t||this._defaultErrorHandler},e.prototype.get=function(t,e){var r=this.router.stateRegistry;return 0===arguments.length?r.get():r.get(t,e||this.$current)},e.prototype.lazyLoad=function(t,e){var r=this.get(t);if(!r||!r.lazyLoad)throw new Error("Can not lazy load "+t);var n=this.getCurrentPath(),i=tr.makeTargetState(this.router.stateRegistry,n);return e=e||this.router.transitionService.create(n,i),st(e,r)},e}(),On={when:function(t){return new Promise(function(e,r){return e(t)})},reject:function(t){return new Promise(function(e,r){r(t)})},defer:function(){var t={};return t.promise=new Promise(function(e,r){t.resolve=e,t.reject=r}),t},all:function(t){if(te(t))return Promise.all(t);if(Xt(t)){var e=Object.keys(t).map(function(e){return t[e].then(function(t){return{key:e,val:t}})});return On.all(e).then(function(t){return t.reduce(function(t,e){return t[e.key]=e.val,t},{})})}}},xn={},In=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,jn=/([^\s,]+)/g,Vn={get:function(t){return xn[t]},has:function(t){return null!=Vn.get(t)},invoke:function(t,e,r){var n=he({},xn,r||{}),i=Vn.annotate(t),o=ke(function(t){return n.hasOwnProperty(t)},function(t){return"DI can't find injectable: '"+t+"'"}),a=i.filter(o).map(function(t){return n[t]});return Kt(t)?t.apply(e,a):t.slice(-1)[0].apply(e,a)},annotate:function(t){if(!c(t))throw new Error("Not an injectable function: "+t);if(t&&t.$inject)return t.$inject;if(te(t))return t.slice(0,-1);var e=t.toString().replace(In,"");return e.slice(e.indexOf("(")+1,e.indexOf(")")).match(jn)||[]}},An=function(t,e){var r=e[0],n=e[1];return t.hasOwnProperty(r)?te(t[r])?t[r].push(n):t[r]=[t[r],n]:t[r]=n,t},Hn=function(t){return t.split("&").filter(f).map(_r).reduce(An,{})},qn=function(t){var e=t.path(),r=t.search(),n=t.hash(),i=Object.keys(r).map(function(t){var e=r[t];return(te(e)?e:[e]).map(function(e){return t+"="+e})}).reduce(Re,[]).join("&");return e+(i?"?"+i:"")+(n?"#"+n:"")},Dn=function(){function t(t,e){var r=this;this.fireAfterUpdate=e,this._listener=function(t){return r._listeners.forEach(function(e){return e(t)})},this._listeners=[],this.hash=function(){return lt(r._get()).hash},this.path=function(){return lt(r._get()).path},this.search=function(){return Hn(lt(r._get()).search)},this._location=ue.location,this._history=ue.history}return t.prototype.url=function(t,e){return void 0===e&&(e=!0),zt(t)&&t!==this._get()&&(this._set(null,null,t,e),this.fireAfterUpdate&&this._listeners.forEach(function(e){return e({url:t})})),qn(this)},t.prototype.onChange=function(t){var e=this;return this._listeners.push(t),function(){return me(e._listeners,t)}},t.prototype.dispose=function(t){ge(this._listeners)},t}(),Fn=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Nn=function(t){function e(e){var r=t.call(this,e,!1)||this;return ue.addEventListener("hashchange",r._listener,!1),r}return Fn(e,t),e.prototype._get=function(){return wr(this._location.hash)},e.prototype._set=function(t,e,r,n){this._location.hash=r},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),ue.removeEventListener("hashchange",this._listener)},e}(Dn),Un=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Ln=function(t){function e(e){return t.call(this,e,!0)||this}return Un(e,t),e.prototype._get=function(){return this._url},e.prototype._set=function(t,e,r,n){this._url=r},e}(Dn),Mn=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Bn=function(t){function e(e){var r=t.call(this,e,!0)||this;return r._config=e.urlService.config,ue.addEventListener("popstate",r._listener,!1),r}return Mn(e,t),e.prototype._getBasePrefix=function(){return mr(this._config.baseHref())},e.prototype._get=function(){var t=this._location,e=t.pathname,r=t.hash,n=t.search;n=gr(n)[1],r=yr(r)[1];var i=this._getBasePrefix(),o=e===this._config.baseHref(),a=e.startsWith(i);return(e=o?"/":a?e.substring(i.length):e)+(n?"?"+n:"")+(r?"#"+r:"")},e.prototype._set=function(t,e,r,n){var i=this._getBasePrefix()+r;n?this._history.replaceState(t,e,i):this._history.pushState(t,e,i)},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),ue.removeEventListener("popstate",this._listener)},e}(Dn),Gn=function(){return function(){var t=this;this._baseHref="",this._port=80,this._protocol="http",this._host="localhost",this._hashPrefix="",this.port=function(){return t._port},this.protocol=function(){return t._protocol},this.host=function(){return t._host},this.baseHref=function(){return t._baseHref},this.html5Mode=function(){return!1},this.hashPrefix=function(e){return zt(e)?t._hashPrefix=e:t._hashPrefix},this.dispose=l}}(),Wn=function(){function t(t,e){void 0===e&&(e=!1),this._isHtml5=e,this._baseHref=void 0,this._hashPrefix=""}return t.prototype.port=function(){return location.port?Number(location.port):"https"===this.protocol()?443:80},t.prototype.protocol=function(){return location.protocol.replace(/:/g,"")},t.prototype.host=function(){return location.hostname},t.prototype.html5Mode=function(){return this._isHtml5},t.prototype.hashPrefix=function(t){return zt(t)?this._hashPrefix=t:this._hashPrefix},t.prototype.baseHref=function(t){return zt(t)?this._baseHref=t:zt(this._baseHref)?this._baseHref:this.applyDocumentBaseHref()},t.prototype.applyDocumentBaseHref=function(){var t=document.getElementsByTagName("base")[0];return this._baseHref=t?t.href.substr(location.origin.length):""},t.prototype.dispose=function(){},t}(),zn=ht("vanilla.hashBangLocation",!1,Nn,Wn),Jn=ht("vanilla.pushStateLocation",!0,Bn,Wn),Qn=ht("vanilla.memoryLocation",!1,Ln,Gn),Kn=function(){function t(){}return t.prototype.dispose=function(t){},t}(),Yn=Object.freeze({root:ue,fromJson:ce,toJson:fe,forEach:le,extend:he,equals:pe,identity:f,noop:l,createProxyFunctions:h,inherit:de,inArray:ve,_inArray:p,removeFrom:me,_removeFrom:d,pushTo:ye,_pushTo:v,deregAll:ge,defaults:m,mergeR:_e,ancestors:y,pick:g,omit:_,pluck:w,filter:$,find:S,mapObj:we,map:b,values:$e,allTrueR:Se,anyTrueR:be,unnestR:Re,flattenR:Ee,pushR:R,uniqR:Te,unnest:Ce,flatten:Pe,assertPredicate:ke,assertMap:Oe,assertFn:E,pairs:xe,arrayTuples:T,applyPairs:C,tail:P,copy:k,_extend:O,silenceUncaughtInPromise:Ie,silentRejection:je,notImplemented:oe,services:ae,Glob:Lt,curry:r,compose:n,pipe:i,prop:jt,propEq:Vt,parse:At,not:Ht,and:o,or:a,all:qt,any:Dt,is:Ft,eq:Nt,val:Ut,invoke:u,pattern:s,isUndefined:Wt,isDefined:zt,isNull:Jt,isNullOrUndefined:Qt,isFunction:Kt,isNumber:Yt,isString:Zt,isObject:Xt,isArray:te,isDate:ee,isRegExp:re,isState:ne,isInjectable:c,isPromise:ie,Queue:Ve,maxLength:M,padString:B,kebobString:G,functionToString:W,fnToString:z,stringify:J,beforeAfterSubstr:dr,hostRegex:vr,stripFile:mr,splitHash:yr,splitQuery:gr,splitEqual:_r,trimHashVal:wr,splitOnDelim:Q,joinNeighborsR:K,get Category(){return t.Category},Trace:Le,trace:Me,get DefType(){return t.DefType},Param:Ze,ParamTypes:$r,StateParams:br,ParamType:Qe,PathNode:Xe,PathUtils:tr,resolvePolicies:nr,defaultResolvePolicy:er,Resolvable:rr,NATIVE_INJECTOR_TOKEN:ur,ResolveContext:sr,resolvablesBuilder:rt,StateBuilder:Pr,StateObject:Mt,StateMatcher:kr,StateQueueManager:Or,StateRegistry:xr,StateService:kn,TargetState:Be,get TransitionHookPhase(){return t.TransitionHookPhase},get TransitionHookScope(){return t.TransitionHookScope},HookBuilder:Je,matchState:A,RegisteredHook:ze,makeEvent:H,get RejectType(){return t.RejectType},Rejection:He,Transition:lr,TransitionHook:We,TransitionEventType:Rn,defaultTransOpts:Cn,TransitionService:Pn,UrlMatcher:Vr,UrlMatcherFactory:Ar,UrlRouter:Lr,UrlRuleFactory:Hr,BaseUrlRule:qr,UrlService:Yr,ViewService:Mr,UIRouterGlobals:Br,UIRouter:Xr,$q:On,$injector:Vn,BaseLocationServices:Dn,HashLocationService:Nn,MemoryLocationService:Ln,PushStateLocationService:Bn,MemoryLocationConfig:Gn,BrowserLocationConfig:Wn,keyValsToObjectR:An,getParams:Hn,parseUrl:lt,buildUrl:qn,locationPluginFactory:ht,servicesPlugin:pt,hashLocationPlugin:zn,pushStateLocationPlugin:Jn,memoryLocationPlugin:Qn,UIRouterPluginBase:Kn}),Zn=function(t,e){return t.reduce(function(t,r){return t||zt(e[r])},!1)},Xn=0,ti=function(){function t(t,e,r){var n=this;this.path=t,this.viewDecl=e,this.factory=r,this.$id=Xn++,this.loaded=!1,this.getTemplate=function(t,e){return n.component?n.factory.makeComponentTemplate(t,e,n.component,n.viewDecl.bindings):n.template}}return t.prototype.load=function(){var t=this,e=ae.$q,r=new sr(this.path),n=this.path.reduce(function(t,e){return he(t,e.paramValues)},{}),i={template:e.when(this.factory.fromConfig(this.viewDecl,n,r)),controller:e.when(this.getController(r))};return e.all(i).then(function(e){return Me.traceViewServiceEvent("Loaded",t),t.controller=e.controller,he(t,e.template),t})},t.prototype.getController=function(t){var e=this.viewDecl.controllerProvider;if(!c(e))return this.viewDecl.controller;var r=ae.$injector.annotate(e),n=te(e)?P(e):e;return new rr("",n,r).get(t)},t}(),ei=function(){function t(){var t=this;this._useHttp=It.version.minor<3,this.$get=["$http","$templateCache","$injector",function(e,r,n){return t.$templateRequest=n.has&&n.has("$templateRequest")&&n.get("$templateRequest"),t.$http=e,t.$templateCache=r,t}]}return t.prototype.useHttpService=function(t){this._useHttp=t},t.prototype.fromConfig=function(t,e,r){var n=function(t){return ae.$q.when(t).then(function(t){return{template:t}})},i=function(t){return ae.$q.when(t).then(function(t){return{component:t}})};return zt(t.template)?n(this.fromString(t.template,e)):zt(t.templateUrl)?n(this.fromUrl(t.templateUrl,e)):zt(t.templateProvider)?n(this.fromProvider(t.templateProvider,e,r)):zt(t.component)?i(t.component):zt(t.componentProvider)?i(this.fromComponentProvider(t.componentProvider,e,r)):n("")},t.prototype.fromString=function(t,e){return Kt(t)?t(e):t},t.prototype.fromUrl=function(t,e){return Kt(t)&&(t=t(e)),null==t?null:this._useHttp?this.$http.get(t,{cache:this.$templateCache,headers:{Accept:"text/html"}}).then(function(t){return t.data}):this.$templateRequest(t)},t.prototype.fromProvider=function(t,e,r){var n=ae.$injector.annotate(t),i=te(t)?P(t):t;return new rr("",i,n).get(r)},t.prototype.fromComponentProvider=function(t,e,r){var n=ae.$injector.annotate(t),i=te(t)?P(t):t;return new rr("",i,n).get(r)},t.prototype.makeComponentTemplate=function(t,e,r,n){n=n||{};var i=It.version.minor>=3?"::":"",o=function(t){var e=G(t);return/^(x|data)-/.exec(e)?"x-"+e:e},a=mt(r).map(function(r){var a=r.name,u=r.type,s=o(a);if(t.attr(s)&&!n[a])return s+"='"+t.attr(s)+"'";var c=n[a]||a;if("@"===u)return s+"='{{"+i+"$resolve."+c+"}}'";if("&"===u){var f=e.getResolvable(c),l=f&&f.data,h=l&&ae.$injector.annotate(l)||[];return s+"='$resolve."+c+(te(l)?"["+(l.length-1)+"]":"")+"("+h.join(",")+")'"}return s+"='"+i+"$resolve."+c+"'"}).join(" "),u=o(r);return"<"+u+" "+a+">"},t}(),ri=function(t){return ni(Xt(t.bindToController)?t.bindToController:t.scope)},ni=function(t){return Object.keys(t||{}).map(function(e){return[e,/^([=<@&])[?]?(.*)/.exec(t[e])]}).filter(function(t){return zt(t)&&te(t[1])}).map(function(t){return{name:t[1][2]||t[0],type:t[1][1]}})},ii=function(){function t(e,r){this.stateRegistry=e,this.stateService=r,h(Ut(t.prototype),this,Ut(this))}return t.prototype.decorator=function(t,e){return this.stateRegistry.decorator(t,e)||this},t.prototype.state=function(t,e){return Xt(t)?e=t:e.name=t,this.stateRegistry.register(e),this},t.prototype.onInvalid=function(t){return this.stateService.onInvalid(t)},t}(),oi=function(t){return function(e,r){var n=e[t],i="onExit"===t?"from":"to";return n?function(t,e){var r=new sr(t.treeChanges(i)),o=he(mi(r),{$state$:e,$transition$:t});return ae.$injector.invoke(n,this,o)}:void 0}},ai=function(){function t(t){this._urlListeners=[],this.$locationProvider=t;var e=Ut(t);h(e,this,e,["hashPrefix"])}return t.prototype.dispose=function(){},t.prototype.onChange=function(t){var e=this;return this._urlListeners.push(t),function(){return me(e._urlListeners)(t)}},t.prototype.html5Mode=function(){var t=this.$locationProvider.html5Mode();return(t=Xt(t)?t.enabled:t)&&this.$sniffer.history},t.prototype.url=function(t,e,r){return void 0===e&&(e=!1),t&&this.$location.url(t),e&&this.$location.replace(),r&&this.$location.state(r),this.$location.url()},t.prototype._runtimeServices=function(t,e,r,n){var i=this;this.$location=e,this.$sniffer=r,t.$on("$locationChangeSuccess",function(t){return i._urlListeners.forEach(function(e){return e(t)})});var o=Ut(e),a=Ut(n);h(o,this,o,["replace","path","search","hash"]),h(o,this,o,["port","protocol","host"]),h(a,this,a,["baseHref"])},t.monkeyPatchPathParameterType=function(t){var e=t.urlMatcherFactory.type("path");e.encode=function(t){return null!=t?t.toString().replace(/(~|\/)/g,function(t){return{"~":"~~","/":"~2F"}[t]}):t},e.decode=function(t){return null!=t?t.toString().replace(/(~~|~2F)/g,function(t){return{"~~":"~","~2F":"/"}[t]}):t}},t}(),ui=function(){function t(t){this._router=t,this._urlRouter=t.urlRouter}return t.prototype.$get=function(){var t=this._urlRouter;return t.update(!0),t.interceptDeferred||t.listen(),t},t.prototype.rule=function(t){var e=this;if(!Kt(t))throw new Error("'rule' must be a function");var r=new qr(function(){return t(ae.$injector,e._router.locationService)},f);return this._urlRouter.rule(r),this},t.prototype.otherwise=function(t){var e=this,r=this._urlRouter;if(Zt(t))r.otherwise(t);else{if(!Kt(t))throw new Error("'rule' must be a string or function");r.otherwise(function(){return t(ae.$injector,e._router.locationService)})}return this},t.prototype.when=function(e,r){return(te(r)||Kt(r))&&(r=t.injectableHandler(this._router,r)),this._urlRouter.when(e,r),this},t.injectableHandler=function(t,e){return function(r){return ae.$injector.invoke(e,null,{$match:r,$stateParams:t.globals.params})}},t.prototype.deferIntercept=function(t){this._urlRouter.deferIntercept(t)},t}();It.module("ui.router.angular1",[]);var si=It.module("ui.router.init",[]),ci=It.module("ui.router.util",["ng","ui.router.init"]),fi=It.module("ui.router.router",["ui.router.util"]),li=It.module("ui.router.state",["ui.router.router","ui.router.util","ui.router.angular1"]),hi=It.module("ui.router",["ui.router.init","ui.router.state","ui.router.angular1"]),pi=(It.module("ui.router.compat",["ui.router"]),null);yt.$inject=["$locationProvider"];var di=function(t){return["$uiRouterProvider",function(e){var r=e.router[t];return r.$get=function(){return r},r}]};gt.$inject=["$injector","$q","$uiRouter"];_t.$inject=["$rootScope"],si.provider("$uiRouter",yt),fi.provider("$urlRouter",["$uiRouterProvider",function(t){return t.urlRouterProvider=new ui(t)}]),ci.provider("$urlService",di("urlService")),ci.provider("$urlMatcherFactory",["$uiRouterProvider",function(){return pi.urlMatcherFactory}]),ci.provider("$templateFactory",function(){return new ei}),li.provider("$stateRegistry",di("stateRegistry")),li.provider("$uiRouterGlobals",di("globals")),li.provider("$transitions",di("transitionService")),li.provider("$state",["$uiRouterProvider",function(){return he(pi.stateProvider,{$get:function(){return pi.stateService}})}]),li.factory("$stateParams",["$uiRouter",function(t){return t.globals.params}]),hi.factory("$view",function(){return pi.viewService}),hi.service("$trace",function(){return Me}),hi.run(_t),ci.run(["$urlMatcherFactory",function(t){}]),li.run(["$state",function(t){}]),fi.run(["$urlRouter",function(t){}]),si.run(gt);var vi,mi=function(t){return t.getTokens().filter(Zt).map(function(e){var r=t.getResolvable(e);return[e,"NOWAIT"===t.getPolicy(r).async?r.promise:r.data]}).reduce(C,{})};vi=["$uiRouter","$timeout",function(t,e){var r=t.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,o,a){function u(){var t=p();l&&l(),f&&(l=f.$$addStateInfo(t.uiState,t.uiStateParams)),null!=t.href&&o.$set(c.attr,t.href)}var s,c=bt(i),f=a[1]||a[0],l=null,h={},p=function(){return St(r,i,h)},d=wt(o.uiSref);h.uiState=d.state,h.uiStateOpts=o.uiSrefOpts?n.$eval(o.uiSrefOpts):{},d.paramExpr&&(n.$watch(d.paramExpr,function(t){h.uiStateParams=he({},t),u()},!0),h.uiStateParams=he({},n.$eval(d.paramExpr))),u(),n.$on("$destroy",t.stateRegistry.onStatesChanged(u)),n.$on("$destroy",t.transitionService.onSuccess({},u)),c.clickable&&(s=Rt(i,r,e,c,p),Tt(i,n,s,h.uiStateOpts))}}}];var yi;yi=["$uiRouter","$timeout",function(t,e){var r=t.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,o,a){function u(){var t=d();h&&h(),f&&(h=f.$$addStateInfo(t.uiState,t.uiStateParams)),null!=t.href&&o.$set(c.attr,t.href)}var s,c=bt(i),f=a[1]||a[0],h=null,p={},d=function(){return St(r,i,p)},v=["uiState","uiStateParams","uiStateOpts"],m=v.reduce(function(t,e){return t[e]=l,t},{});v.forEach(function(t){p[t]=o[t]?n.$eval(o[t]):null,o.$observe(t,function(e){m[t](),m[t]=n.$watch(e,function(e){p[t]=e,u()},!0)})}),u(),n.$on("$destroy",t.stateRegistry.onStatesChanged(u)),n.$on("$destroy",t.transitionService.onSuccess({},u)),c.clickable&&(s=Rt(i,r,e,c,d),Tt(i,n,s,p.uiStateOpts))}}}];var gi;gi=["$state","$stateParams","$interpolate","$uiRouter",function(t,e,r,n){return{restrict:"A",controller:["$scope","$element","$attrs",function(e,i,o){function a(t){t.promise.then(s,l)}function u(e,r,n){var o={state:t.get(e,$t(i))||{name:e},params:r,activeClass:n};return p.push(o),function(){me(p)(o)}}function s(){var r=function(t){return t.split(/\s/).filter(f)},n=function(t){return t.map(function(t){return t.activeClass}).map(r).reduce(Re,[])},o=n(p).concat(r(c)).reduce(Te,[]),a=n(p.filter(function(e){return t.includes(e.state.name,e.params)})),u=!!p.filter(function(e){return t.is(e.state.name,e.params)}).length?r(c):[],s=a.concat(u).reduce(Te,[]),l=o.filter(function(t){return!ve(s,t)});e.$evalAsync(function(){s.forEach(function(t){return i.addClass(t)}),l.forEach(function(t){return i.removeClass(t)})})}var c,h,p=[];c=r(o.uiSrefActiveEq||"",!1)(e);try{h=e.$eval(o.uiSrefActive)}catch(t){}h=h||r(o.uiSrefActive||"",!1)(e),Xt(h)&&le(h,function(t,r){if(Zt(t)){var n=wt(t);u(n.state,e.$eval(n.paramExpr),r)}}),this.$$addStateInfo=function(t,e){if(!(Xt(h)&&p.length>0)){var r=u(t,e,h);return s(),r}},e.$on("$stateChangeSuccess",s),e.$on("$destroy",n.transitionService.onStart({},a)),n.globals.transition&&a(n.globals.transition),s()}]}}],It.module("ui.router.state").directive("uiSref",vi).directive("uiSrefActive",gi).directive("uiSrefActiveEq",gi).directive("uiState",yi),Ct.$inject=["$state"],Pt.$inject=["$state"],It.module("ui.router.state").filter("isState",Ct).filter("includedByState",Pt);var _i;_i=["$view","$animate","$uiViewScroll","$interpolate","$q",function(t,e,r,n,i){function o(t,r){return{enter:function(t,r,n){It.version.minor>2?e.enter(t,null,r).then(n):e.enter(t,null,r,n)},leave:function(t,r){It.version.minor>2?e.leave(t).then(r):e.leave(t,r)}}}function a(t,e){return t===e}var u={$cfg:{viewDecl:{$context:t._pluginapi._rootViewContext()}},$uiView:{}},s={count:0,restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(e,c,f){return function(e,c,l){function h(){if(d&&(Me.traceUIViewEvent("Removing (previous) el",d.data("$uiView")),d.remove(),d=null),m&&(Me.traceUIViewEvent("Destroying scope",R),m.$destroy(),m=null),v){var t=v.data("$uiViewAnim");Me.traceUIViewEvent("Animate out",t),w.leave(v,function(){t.$$animLeave.resolve(),d=null}),d=v,v=null}}function p(t){var n=e.$new(),o=i.defer(),a=i.defer(),u={$cfg:t,$uiView:R},s={$animEnter:o.promise,$animLeave:a.promise,$$animLeave:a};n.$emit("$viewContentLoading",b);var l=f(n,function(t){t.data("$uiViewAnim",s),t.data("$uiView",u),w.enter(t,c,function(){o.resolve(),m&&m.$emit("$viewContentAnimationEnded"),(zt(_)&&!_||e.$eval(_))&&r(t)}),h()});v=l,(m=n).$emit("$viewContentLoaded",t||$),m.$eval(g)}var d,v,m,y,g=l.onload||"",_=l.autoscroll,w=o(),$=void 0,S=c.inheritedData("$uiView")||u,b=n(l.uiView||l.name||"")(e)||"$default",R={$type:"ng1",id:s.count++,name:b,fqn:S.$uiView.fqn?S.$uiView.fqn+"."+b:b,config:null,configUpdated:function(t){(!t||t instanceof ti)&&(a($,t)||(Me.traceUIViewConfigUpdated(R,t&&t.viewDecl&&t.viewDecl.$context),$=t,p(t)))},get creationContext(){var t=At("$cfg.viewDecl.$context")(S),e=At("$uiView.creationContext")(S);return t||e}};Me.traceUIViewEvent("Linking",R),c.data("$uiView",{$uiView:R}),p(),y=t.registerUIView(R),e.$on("$destroy",function(){Me.traceUIViewEvent("Destroying/Unregistering",R),y()})}}};return s}],kt.$inject=["$compile","$controller","$transitions","$view","$q","$timeout"];var wi="function"==typeof It.module("ui.router").component,$i=0;It.module("ui.router.state").directive("uiView",_i),It.module("ui.router.state").directive("uiView",kt),It.module("ui.router.state").provider("$uiViewScroll",function(){var t=!1;this.useAnchorScroll=function(){t=!0},this.$get=["$anchorScroll","$timeout",function(e,r){return t?e:function(t){return r(function(){t[0].scrollIntoView()},0,!1)}}]});t.default="ui.router",t.core=Yn,t.watchDigests=_t,t.getLocals=mi,t.getNg1ViewConfigFactory=dt,t.ng1ViewsBuilder=vt,t.Ng1ViewConfig=ti,t.StateProvider=ii,t.UrlRouterProvider=ui,t.root=ue,t.fromJson=ce,t.toJson=fe,t.forEach=le,t.extend=he,t.equals=pe,t.identity=f,t.noop=l,t.createProxyFunctions=h,t.inherit=de,t.inArray=ve,t._inArray=p,t.removeFrom=me,t._removeFrom=d,t.pushTo=ye,t._pushTo=v,t.deregAll=ge,t.defaults=m,t.mergeR=_e,t.ancestors=y,t.pick=g,t.omit=_,t.pluck=w,t.filter=$,t.find=S,t.mapObj=we,t.map=b,t.values=$e,t.allTrueR=Se,t.anyTrueR=be,t.unnestR=Re,t.flattenR=Ee,t.pushR=R,t.uniqR=Te,t.unnest=Ce,t.flatten=Pe,t.assertPredicate=ke,t.assertMap=Oe,t.assertFn=E,t.pairs=xe,t.arrayTuples=T,t.applyPairs=C,t.tail=P,t.copy=k,t._extend=O,t.silenceUncaughtInPromise=Ie,t.silentRejection=je,t.notImplemented=oe,t.services=ae,t.Glob=Lt,t.curry=r,t.compose=n,t.pipe=i,t.prop=jt,t.propEq=Vt,t.parse=At,t.not=Ht,t.and=o,t.or=a,t.all=qt,t.any=Dt,t.is=Ft,t.eq=Nt,t.val=Ut,t.invoke=u,t.pattern=s,t.isUndefined=Wt,t.isDefined=zt,t.isNull=Jt,t.isNullOrUndefined=Qt,t.isFunction=Kt,t.isNumber=Yt,t.isString=Zt,t.isObject=Xt,t.isArray=te,t.isDate=ee,t.isRegExp=re,t.isState=ne,t.isInjectable=c,t.isPromise=ie,t.Queue=Ve,t.maxLength=M,t.padString=B,t.kebobString=G,t.functionToString=W,t.fnToString=z,t.stringify=J,t.beforeAfterSubstr=dr,t.hostRegex=vr,t.stripFile=mr,t.splitHash=yr,t.splitQuery=gr,t.splitEqual=_r,t.trimHashVal=wr,t.splitOnDelim=Q,t.joinNeighborsR=K,t.Trace=Le,t.trace=Me,t.Param=Ze,t.ParamTypes=$r,t.StateParams=br,t.ParamType=Qe,t.PathNode=Xe,t.PathUtils=tr,t.resolvePolicies=nr,t.defaultResolvePolicy=er,t.Resolvable=rr,t.NATIVE_INJECTOR_TOKEN=ur,t.ResolveContext=sr,t.resolvablesBuilder=rt,t.StateBuilder=Pr,t.StateObject=Mt,t.StateMatcher=kr,t.StateQueueManager=Or,t.StateRegistry=xr,t.StateService=kn,t.TargetState=Be,t.HookBuilder=Je,t.matchState=A,t.RegisteredHook=ze,t.makeEvent=H,t.Rejection=He,t.Transition=lr,t.TransitionHook=We,t.TransitionEventType=Rn,t.defaultTransOpts=Cn,t.TransitionService=Pn,t.UrlMatcher=Vr,t.UrlMatcherFactory=Ar,t.UrlRouter=Lr,t.UrlRuleFactory=Hr,t.BaseUrlRule=qr,t.UrlService=Yr,t.ViewService=Mr,t.UIRouterGlobals=Br,t.UIRouter=Xr,t.$q=On,t.$injector=Vn,t.BaseLocationServices=Dn,t.HashLocationService=Nn,t.MemoryLocationService=Ln,t.PushStateLocationService=Bn,t.MemoryLocationConfig=Gn,t.BrowserLocationConfig=Wn,t.keyValsToObjectR=An,t.getParams=Hn,t.parseUrl=lt,t.buildUrl=qn,t.locationPluginFactory=ht,t.servicesPlugin=pt,t.hashLocationPlugin=zn,t.pushStateLocationPlugin=Jn,t.memoryLocationPlugin=Qn,t.UIRouterPluginBase=Kn,Object.defineProperty(t,"__esModule",{value:!0})}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("angular")):"function"==typeof define&&define.amd?define(["exports","angular"],e):e(t["@uirouter/angularjs"]={},t.angular)}(this,function(t,e){"use strict";function r(t){function e(r){return r.length>=n?t.apply(null,r):function(){return e(r.concat([].slice.apply(arguments)))}}var r=[].slice.apply(arguments,[1]),n=t.length;return e(r)}function n(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}}function i(){for(var t=[],e=0;e=0&&t.splice(r,1),t}function v(t,e){return t.push(e),e}function m(t){for(var e=[],r=1;r1||o.ctrlKey||o.metaKey||o.shiftKey||t.attr("target"))){var s=r(function(){e.go(u.uiState,u.uiStateParams,u.uiStateOpts)});o.preventDefault();var c=n.isAnchor&&!u.href?1:0;o.preventDefault=function(){c--<=0&&r.cancel(s)}}}}function Et(t,e){return{relative:$t(t)||e.$current,inherit:!0,source:"sref"}}function Tt(t,e,r,n){var i;n&&(i=n.events),te(i)||(i=["click"]);for(var o=t.on?"on":"bind",a=0,u=i;athis._limit&&e.shift(),t},t.prototype.dequeue=function(){if(this.size())return this._items.splice(0,1)[0]},t.prototype.clear=function(){var t=this._items;return this._items=[],t},t.prototype.size=function(){return this._items.length},t.prototype.remove=function(t){var e=this._items.indexOf(t);return e>-1&&this._items.splice(e,1)[0]},t.prototype.peekTail=function(){return this._items[this._items.length-1]},t.prototype.peekHead=function(){if(this.size())return this._items[0]},t}();!function(t){t[t.SUPERSEDED=2]="SUPERSEDED",t[t.ABORTED=3]="ABORTED",t[t.INVALID=4]="INVALID",t[t.IGNORED=5]="IGNORED",t[t.ERROR=6]="ERROR"}(t.RejectType||(t.RejectType={}));var Ae=0,He=function(){function e(t,e,r){this.$id=Ae++,this.type=t,this.message=e,this.detail=r}return e.prototype.toString=function(){var t=function(t){return t&&t.toString!==Object.prototype.toString?t.toString():J(t)}(this.detail),e=this;return"Transition Rejection($id: "+e.$id+" type: "+e.type+", message: "+e.message+", detail: "+t+")"},e.prototype.toPromise=function(){return he(je(this),{_transitionRejection:this})},e.isRejectionPromise=function(t){return t&&"function"==typeof t.then&&Ft(e)(t._transitionRejection)},e.superseded=function(r,n){var i=new e(t.RejectType.SUPERSEDED,"The transition has been superseded by a different transition",r);return n&&n.redirected&&(i.redirected=!0),i},e.redirected=function(t){return e.superseded(t,{redirected:!0})},e.invalid=function(r){return new e(t.RejectType.INVALID,"This transition is invalid",r)},e.ignored=function(r){return new e(t.RejectType.IGNORED,"The transition was ignored",r)},e.aborted=function(r){return new e(t.RejectType.ABORTED,"The transition has been aborted",r)},e.errored=function(r){return new e(t.RejectType.ERROR,"The transition errored",r)},e.normalize=function(t){return Ft(e)(t)?t:e.errored(t)},e}(),qe=function(t){var e=t.viewDecl,r=e.$context.name||"(root)";return"[View#"+t.$id+" from '"+r+"' state]: target ui-view: '"+e.$uiViewName+"@"+e.$uiViewContextAnchor+"'"},De=Function.prototype.bind.call(console.log,console),Fe=Kt(console.table)?console.table.bind(console):De.bind(console);!function(t){t[t.RESOLVE=0]="RESOLVE",t[t.TRANSITION=1]="TRANSITION",t[t.HOOK=2]="HOOK",t[t.UIVIEW=3]="UIVIEW",t[t.VIEWCONFIG=4]="VIEWCONFIG"}(t.Category||(t.Category={}));var Ne=At("$id"),Ue=At("router.$id"),Le=function(t){return"Transition #"+Ne(t)+"-"+Ue(t)},Me=function(){function e(){this._enabled={},this.approximateDigests=0}return e.prototype._set=function(e,r){var n=this;r.length||(r=Object.keys(t.Category).map(function(t){return parseInt(t,10)}).filter(function(t){return!isNaN(t)}).map(function(e){return t.Category[e]})),r.map(V).forEach(function(t){return n._enabled[t]=e})},e.prototype.enable=function(){for(var t=[],e=0;e "+J(e))},e.prototype.traceTransitionIgnored=function(e){this.enabled(t.Category.TRANSITION)&&console.log(Le(e)+": Ignored <> "+J(e))},e.prototype.traceHookInvocation=function(e,r,n){if(this.enabled(t.Category.HOOK)){var i=At("traceData.hookType")(n)||"internal",o=At("traceData.context.state.name")(n)||At("traceData.context")(n)||"unknown",a=W(e.registeredHook.callback);console.log(Le(r)+": Hook -> "+i+" context: "+o+", "+M(200,a))}},e.prototype.traceHookResult=function(e,r,n){this.enabled(t.Category.HOOK)&&console.log(Le(r)+": <- Hook returned: "+M(200,J(e)))},e.prototype.traceResolvePath=function(e,r,n){this.enabled(t.Category.RESOLVE)&&console.log(Le(n)+": Resolving "+e+" ("+r+")")},e.prototype.traceResolvableResolved=function(e,r){this.enabled(t.Category.RESOLVE)&&console.log(Le(r)+": <- Resolved "+e+" to: "+M(200,J(e.data)))},e.prototype.traceError=function(e,r){this.enabled(t.Category.TRANSITION)&&console.log(Le(r)+": <- Rejected "+J(r)+", reason: "+e)},e.prototype.traceSuccess=function(e,r){this.enabled(t.Category.TRANSITION)&&console.log(Le(r)+": <- Success "+J(r)+", final state: "+e.name)},e.prototype.traceUIViewEvent=function(e,r,n){void 0===n&&(n=""),this.enabled(t.Category.UIVIEW)&&console.log("ui-view: "+B(30,e)+" "+j(r)+n)},e.prototype.traceUIViewConfigUpdated=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Updating",e," with ViewConfig from context='"+r+"'")},e.prototype.traceUIViewFill=function(e,r){this.enabled(t.Category.UIVIEW)&&this.traceUIViewEvent("Fill",e," with: "+M(200,r))},e.prototype.traceViewSync=function(e){if(this.enabled(t.Category.VIEWCONFIG)){var r=e.map(function(t){var e=t[0],r=t[1];return{"ui-view fqn":e.$type+":"+e.fqn,"state: view name":r&&r.viewDecl.$context.name+": "+r.viewDecl.$name+" ("+r.viewDecl.$type+")"}}).sort(function(t,e){return t["ui-view fqn"].localeCompare(e["ui-view fqn"])});Fe(r)}},e.prototype.traceViewServiceEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&console.log("VIEWCONFIG: "+e+" "+qe(r))},e.prototype.traceViewServiceUIViewEvent=function(e,r){this.enabled(t.Category.VIEWCONFIG)&&console.log("VIEWCONFIG: "+e+" "+j(r))},e}(),Be=new Me;!function(t){t[t.CREATE=0]="CREATE",t[t.BEFORE=1]="BEFORE",t[t.RUN=2]="RUN",t[t.SUCCESS=3]="SUCCESS",t[t.ERROR=4]="ERROR"}(t.TransitionHookPhase||(t.TransitionHookPhase={})),function(t){t[t.TRANSITION=0]="TRANSITION",t[t.STATE=1]="STATE"}(t.TransitionHookScope||(t.TransitionHookScope={}));var Ge=function(){function t(t,e,r,n){this._stateRegistry=t,this._identifier=e,this._identifier=e,this._params=he({},r||{}),this._options=he({},n||{}),this._definition=t.matcher.find(e,this._options.relative)}return t.prototype.name=function(){return this._definition&&this._definition.name||this._identifier},t.prototype.identifier=function(){return this._identifier},t.prototype.params=function(){return this._params},t.prototype.$state=function(){return this._definition},t.prototype.state=function(){return this._definition&&this._definition.self},t.prototype.options=function(){return this._options},t.prototype.exists=function(){return!(!this._definition||!this._definition.self)},t.prototype.valid=function(){return!this.error()},t.prototype.error=function(){var t=this.options().relative;if(!this._definition&&t){var e=t.name?t.name:t;return"Could not resolve '"+this.name()+"' from state '"+e+"'"}return this._definition?this._definition.self?void 0:"State '"+this.name()+"' has an invalid definition":"No such state '"+this.name()+"'"},t.prototype.toString=function(){return"'"+this.name()+"'"+J(this.params())},t.prototype.withState=function(e){return new t(this._stateRegistry,e,this._params,this._options)},t.prototype.withParams=function(e,r){void 0===r&&(r=!1);var n=r?e:he({},this._params,e);return new t(this._stateRegistry,this._identifier,n,this._options)},t.prototype.withOptions=function(e,r){void 0===r&&(r=!1);var n=r?e:he({},this._options,e);return new t(this._stateRegistry,this._identifier,this._params,n)},t.isDef=function(t){return t&&t.state&&(Zt(t.state)||Zt(t.state.name))},t}(),We={current:l,transition:null,traceData:{},bind:null},ze=function(){function e(e,r,n,i){var o=this;this.transition=e,this.stateContext=r,this.registeredHook=n,this.options=i,this.isSuperseded=function(){return o.type.hookPhase===t.TransitionHookPhase.RUN&&!o.options.transition.isActive()},this.options=m(i,We),this.type=n.eventType}return e.prototype.logError=function(t){this.transition.router.stateService.defaultErrorHandler()(t)},e.prototype.invokeHook=function(){var t=this,e=this.registeredHook;if(!e._deregistered){var r=this.getNotCurrentRejection();if(r)return r;var n=this.options;Be.traceHookInvocation(this,this.transition,n);var i=function(r){return e.eventType.getErrorHandler(t)(r)},o=function(r){return e.eventType.getResultHandler(t)(r)};try{var a=e.callback.call(n.bind,t.transition,t.stateContext);return!this.type.synchronous&&ie(a)?a.catch(function(t){return He.normalize(t).toPromise()}).then(o,i):o(a)}catch(t){return i(He.normalize(t))}finally{e.invokeLimit&&++e.invokeCount>=e.invokeLimit&&e.deregister()}}},e.prototype.handleHookResult=function(t){var e=this,r=this.getNotCurrentRejection();return r||(ie(t)?t.then(function(t){return e.handleHookResult(t)}):(Be.traceHookResult(t,this.transition,this.options),!1===t?He.aborted("Hook aborted transition").toPromise():Ft(Ge)(t)?He.redirected(t).toPromise():void 0))},e.prototype.getNotCurrentRejection=function(){var t=this.transition.router;return t._disposed?He.aborted("UIRouter instance #"+t.$id+" has been stopped (disposed)").toPromise():this.transition._aborted?He.aborted().toPromise():this.isSuperseded()?He.superseded(this.options.current()).toPromise():void 0},e.prototype.toString=function(){var t=this,e=t.options,r=t.registeredHook;return(At("traceData.hookType")(e)||"internal")+" context: "+(At("traceData.context.state.name")(e)||At("traceData.context")(e)||"unknown")+", "+M(200,z(r.callback))},e.chain=function(t,e){return t.reduce(function(t,e){return t.then(function(){return e.invokeHook()})},e||ae.$q.when())},e.invokeHooks=function(t,r){for(var n=0;n20)throw new Error("Too many consecutive Transition redirects (20+)");var n={redirectedFrom:this,source:"redirect"};"url"===this.options().source&&!1!==t.options().location&&(n.location="replace");var i=he({},this.options(),t.options(),n);t=t.withOptions(i,!0);var o=this.router.transitionService.create(this._treeChanges.from,t),a=this._treeChanges.entering,u=o._treeChanges.entering;return er.matching(u,a,er.nonDynamicParams).filter(Ht(function(t){return function(e){return t&&e.state.includes[t.name]}}(t.options().reloadState))).forEach(function(t,e){t.resolvables=a[e].resolvables}),o},e.prototype._changedParams=function(){var t=this._treeChanges;if(!(this._options.reload||t.exiting.length||t.entering.length||t.to.length!==t.from.length||T(t.to,t.from).map(function(t){return t[0].state!==t[1].state}).reduce(be,!1))){var e=t.to.map(function(t){return t.paramSchema}),r=[t.to,t.from].map(function(t){return t.map(function(t){return t.paramValues})});return T(e,r[0],r[1]).map(function(t){var e=t[0],r=t[1],n=t[2];return Xe.changed(e,r,n)}).reduce(Re,[])}},e.prototype.dynamic=function(){var t=this._changedParams();return!!t&&t.map(function(t){return t.dynamic}).reduce(be,!1)},e.prototype.ignored=function(){return!!this._ignoredReason()},e.prototype._ignoredReason=function(){var t=this.router.globals.transition,e=this._options.reloadState,r=function(t,r){if(t.length!==r.length)return!1;var n=er.matching(t,r);return t.length===n.filter(function(t){return!e||!t.state.includes[e.name]}).length},n=this.treeChanges(),i=t&&t.treeChanges();return i&&r(i.to,n.to)&&r(i.exiting,n.exiting)?"SameAsPending":0===n.exiting.length&&0===n.entering.length&&r(n.from,n.to)?"SameAsCurrent":void 0},e.prototype.run=function(){var e=this,r=ze.runAllHooks,n=function(t){return e._hookBuilder.buildHooksForPhase(t)},i=n(t.TransitionHookPhase.BEFORE);return ze.invokeHooks(i,function(){var t=e.router.globals;return t.lastStartedTransitionId=e.$id,t.transition=e,t.transitionHistory.enqueue(e),Be.traceTransitionStart(e),ae.$q.when(void 0)}).then(function(){var e=n(t.TransitionHookPhase.RUN);return ze.invokeHooks(e,function(){return ae.$q.when(void 0)})}).then(function(){Be.traceSuccess(e.$to(),e),e.success=!0,e._deferred.resolve(e.to()),r(n(t.TransitionHookPhase.SUCCESS))},function(i){Be.traceError(i,e),e.success=!1,e._deferred.reject(i),e._error=i,r(n(t.TransitionHookPhase.ERROR))}),this.promise},e.prototype.valid=function(){return!this.error()||void 0!==this.success},e.prototype.abort=function(){Wt(this.success)&&(this._aborted=!0)},e.prototype.error=function(){var t=this.$to();if(t.self.abstract)return"Cannot transition to abstract state '"+t.name+"'";var e=t.parameters(),r=this.params(),n=e.filter(function(t){return!t.validates(r[t.id])});return n.length?"Param values not valid for state '"+t.name+"'. Invalid params: [ "+n.map(function(t){return t.id}).join(", ")+" ]":!1===this.success?this._error:void 0},e.prototype.toString=function(){var t=this.from(),e=this.to(),r=function(t){return null!==t["#"]&&void 0!==t["#"]?t:_(t,["#"])};return"Transition#"+this.$id+"( '"+(Xt(t)?t.name:t)+"'"+J(r(this._treeChanges.from.map(jt("paramValues")).reduce(_e,{})))+" -> "+(this.valid()?"":"(X) ")+"'"+(Xt(e)?e.name:e)+"'"+J(r(this.params()))+" )"},e.diToken=e,e}(),pr=null,dr=function(t){var e=He.isRejectionPromise;return(pr=pr||s([[Ht(zt),Ut("undefined")],[Jt,Ut("null")],[ie,Ut("[Promise]")],[e,function(t){return t._transitionRejection.toString()}],[Ft(He),u("toString")],[Ft(hr),u("toString")],[Ft(nr),u("toString")],[c,W],[Ut(!0),f]]))(t)},vr=function(t){return function(e){if(!e)return["",""];var r=e.indexOf(t);return-1===r?[e,""]:[e.substr(0,r),e.substr(r+1)]}},mr=new RegExp("^(?:[a-z]+:)?//[^/]+/"),yr=function(t){return t.replace(/\/[^/]*$/,"")},gr=vr("#"),_r=vr("?"),wr=vr("="),$r=function(t){return t?t.replace(/^#/,""):""},Sr=function(){function t(){this.enqueue=!0,this.typeQueue=[],this.defaultTypes=g(t.prototype,["hash","string","query","path","int","bool","date","json","any"]);this.types=de(b(this.defaultTypes,function(t,e){return new Ke(he({name:e},t))}),{})}return t.prototype.dispose=function(){this.types={}},t.prototype.type=function(t,e,r){if(!zt(e))return this.types[t];if(this.types.hasOwnProperty(t))throw new Error("A type named '"+t+"' has already been defined.");return this.types[t]=new Ke(he({name:t},e)),r&&(this.typeQueue.push({name:t,def:r}),this.enqueue||this._flushTypeQueue()),this},t.prototype._flushTypeQueue=function(){for(;this.typeQueue.length;){var t=this.typeQueue.shift();if(t.pattern)throw new Error("You cannot override a type's .pattern at runtime.");he(this.types[t.name],ae.$injector.invoke(t.def))}},t}();!function(){var t=function(t){var e=function(t){return null!=t?t.toString():t},r={encode:e,decode:e,is:Ft(String),pattern:/.*/,equals:function(t,e){return t==e}};return he({},r,t)};he(Sr.prototype,{string:t({}),path:t({pattern:/[^/]*/}),query:t({}),hash:t({inherit:!1}),int:t({decode:function(t){return parseInt(t,10)},is:function(t){return!Qt(t)&&this.decode(t.toString())===t},pattern:/-?\d+/}),bool:t({encode:function(t){return t&&1||0},decode:function(t){return 0!==parseInt(t,10)},is:Ft(Boolean),pattern:/0|1/}),date:t({encode:function(t){return this.is(t)?[t.getFullYear(),("0"+(t.getMonth()+1)).slice(-2),("0"+t.getDate()).slice(-2)].join("-"):void 0},decode:function(t){if(this.is(t))return t;var e=this.capture.exec(t);return e?new Date(e[1],e[2]-1,e[3]):void 0},is:function(t){return t instanceof Date&&!isNaN(t.valueOf())},equals:function(t,e){return["getFullYear","getMonth","getDate"].reduce(function(r,n){return r&&t[n]()===e[n]()},!0)},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/}),json:t({encode:fe,decode:ce,is:Ft(Object),equals:pe,pattern:/[^/]*/}),any:t({encode:f,decode:f,is:function(){return!0},equals:pe})})}();var br,Rr=function(){function t(t){void 0===t&&(t={}),he(this,t)}return t.prototype.$inherit=function(t,e,r){var n,i=y(e,r),o={},a=[];for(var u in i)if(i[u]&&i[u].params&&(n=Object.keys(i[u].params)).length)for(var s in n)a.indexOf(n[s])>=0||(a.push(n[s]),o[n[s]]=this[n[s]]);return he({},o,t)},t}(),Er=function(t){if(!Zt(t))return!1;var e="^"===t.charAt(0);return{val:e?t.substring(1):t,root:e}},Tr=function(t,e){return function(r){var n=r;n&&n.url&&n.name&&n.name.match(/\.\*\*$/)&&(n.url+="{remainder:any}");var i=Er(n.url),o=r.parent,a=i?t.compile(i.val,{params:r.params||{},paramMap:function(t,e){return!1===n.reloadOnSearch&&e&&(t=he(t||{},{dynamic:!0})),t}}):n.url;if(!a)return null;if(!t.isMatcher(a))throw new Error("Invalid url '"+a+"' in state '"+r+"'");return i&&i.root?a:(o&&o.navigable||e()).url.append(a)}},Cr=function(t){return function(e){return!t(e)&&e.url?e:e.parent?e.parent.navigable:null}},Pr=function(t){return function(e){var r=e.url&&e.url.parameters({inherit:!1})||[],n=$e(we(_(e.params||{},r.map(jt("id"))),function(e,r){return t.fromConfig(r,null,e)}));return r.concat(n).map(function(t){return[t.id,t]}).reduce(C,{})}},kr=function(){function t(t,e){this.matcher=t;var r=this,n=function(){return t.find("")},i=function(t){return""===t.name};this.builders={name:[Y],self:[Z],parent:[function(e){return i(e)?null:t.find(r.parentName(e))||n()}],data:[X],url:[Tr(e,n)],navigable:[Cr(i)],params:[Pr(e.paramFactory)],views:[],path:[tt],includes:[et],resolvables:[rt]}}return t.prototype.builder=function(t,e){var r=this.builders,n=r[t]||[];return Zt(t)&&!zt(e)?n.length>1?n:n[0]:Zt(t)&&Kt(e)?(r[t]=n,r[t].push(e),function(){return r[t].splice(r[t].indexOf(e,1))&&null}):void 0},t.prototype.build=function(t){var e=this,r=e.matcher,n=e.builders,i=this.parentName(t);if(i&&!r.find(i,void 0,!1))return null;for(var o in n)if(n.hasOwnProperty(o)){var a=n[o].reduce(function(t,e){return function(r){return e(r,t)}},l);t[o]=a(t)}return t},t.prototype.parentName=function(t){var e=t.name||"",r=e.split(".");if("**"===r.pop()&&r.pop(),r.length){if(t.parent)throw new Error("States that specify the 'parent:' property should not have a '.' in their name ("+e+")");return r.join(".")}return t.parent?Zt(t.parent)?t.parent:t.parent.name:""},t.prototype.name=function(t){var e=t.name;if(-1!==e.indexOf(".")||!t.parent)return e;var r=Zt(t.parent)?t.parent:t.parent.name;return r?r+"."+e:e},t}(),Or=function(){function t(t){this._states=t}return t.prototype.isRelative=function(t){return 0===(t=t||"").indexOf(".")||0===t.indexOf("^")},t.prototype.find=function(t,e,r){if(void 0===r&&(r=!0),t||""===t){var n=Zt(t),i=n?t:t.name;this.isRelative(i)&&(i=this.resolvePath(i,e));var o=this._states[i];if(o&&(n||!(n||o!==t&&o.self!==t)))return o;if(n&&r){var a=$e(this._states).filter(function(t){return t.__stateObjectCache.nameGlob&&t.__stateObjectCache.nameGlob.matches(i)});return a.length>1&&console.log("stateMatcher.find: Found multiple matches for "+i+" using glob: ",a.map(function(t){return t.name})),a[0]}}},t.prototype.resolvePath=function(t,e){if(!e)throw new Error("No reference point given for path '"+t+"'");for(var r=this.find(e),n=t.split("."),i=0,o=n.length,a=r;i0;){var c=r.shift(),f=c.name,l=i.build(c),h=a.indexOf(c);if(l){var p=s(f);if(p&&p.name===f)throw new Error("State '"+f+"' is already defined");var d=s(f+".**");d&&this.$registry.deregister(d),n[f]=c,this.attachRoute(c),h>=0&&a.splice(h,1),o.push(c)}else{var v=u[f];if(u[f]=r.length,h>=0&&v===r.length)return r.push(c),n;h<0&&a.push(c),r.push(c)}}return o.length&&this.listeners.forEach(function(t){return t("registered",o.map(function(t){return t.self}))}),n},t.prototype.attachRoute=function(t){!t.abstract&&t.url&&this.$urlRouter.rule(this.$urlRouter.urlRuleFactory.create(t))},t}(),Ir=function(){function t(t){this._router=t,this.states={},this.listeners=[],this.matcher=new Or(this.states),this.builder=new kr(this.matcher,t.urlMatcherFactory),this.stateQueue=new xr(this,t.urlRouter,this.states,this.builder,this.listeners),this._registerRoot()}return t.prototype._registerRoot=function(){var t={name:"",url:"^",views:null,params:{"#":{value:null,type:"hash",dynamic:!0}},abstract:!0};(this._root=this.stateQueue.register(t)).navigable=null},t.prototype.dispose=function(){var t=this;this.stateQueue.dispose(),this.listeners=[],this.get().forEach(function(e){return t.get(e)&&t.deregister(e)})},t.prototype.onStatesChanged=function(t){return this.listeners.push(t),function(){me(this.listeners)(t)}.bind(this)},t.prototype.root=function(){return this._root},t.prototype.register=function(t){return this.stateQueue.register(t)},t.prototype._deregisterTree=function(t){var e=this,r=this.get().map(function(t){return t.$$state()}),n=function(t){var e=r.filter(function(e){return-1!==t.indexOf(e.parent)});return 0===e.length?e:e.concat(n(e))},i=n([t]),o=[t].concat(i).reverse();return o.forEach(function(t){var r=e._router.urlRouter;r.rules().filter(Vt("state",t)).forEach(r.removeRule.bind(r)),delete e.states[t.name]}),o},t.prototype.deregister=function(t){var e=this.get(t);if(!e)throw new Error("Can't deregister state; not found: "+t);var r=this._deregisterTree(e.$$state());return this.listeners.forEach(function(t){return t("deregistered",r.map(function(t){return t.self}))}),r},t.prototype.get=function(t,e){var r=this;if(0===arguments.length)return Object.keys(this.states).map(function(t){return r.states[t].self});var n=this.matcher.find(t,e);return n&&n.self||null},t.prototype.decorator=function(t,e){return this.builder.builder(t,e)},t}(),jr=function(t,e,r){return t[e]=t[e]||r()},Vr=Q("/"),Ar=function(){function e(t,r,n,i){var o=this;this.config=i,this._cache={path:[this]},this._children=[],this._params=[],this._segments=[],this._compiled=[],this.pattern=t,this.config=m(this.config,{params:{},strict:!0,caseInsensitive:!1,paramMap:f});for(var a,u,s,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,h=0,p=[],d=function(r){if(!e.nameValidator.test(r))throw new Error("Invalid parameter name '"+r+"' in pattern '"+t+"'");if(S(o._params,Vt("id",r)))throw new Error("Duplicate parameter name '"+r+"' in pattern '"+t+"'")},v=function(e,n){var i=e[2]||e[3],a=n?e[4]:e[4]||("*"===e[1]?"[\\s\\S]*":null);return{id:i,regexp:a,cfg:o.config.params[i],segment:t.substring(h,e.index),type:a?r.type(a)||function(t){return de(r.type(n?"query":"path"),{pattern:new RegExp(t,o.config.caseInsensitive?"i":void 0)})}(a):null}};(a=c.exec(t))&&!((u=v(a,!1)).segment.indexOf("?")>=0);)d(u.id),this._params.push(n.fromPath(u.id,u.type,this.config.paramMap(u.cfg,!1))),this._segments.push(u.segment),p.push([u.segment,P(this._params)]),h=c.lastIndex;var y=(s=t.substring(h)).indexOf("?");if(y>=0){var g=s.substring(y);if(s=s.substring(0,y),g.length>0)for(h=0;a=l.exec(g);)d((u=v(a,!0)).id),this._params.push(n.fromSearch(u.id,u.type,this.config.paramMap(u.cfg,!0))),h=c.lastIndex}this._segments.push(s),this._compiled=p.map(function(t){return nt.apply(null,t)}).concat(nt(s))}return e.prototype.append=function(t){return this._children.push(t),t._cache={path:this._cache.path.concat(t),parent:this,pattern:null},t},e.prototype.isRoot=function(){return this._cache.path[0]===this},e.prototype.toString=function(){return this.pattern},e.prototype.exec=function(t,e,r,n){var i=this;void 0===e&&(e={}),void 0===n&&(n={});var o=jr(this._cache,"pattern",function(){return new RegExp(["^",Ce(i._cache.path.map(jt("_compiled"))).join(""),!1===i.config.strict?"/?":"","$"].join(""),i.config.caseInsensitive?"i":void 0)}).exec(t);if(!o)return null;var a=this.parameters(),u=a.filter(function(t){return!t.isSearch()}),s=a.filter(function(t){return t.isSearch()}),c=this._cache.path.map(function(t){return t._segments.length-1}).reduce(function(t,e){return t+e}),f={};if(c!==o.length-1)throw new Error("Unbalanced capture group in route '"+this.pattern+"'");for(var l=0;ln.weight?o:n}return n},t.prototype.sync=function(t){if(!t||!t.defaultPrevented){var e=this._router,r=e.urlService,n=e.stateService,i={path:r.path(),search:r.search(),hash:r.hash()},o=this.match(i);s([[Zt,function(t){return r.url(t,!0)}],[Ge.isDef,function(t){return n.go(t.state,t.params,t.options)}],[Ft(Ge),function(t){return n.go(t.state(),t.params(),t.options())}]])(o&&o.rule.handler(o.match,i,e))}},t.prototype.listen=function(t){var e=this;if(!1!==t)return this._stopFn=this._stopFn||this._router.urlService.onChange(function(t){return e.sync(t)});this._stopFn&&this._stopFn(),delete this._stopFn},t.prototype.update=function(t){var e=this._router.locationService;t?this.location=e.path():e.path()!==this.location&&e.url(this.location,!0)},t.prototype.push=function(t,e,r){var n=r&&!!r.replace;this._router.urlService.url(t.format(e||{}),n)},t.prototype.href=function(t,e,r){var n=t.format(e);if(null==n)return null;r=r||{absolute:!1};var i=this._router.urlService.config,o=i.html5Mode();if(o||null===n||(n="#"+i.hashPrefix()+n),n=it(n,o,r.absolute,i.baseHref()),!r.absolute||!n)return n;var a=!o&&n?"/":"",u=i.port();return u=80===u||443===u?"":":"+u,[i.protocol(),"://",i.host(),u,a,n].join("")},t.prototype.rule=function(t){var e=this;if(!qr.isUrlRule(t))throw new Error("invalid rule");return t.$id=this._id++,t.priority=t.priority||0,this._rules.push(t),this._sorted=!1,function(){return e.removeRule(t)}},t.prototype.removeRule=function(t){me(this._rules,t)},t.prototype.rules=function(){return this.ensureSorted(),this._rules.slice()},t.prototype.otherwise=function(t){var e=ot(t);this._otherwiseFn=this.urlRuleFactory.create(Ut(!0),e),this._sorted=!1},t.prototype.initial=function(t){var e=ot(t);this.rule(this.urlRuleFactory.create(function(t,e){return 0===e.globals.transitionHistory.size()&&!!/^\/?$/.exec(t.path)},e))},t.prototype.when=function(t,e,r){var n=this.urlRuleFactory.create(t,e);return zt(r&&r.priority)&&(n.priority=r.priority),this.rule(n),n},t.prototype.deferIntercept=function(t){void 0===t&&(t=!0),this.interceptDeferred=t},t}(),Br=function(){function t(){var t=this;this._uiViews=[],this._viewConfigs=[],this._viewConfigFactories={},this._pluginapi={_rootViewContext:this._rootViewContext.bind(this),_viewConfigFactory:this._viewConfigFactory.bind(this),_registeredUIViews:function(){return t._uiViews},_activeViewConfigs:function(){return t._viewConfigs}}}return t.prototype._rootViewContext=function(t){return this._rootContext=t||this._rootContext},t.prototype._viewConfigFactory=function(t,e){this._viewConfigFactories[t]=e},t.prototype.createViewConfig=function(t,e){var r=this._viewConfigFactories[e.$type];if(!r)throw new Error("ViewService: No view config factory registered for type "+e.$type);var n=r(t,e);return te(n)?n:[n]},t.prototype.deactivateViewConfig=function(t){Be.traceViewServiceEvent("<- Removing",t),me(this._viewConfigs,t)},t.prototype.activateViewConfig=function(t){Be.traceViewServiceEvent("-> Registering",t),this._viewConfigs.push(t)},t.prototype.sync=function(){function e(t){for(var e=t.viewDecl.$context,r=0;++r&&e.parent;)e=e.parent;return r}var n=this,i=this._uiViews.map(function(t){return[t.fqn,t]}).reduce(C,{}),o=r(function(t,e,r,n){return e*(t(r)-t(n))}),a=this._uiViews.sort(o(function(t){var e=function(t){return t&&t.parent?e(t.parent)+1:1};return 1e4*t.fqn.split(".").length+e(t.creationContext)},1)).map(function(r){var a=n._viewConfigs.filter(t.matches(i,r));return a.length>1&&a.sort(o(e,-1)),[r,a[0]]});Be.traceViewSync(a),a.forEach(function(t){var e=t[0],r=t[1];-1!==n._uiViews.indexOf(e)&&e.configUpdated(r)})},t.prototype.registerUIView=function(t){Be.traceViewServiceUIViewEvent("-> Registering",t);var e=this._uiViews;return e.filter(function(e){return e.fqn===t.fqn&&e.$type===t.$type}).length&&Be.traceViewServiceUIViewEvent("!!!! duplicate uiView named:",t),e.push(t),this.sync(),function(){-1!==e.indexOf(t)?(Be.traceViewServiceUIViewEvent("<- Deregistering",t),me(e)(t)):Be.traceViewServiceUIViewEvent("Tried removing non-registered uiView",t)}},t.prototype.available=function(){return this._uiViews.map(jt("fqn"))},t.prototype.active=function(){return this._uiViews.filter(jt("$config")).map(jt("name"))},t.normalizeUIViewTarget=function(t,e){void 0===e&&(e="");var r=e.split("@"),n=r[0]||"$default",i=Zt(r[1])?r[1]:"^",o=/^(\^(?:\.\^)*)\.(.*$)/.exec(n);return o&&(i=o[1],n=o[2]),"!"===n.charAt(0)&&(n=n.substr(1),i=""),/^(\^(?:\.\^)*)$/.exec(i)?i=i.split(".").reduce(function(t,e){return t.parent},t).name:"."===i&&(i=t.name),{uiViewName:n,uiViewContextAnchor:i}},t.matches=function(t,e){return function(r){if(e.$type!==r.viewDecl.$type)return!1;var n=r.viewDecl,i=n.$uiViewName.split("."),o=e.fqn.split(".");if(!pe(i,o.slice(0-i.length)))return!1;var a=1-i.length||void 0,u=o.slice(0,a).join("."),s=t[u].creationContext;return n.$uiViewContextAnchor===(s&&s.name)}},t}(),Gr=function(){function t(){this.params=new Rr,this.lastStartedTransitionId=-1,this.transitionHistory=new Ve([],1),this.successfulTransitions=new Ve([],1)}return t.prototype.dispose=function(){this.transitionHistory.clear(),this.successfulTransitions.clear(),this.transition=null},t}(),Wr=function(t){return t.reduce(function(t,e){return t[e]=oe(e),t},{dispose:l})},zr=["url","path","search","hash","onChange"],Jr=["port","protocol","host","baseHref","html5Mode","hashPrefix"],Qr=["type","caseInsensitive","strictMode","defaultSquashPolicy"],Kr=["sort","when","initial","otherwise","rules","rule","removeRule"],Yr=["deferIntercept","listen","sync","match"],Zr=function(){function t(t,e){void 0===e&&(e=!0),this.router=t,this.rules={},this.config={};var r=function(){return t.locationService};h(r,this,r,zr,e);var n=function(){return t.locationConfig};h(n,this.config,n,Jr,e);var i=function(){return t.urlMatcherFactory};h(i,this.config,i,Qr);var o=function(){return t.urlRouter};h(o,this.rules,o,Kr),h(o,this,o,Yr)}return t.prototype.url=function(t,e,r){},t.prototype.path=function(){},t.prototype.search=function(){},t.prototype.hash=function(){},t.prototype.onChange=function(t){},t.prototype.parts=function(){return{path:this.path(),search:this.search(),hash:this.hash()}},t.prototype.dispose=function(){},t.prototype.sync=function(t){},t.prototype.listen=function(t){},t.prototype.deferIntercept=function(t){},t.prototype.match=function(t){},t.locationServiceStub=Wr(zr),t.locationConfigStub=Wr(Jr),t}(),Xr=0,tn=function(){function t(t,e){void 0===t&&(t=Zr.locationServiceStub),void 0===e&&(e=Zr.locationConfigStub),this.locationService=t,this.locationConfig=e,this.$id=Xr++,this._disposed=!1,this._disposables=[],this.trace=Be,this.viewService=new Br,this.transitionService=new kn(this),this.globals=new Gr,this.urlMatcherFactory=new Hr,this.urlRouter=new Mr(this),this.stateRegistry=new Ir(this),this.stateService=new On(this),this.urlService=new Zr(this),this._plugins={},this.viewService._pluginapi._rootViewContext(this.stateRegistry.root()),this.globals.$current=this.stateRegistry.root(),this.globals.current=this.globals.$current.self,this.disposable(this.globals),this.disposable(this.stateService),this.disposable(this.stateRegistry),this.disposable(this.transitionService),this.disposable(this.urlRouter),this.disposable(t),this.disposable(e)}return t.prototype.disposable=function(t){this._disposables.push(t)},t.prototype.dispose=function(t){var e=this;t&&Kt(t.dispose)?t.dispose(this):(this._disposed=!0,this._disposables.slice().forEach(function(t){try{"function"==typeof t.dispose&&t.dispose(e),me(e._disposables,t)}catch(t){}}))},t.prototype.plugin=function(t,e){void 0===e&&(e={});var r=new t(this,e);if(!r.name)throw new Error("Required property `name` missing on plugin: "+r);return this._disposables.push(r),this._plugins[r.name]=r},t.prototype.getPlugin=function(t){return t?this._plugins[t]:$e(this._plugins)},t}(),en=function(t){return t.onCreate({},at)},rn=function(t){function e(e){if(e)return e instanceof Ge?e:Zt(e)?n.target(e,t.params(),t.options()):e.state||e.params?n.target(e.state||t.to(),e.params||t.params(),t.options()):void 0}var r=t.to().redirectTo;if(r){var n=t.router.stateService;return Kt(r)?ae.$q.when(r(t)).then(e):e(r)}},nn=function(t){return t.onStart({to:function(t){return!!t.redirectTo}},rn)},on=ut("onExit"),an=function(t){return t.onExit({exiting:function(t){return!!t.onExit}},on)},un=ut("onRetain"),sn=function(t){return t.onRetain({retained:function(t){return!!t.onRetain}},un)},cn=ut("onEnter"),fn=function(t){return t.onEnter({entering:function(t){return!!t.onEnter}},cn)},ln=function(t){return new cr(t.treeChanges().to).resolvePath("EAGER",t).then(l)},hn=function(t){return t.onStart({},ln,{priority:1e3})},pn=function(t,e){return new cr(t.treeChanges().to).subContext(e.$$state()).resolvePath("LAZY",t).then(l)},dn=function(t){return t.onEnter({entering:Ut(!0)},pn,{priority:1e3})},vn=function(t){var e=ae.$q,r=t.views("entering");if(r.length)return e.all(r.map(function(t){return e.when(t.load())})).then(l)},mn=function(t){return t.onFinish({},vn)},yn=function(t){var e=t.views("entering"),r=t.views("exiting");if(e.length||r.length){var n=t.router.viewService;r.forEach(function(t){return n.deactivateViewConfig(t)}),e.forEach(function(t){return n.activateViewConfig(t)}),n.sync()}},gn=function(t){return t.onSuccess({},yn)},_n=function(t){var e=t.router.globals,r=function(){e.transition===t&&(e.transition=null)};t.onSuccess({},function(){e.successfulTransitions.enqueue(t),e.$current=t.$to(),e.current=e.$current.self,k(t.params(),e.params)},{priority:1e4}),t.promise.then(r,r)},wn=function(t){return t.onCreate({},_n)},$n=function(t){var e=t.options(),r=t.router.stateService,n=t.router.urlRouter;if("url"!==e.source&&e.location&&r.$current.navigable){var i={replace:"replace"===e.location};n.push(r.$current.navigable.url,r.params,i)}n.update(!0)},Sn=function(t){return t.onSuccess({},$n,{priority:9999})},bn=function(t){var e=t.router,r=t.entering().filter(function(t){return!!t.$$state().lazyLoad}).map(function(e){return st(t,e)});return ae.$q.all(r).then(function(){if("url"!==t.originalTransition().options().source){var r=t.targetState();return e.stateService.target(r.identifier(),r.params(),r.options())}var n=e.urlService,i=n.match(n.parts()),o=i&&i.rule;if(o&&"STATE"===o.type){var a=o.state,u=i.match;return e.stateService.target(a,u,t.options())}e.urlService.sync()})},Rn=function(t){return t.onBefore({entering:function(t){return!!t.lazyLoad}},bn)},En=function(){return function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=ze.HANDLE_RESULT),void 0===a&&(a=ze.REJECT_ERROR),void 0===u&&(u=!1),this.name=t,this.hookPhase=e,this.hookOrder=r,this.criteriaMatchPath=n,this.reverseSort=i,this.getResultHandler=o,this.getErrorHandler=a,this.synchronous=u}}(),Tn=function(t){return t.onBefore({},ct,{priority:-9999})},Cn=function(t){return t.onBefore({},ft,{priority:-1e4})},Pn={location:!0,relative:null,inherit:!1,notify:!0,reload:!1,custom:{},current:function(){return null},source:"unknown"},kn=function(){function e(t){this._transitionCount=0,this._eventTypes=[],this._registeredHooks={},this._criteriaPaths={},this._router=t,this.$view=t.viewService,this._deregisterHookFns={},this._pluginapi=h(Ut(this),{},Ut(this),["_definePathType","_defineEvent","_getPathTypes","_getEvents","getHooks"]),this._defineCorePaths(),this._defineCoreEvents(),this._registerCoreTransitionHooks()}return e.prototype.onCreate=function(t,e,r){},e.prototype.onBefore=function(t,e,r){},e.prototype.onStart=function(t,e,r){},e.prototype.onExit=function(t,e,r){},e.prototype.onRetain=function(t,e,r){},e.prototype.onEnter=function(t,e,r){},e.prototype.onFinish=function(t,e,r){},e.prototype.onSuccess=function(t,e,r){},e.prototype.onError=function(t,e,r){},e.prototype.dispose=function(t){$e(this._registeredHooks).forEach(function(t){return t.forEach(function(e){e._deregistered=!0,me(t,e)})})},e.prototype.create=function(t,e){return new hr(t,e,this._router)},e.prototype._defineCoreEvents=function(){var e=t.TransitionHookPhase,r=ze,n=this._criteriaPaths;this._defineEvent("onCreate",e.CREATE,0,n.to,!1,r.LOG_REJECTED_RESULT,r.THROW_ERROR,!0),this._defineEvent("onBefore",e.BEFORE,0,n.to),this._defineEvent("onStart",e.RUN,0,n.to),this._defineEvent("onExit",e.RUN,100,n.exiting,!0),this._defineEvent("onRetain",e.RUN,200,n.retained),this._defineEvent("onEnter",e.RUN,300,n.entering),this._defineEvent("onFinish",e.RUN,400,n.to),this._defineEvent("onSuccess",e.SUCCESS,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0),this._defineEvent("onError",e.ERROR,0,n.to,!1,r.LOG_REJECTED_RESULT,r.LOG_ERROR,!0)},e.prototype._defineCorePaths=function(){var e=t.TransitionHookScope.STATE,r=t.TransitionHookScope.TRANSITION;this._definePathType("to",r),this._definePathType("from",r),this._definePathType("exiting",e),this._definePathType("retained",e),this._definePathType("entering",e)},e.prototype._defineEvent=function(t,e,r,n,i,o,a,u){void 0===i&&(i=!1),void 0===o&&(o=ze.HANDLE_RESULT),void 0===a&&(a=ze.REJECT_ERROR),void 0===u&&(u=!1);var s=new En(t,e,r,n,i,o,a,u);this._eventTypes.push(s),H(this,this,s)},e.prototype._getEvents=function(t){return(zt(t)?this._eventTypes.filter(function(e){return e.hookPhase===t}):this._eventTypes.slice()).sort(function(t,e){var r=t.hookPhase-e.hookPhase;return 0===r?t.hookOrder-e.hookOrder:r})},e.prototype._definePathType=function(t,e){this._criteriaPaths[t]={name:t,scope:e}},e.prototype._getPathTypes=function(){return this._criteriaPaths},e.prototype.getHooks=function(t){return this._registeredHooks[t]},e.prototype._registerCoreTransitionHooks=function(){var t=this._deregisterHookFns;t.addCoreResolves=en(this),t.ignored=Tn(this),t.invalid=Cn(this),t.redirectTo=nn(this),t.onExit=an(this),t.onRetain=sn(this),t.onEnter=fn(this),t.eagerResolve=hn(this),t.lazyResolve=dn(this),t.loadViews=mn(this),t.activateViews=gn(this),t.updateGlobals=wn(this),t.updateUrl=Sn(this),t.lazyLoad=Rn(this)},e}(),On=function(){function e(t){this.router=t,this.invalidCallbacks=[],this._defaultErrorHandler=function(t){t instanceof Error&&t.stack?(console.error(t),console.error(t.stack)):t instanceof He?(console.error(t.toString()),t.detail&&t.detail.stack&&console.error(t.detail.stack)):console.error(t)};var r=["current","$current","params","transition"],n=Object.keys(e.prototype).filter(Ht(ve(r)));h(Ut(e.prototype),this,Ut(this),n)}return Object.defineProperty(e.prototype,"transition",{get:function(){return this.router.globals.transition},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"params",{get:function(){return this.router.globals.params},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"current",{get:function(){return this.router.globals.current},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"$current",{get:function(){return this.router.globals.$current},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.defaultErrorHandler(l),this.invalidCallbacks=[]},e.prototype._handleInvalidTargetState=function(t,e){function r(){var t=s.dequeue();return void 0===t?He.invalid(e.error()).toPromise():ae.$q.when(t(e,i,c)).then(f).then(function(t){return t||r()})}var n=this,i=er.makeTargetState(this.router.stateRegistry,t),o=this.router.globals,a=function(){return o.transitionHistory.peekTail()},u=a(),s=new Ve(this.invalidCallbacks.slice()),c=new cr(t).injector(),f=function(t){if(t instanceof Ge){var e=t;return(e=n.target(e.identifier(),e.params(),e.options())).valid()?a()!==u?He.superseded().toPromise():n.transitionTo(e.identifier(),e.params(),e.options()):He.invalid(e.error()).toPromise()}};return r()},e.prototype.onInvalid=function(t){return this.invalidCallbacks.push(t),function(){me(this.invalidCallbacks)(t)}.bind(this)},e.prototype.reload=function(t){return this.transitionTo(this.current,this.params,{reload:!zt(t)||t,inherit:!1,notify:!1})},e.prototype.go=function(t,e,r){var n=m(r,{relative:this.$current,inherit:!0},Pn);return this.transitionTo(t,e,n)},e.prototype.target=function(t,e,r){if(void 0===r&&(r={}),Xt(r.reload)&&!r.reload.name)throw new Error("Invalid reload state object");var n=this.router.stateRegistry;if(r.reloadState=!0===r.reload?n.root():n.matcher.find(r.reload,r.relative),r.reload&&!r.reloadState)throw new Error("No such reload state '"+(Zt(r.reload)?r.reload:r.reload.name)+"'");return new Ge(this.router.stateRegistry,t,e,r)},e.prototype.getCurrentPath=function(){var t=this,e=this.router.globals.successfulTransitions.peekTail();return e?e.treeChanges().to:[new tr(t.router.stateRegistry.root())]},e.prototype.transitionTo=function(e,r,n){var i=this;void 0===r&&(r={}),void 0===n&&(n={});var o=this.router,a=o.globals;n=m(n,Pn);n=he(n,{current:function(){return a.transition}});var u=this.target(e,r,n),s=this.getCurrentPath();if(!u.exists())return this._handleInvalidTargetState(s,u);if(!u.valid())return je(u.error());var c=function(e){return function(r){if(r instanceof He){var n=o.globals.lastStartedTransitionId===e.$id;if(r.type===t.RejectType.IGNORED)return n&&o.urlRouter.update(),ae.$q.when(a.current);var u=r.detail;if(r.type===t.RejectType.SUPERSEDED&&r.redirected&&u instanceof Ge){var s=e.redirect(u);return s.run().catch(c(s))}if(r.type===t.RejectType.ABORTED)return n&&o.urlRouter.update(),ae.$q.reject(r)}return i.defaultErrorHandler()(r),ae.$q.reject(r)}},f=this.router.transitionService.create(s,u),l=f.run().catch(c(f));return Ie(l),he(l,{transition:f})},e.prototype.is=function(t,e,r){r=m(r,{relative:this.$current});var n=this.router.stateRegistry.matcher.find(t,r.relative);if(zt(n)){if(this.$current!==n)return!1;if(!e)return!0;var i=n.parameters({inherit:!0,matchingKeys:e});return Xe.equals(i,Xe.values(i,e),this.params)}},e.prototype.includes=function(t,e,r){r=m(r,{relative:this.$current});var n=Zt(t)&&Lt.fromString(t);if(n){if(!n.matches(this.$current.name))return!1;t=this.$current.name}var i=this.router.stateRegistry.matcher.find(t,r.relative),o=this.$current.includes;if(zt(i)){if(!zt(o[i.name]))return!1;if(!e)return!0;var a=i.parameters({inherit:!0,matchingKeys:e});return Xe.equals(a,Xe.values(a,e),this.params)}},e.prototype.href=function(t,e,r){r=m(r,{lossy:!0,inherit:!0,absolute:!1,relative:this.$current}),e=e||{};var n=this.router.stateRegistry.matcher.find(t,r.relative);if(!zt(n))return null;r.inherit&&(e=this.params.$inherit(e,this.$current,n));var i=n&&r.lossy?n.navigable:n;return i&&void 0!==i.url&&null!==i.url?this.router.urlRouter.href(i.url,e,{absolute:r.absolute}):null},e.prototype.defaultErrorHandler=function(t){return this._defaultErrorHandler=t||this._defaultErrorHandler},e.prototype.get=function(t,e){var r=this.router.stateRegistry;return 0===arguments.length?r.get():r.get(t,e||this.$current)},e.prototype.lazyLoad=function(t,e){var r=this.get(t);if(!r||!r.lazyLoad)throw new Error("Can not lazy load "+t);var n=this.getCurrentPath(),i=er.makeTargetState(this.router.stateRegistry,n);return e=e||this.router.transitionService.create(n,i),st(e,r)},e}(),xn={when:function(t){return new Promise(function(e,r){return e(t)})},reject:function(t){return new Promise(function(e,r){r(t)})},defer:function(){var t={};return t.promise=new Promise(function(e,r){t.resolve=e,t.reject=r}),t},all:function(t){if(te(t))return Promise.all(t);if(Xt(t)){var e=Object.keys(t).map(function(e){return t[e].then(function(t){return{key:e,val:t}})});return xn.all(e).then(function(t){return t.reduce(function(t,e){return t[e.key]=e.val,t},{})})}}},In={},jn=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Vn=/([^\s,]+)/g,An={get:function(t){return In[t]},has:function(t){return null!=An.get(t)},invoke:function(t,e,r){var n=he({},In,r||{}),i=An.annotate(t),o=ke(function(t){return n.hasOwnProperty(t)},function(t){return"DI can't find injectable: '"+t+"'"}),a=i.filter(o).map(function(t){return n[t]});return Kt(t)?t.apply(e,a):t.slice(-1)[0].apply(e,a)},annotate:function(t){if(!c(t))throw new Error("Not an injectable function: "+t);if(t&&t.$inject)return t.$inject;if(te(t))return t.slice(0,-1);var e=t.toString().replace(jn,"");return e.slice(e.indexOf("(")+1,e.indexOf(")")).match(Vn)||[]}},Hn=function(t,e){var r=e[0],n=e[1];return t.hasOwnProperty(r)?te(t[r])?t[r].push(n):t[r]=[t[r],n]:t[r]=n,t},qn=function(t){return t.split("&").filter(f).map(wr).reduce(Hn,{})},Dn=function(t){var e=t.path(),r=t.search(),n=t.hash(),i=Object.keys(r).map(function(t){var e=r[t];return(te(e)?e:[e]).map(function(e){return t+"="+e})}).reduce(Re,[]).join("&");return e+(i?"?"+i:"")+(n?"#"+n:"")},Fn=function(){function t(t,e){var r=this;this.fireAfterUpdate=e,this._listener=function(t){return r._listeners.forEach(function(e){return e(t)})},this._listeners=[],this.hash=function(){return lt(r._get()).hash},this.path=function(){return lt(r._get()).path},this.search=function(){return qn(lt(r._get()).search)},this._location=ue.location,this._history=ue.history}return t.prototype.url=function(t,e){return void 0===e&&(e=!0),zt(t)&&t!==this._get()&&(this._set(null,null,t,e),this.fireAfterUpdate&&this._listeners.forEach(function(e){return e({url:t})})),Dn(this)},t.prototype.onChange=function(t){var e=this;return this._listeners.push(t),function(){return me(e._listeners,t)}},t.prototype.dispose=function(t){ge(this._listeners)},t}(),Nn=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Un=function(t){function e(e){var r=t.call(this,e,!1)||this;return ue.addEventListener("hashchange",r._listener,!1),r}return Nn(e,t),e.prototype._get=function(){return $r(this._location.hash)},e.prototype._set=function(t,e,r,n){this._location.hash=r},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),ue.removeEventListener("hashchange",this._listener)},e}(Fn),Ln=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Mn=function(t){function e(e){return t.call(this,e,!0)||this}return Ln(e,t),e.prototype._get=function(){return this._url},e.prototype._set=function(t,e,r,n){this._url=r},e}(Fn),Bn=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Gn=function(t){function e(e){var r=t.call(this,e,!0)||this;return r._config=e.urlService.config,ue.addEventListener("popstate",r._listener,!1),r}return Bn(e,t),e.prototype._getBasePrefix=function(){return yr(this._config.baseHref())},e.prototype._get=function(){var t=this._location,e=t.pathname,r=t.hash,n=t.search;n=_r(n)[1],r=gr(r)[1];var i=this._getBasePrefix(),o=e===this._config.baseHref(),a=e.startsWith(i);return(e=o?"/":a?e.substring(i.length):e)+(n?"?"+n:"")+(r?"#"+r:"")},e.prototype._set=function(t,e,r,n){var i=this._getBasePrefix()+r;n?this._history.replaceState(t,e,i):this._history.pushState(t,e,i)},e.prototype.dispose=function(e){t.prototype.dispose.call(this,e),ue.removeEventListener("popstate",this._listener)},e}(Fn),Wn=function(){return function(){var t=this;this._baseHref="",this._port=80,this._protocol="http",this._host="localhost",this._hashPrefix="",this.port=function(){return t._port},this.protocol=function(){return t._protocol},this.host=function(){return t._host},this.baseHref=function(){return t._baseHref},this.html5Mode=function(){return!1},this.hashPrefix=function(e){return zt(e)?t._hashPrefix=e:t._hashPrefix},this.dispose=l}}(),zn=function(){function t(t,e){void 0===e&&(e=!1),this._isHtml5=e,this._baseHref=void 0,this._hashPrefix=""}return t.prototype.port=function(){return location.port?Number(location.port):"https"===this.protocol()?443:80},t.prototype.protocol=function(){return location.protocol.replace(/:/g,"")},t.prototype.host=function(){return location.hostname},t.prototype.html5Mode=function(){return this._isHtml5},t.prototype.hashPrefix=function(t){return zt(t)?this._hashPrefix=t:this._hashPrefix},t.prototype.baseHref=function(t){return zt(t)?this._baseHref=t:zt(this._baseHref)?this._baseHref:this.applyDocumentBaseHref()},t.prototype.applyDocumentBaseHref=function(){var t=document.getElementsByTagName("base")[0];return this._baseHref=t?t.href.substr(location.origin.length):""},t.prototype.dispose=function(){},t}(),Jn=ht("vanilla.hashBangLocation",!1,Un,zn),Qn=ht("vanilla.pushStateLocation",!0,Gn,zn),Kn=ht("vanilla.memoryLocation",!1,Mn,Wn),Yn=function(){function t(){}return t.prototype.dispose=function(t){},t}(),Zn=Object.freeze({root:ue,fromJson:ce,toJson:fe,forEach:le,extend:he,equals:pe,identity:f,noop:l,createProxyFunctions:h,inherit:de,inArray:ve,_inArray:p,removeFrom:me,_removeFrom:d,pushTo:ye,_pushTo:v,deregAll:ge,defaults:m,mergeR:_e,ancestors:y,pick:g,omit:_,pluck:w,filter:$,find:S,mapObj:we,map:b,values:$e,allTrueR:Se,anyTrueR:be,unnestR:Re,flattenR:Ee,pushR:R,uniqR:Te,unnest:Ce,flatten:Pe,assertPredicate:ke,assertMap:Oe,assertFn:E,pairs:xe,arrayTuples:T,applyPairs:C,tail:P,copy:k,_extend:O,silenceUncaughtInPromise:Ie,silentRejection:je,notImplemented:oe,services:ae,Glob:Lt,curry:r,compose:n,pipe:i,prop:jt,propEq:Vt,parse:At,not:Ht,and:o,or:a,all:qt,any:Dt,is:Ft,eq:Nt,val:Ut,invoke:u,pattern:s,isUndefined:Wt,isDefined:zt,isNull:Jt,isNullOrUndefined:Qt,isFunction:Kt,isNumber:Yt,isString:Zt,isObject:Xt,isArray:te,isDate:ee,isRegExp:re,isState:ne,isInjectable:c,isPromise:ie,Queue:Ve,maxLength:M,padString:B,kebobString:G,functionToString:W,fnToString:z,stringify:J,beforeAfterSubstr:vr,hostRegex:mr,stripFile:yr,splitHash:gr,splitQuery:_r,splitEqual:wr,trimHashVal:$r,splitOnDelim:Q,joinNeighborsR:K,get Category(){return t.Category},Trace:Me,trace:Be,get DefType(){return t.DefType},Param:Xe,ParamTypes:Sr,StateParams:Rr,ParamType:Ke,PathNode:tr,PathUtils:er,resolvePolicies:ir,defaultResolvePolicy:rr,Resolvable:nr,NATIVE_INJECTOR_TOKEN:sr,ResolveContext:cr,resolvablesBuilder:rt,StateBuilder:kr,StateObject:Mt,StateMatcher:Or,StateQueueManager:xr,StateRegistry:Ir,StateService:On,TargetState:Ge,get TransitionHookPhase(){return t.TransitionHookPhase},get TransitionHookScope(){return t.TransitionHookScope},HookBuilder:Qe,matchState:A,RegisteredHook:Je,makeEvent:H,get RejectType(){return t.RejectType},Rejection:He,Transition:hr,TransitionHook:ze,TransitionEventType:En,defaultTransOpts:Pn,TransitionService:kn,UrlMatcher:Ar,UrlMatcherFactory:Hr,UrlRouter:Mr,UrlRuleFactory:qr,BaseUrlRule:Dr,UrlService:Zr,ViewService:Br,UIRouterGlobals:Gr,UIRouter:tn,$q:xn,$injector:An,BaseLocationServices:Fn,HashLocationService:Un,MemoryLocationService:Mn,PushStateLocationService:Gn,MemoryLocationConfig:Wn,BrowserLocationConfig:zn,keyValsToObjectR:Hn,getParams:qn,parseUrl:lt,buildUrl:Dn,locationPluginFactory:ht,servicesPlugin:pt,hashLocationPlugin:Jn,pushStateLocationPlugin:Qn,memoryLocationPlugin:Kn,UIRouterPluginBase:Yn}),Xn=function(t,e){return t.reduce(function(t,r){return t||zt(e[r])},!1)},ti=0,ei=function(){function t(t,e,r){var n=this;this.path=t,this.viewDecl=e,this.factory=r,this.$id=ti++,this.loaded=!1,this.getTemplate=function(t,e){return n.component?n.factory.makeComponentTemplate(t,e,n.component,n.viewDecl.bindings):n.template}}return t.prototype.load=function(){var t=this,e=ae.$q,r=new cr(this.path),n=this.path.reduce(function(t,e){return he(t,e.paramValues)},{}),i={template:e.when(this.factory.fromConfig(this.viewDecl,n,r)),controller:e.when(this.getController(r))};return e.all(i).then(function(e){return Be.traceViewServiceEvent("Loaded",t),t.controller=e.controller,he(t,e.template),t})},t.prototype.getController=function(t){var e=this.viewDecl.controllerProvider;if(!c(e))return this.viewDecl.controller;var r=ae.$injector.annotate(e),n=te(e)?P(e):e;return new nr("",n,r).get(t)},t}(),ri=function(){function t(){var t=this;this._useHttp=It.version.minor<3,this.$get=["$http","$templateCache","$injector",function(e,r,n){return t.$templateRequest=n.has&&n.has("$templateRequest")&&n.get("$templateRequest"),t.$http=e,t.$templateCache=r,t}]}return t.prototype.useHttpService=function(t){this._useHttp=t},t.prototype.fromConfig=function(t,e,r){var n=function(t){return ae.$q.when(t).then(function(t){return{template:t}})},i=function(t){return ae.$q.when(t).then(function(t){return{component:t}})};return zt(t.template)?n(this.fromString(t.template,e)):zt(t.templateUrl)?n(this.fromUrl(t.templateUrl,e)):zt(t.templateProvider)?n(this.fromProvider(t.templateProvider,e,r)):zt(t.component)?i(t.component):zt(t.componentProvider)?i(this.fromComponentProvider(t.componentProvider,e,r)):n("")},t.prototype.fromString=function(t,e){return Kt(t)?t(e):t},t.prototype.fromUrl=function(t,e){return Kt(t)&&(t=t(e)),null==t?null:this._useHttp?this.$http.get(t,{cache:this.$templateCache,headers:{Accept:"text/html"}}).then(function(t){return t.data}):this.$templateRequest(t)},t.prototype.fromProvider=function(t,e,r){var n=ae.$injector.annotate(t),i=te(t)?P(t):t;return new nr("",i,n).get(r)},t.prototype.fromComponentProvider=function(t,e,r){var n=ae.$injector.annotate(t),i=te(t)?P(t):t;return new nr("",i,n).get(r)},t.prototype.makeComponentTemplate=function(t,e,r,n){n=n||{};var i=It.version.minor>=3?"::":"",o=function(t){var e=G(t);return/^(x|data)-/.exec(e)?"x-"+e:e},a=mt(r).map(function(r){var a=r.name,u=r.type,s=o(a);if(t.attr(s)&&!n[a])return s+"='"+t.attr(s)+"'";var c=n[a]||a;if("@"===u)return s+"='{{"+i+"$resolve."+c+"}}'";if("&"===u){var f=e.getResolvable(c),l=f&&f.data,h=l&&ae.$injector.annotate(l)||[];return s+"='$resolve."+c+(te(l)?"["+(l.length-1)+"]":"")+"("+h.join(",")+")'"}return s+"='"+i+"$resolve."+c+"'"}).join(" "),u=o(r);return"<"+u+" "+a+">"},t}(),ni=function(t){return ii(Xt(t.bindToController)?t.bindToController:t.scope)},ii=function(t){return Object.keys(t||{}).map(function(e){return[e,/^([=<@&])[?]?(.*)/.exec(t[e])]}).filter(function(t){return zt(t)&&te(t[1])}).map(function(t){return{name:t[1][2]||t[0],type:t[1][1]}})},oi=function(){function t(e,r){this.stateRegistry=e,this.stateService=r,h(Ut(t.prototype),this,Ut(this))}return t.prototype.decorator=function(t,e){return this.stateRegistry.decorator(t,e)||this},t.prototype.state=function(t,e){return Xt(t)?e=t:e.name=t,this.stateRegistry.register(e),this},t.prototype.onInvalid=function(t){return this.stateService.onInvalid(t)},t}(),ai=function(t){return function(e,r){var n=e[t],i="onExit"===t?"from":"to";return n?function(t,e){var r=new cr(t.treeChanges(i)),o=he(yi(r),{$state$:e,$transition$:t});return ae.$injector.invoke(n,this,o)}:void 0}},ui=function(){function t(t){this._urlListeners=[],this.$locationProvider=t;var e=Ut(t);h(e,this,e,["hashPrefix"])}return t.prototype.dispose=function(){},t.prototype.onChange=function(t){var e=this;return this._urlListeners.push(t),function(){return me(e._urlListeners)(t)}},t.prototype.html5Mode=function(){var t=this.$locationProvider.html5Mode();return(t=Xt(t)?t.enabled:t)&&this.$sniffer.history},t.prototype.url=function(t,e,r){return void 0===e&&(e=!1),t&&this.$location.url(t),e&&this.$location.replace(),r&&this.$location.state(r),this.$location.url()},t.prototype._runtimeServices=function(t,e,r,n){var i=this;this.$location=e,this.$sniffer=r,t.$on("$locationChangeSuccess",function(t){return i._urlListeners.forEach(function(e){return e(t)})});var o=Ut(e),a=Ut(n);h(o,this,o,["replace","path","search","hash"]),h(o,this,o,["port","protocol","host"]),h(a,this,a,["baseHref"])},t.monkeyPatchPathParameterType=function(t){var e=t.urlMatcherFactory.type("path");e.encode=function(t){return null!=t?t.toString().replace(/(~|\/)/g,function(t){return{"~":"~~","/":"~2F"}[t]}):t},e.decode=function(t){return null!=t?t.toString().replace(/(~~|~2F)/g,function(t){return{"~~":"~","~2F":"/"}[t]}):t}},t}(),si=function(){function t(t){this._router=t,this._urlRouter=t.urlRouter}return t.prototype.$get=function(){var t=this._urlRouter;return t.update(!0),t.interceptDeferred||t.listen(),t},t.prototype.rule=function(t){var e=this;if(!Kt(t))throw new Error("'rule' must be a function");var r=new Dr(function(){return t(ae.$injector,e._router.locationService)},f);return this._urlRouter.rule(r),this},t.prototype.otherwise=function(t){var e=this,r=this._urlRouter;if(Zt(t))r.otherwise(t);else{if(!Kt(t))throw new Error("'rule' must be a string or function");r.otherwise(function(){return t(ae.$injector,e._router.locationService)})}return this},t.prototype.when=function(e,r){return(te(r)||Kt(r))&&(r=t.injectableHandler(this._router,r)),this._urlRouter.when(e,r),this},t.injectableHandler=function(t,e){return function(r){return ae.$injector.invoke(e,null,{$match:r,$stateParams:t.globals.params})}},t.prototype.deferIntercept=function(t){this._urlRouter.deferIntercept(t)},t}();It.module("ui.router.angular1",[]);var ci=It.module("ui.router.init",[]),fi=It.module("ui.router.util",["ng","ui.router.init"]),li=It.module("ui.router.router",["ui.router.util"]),hi=It.module("ui.router.state",["ui.router.router","ui.router.util","ui.router.angular1"]),pi=It.module("ui.router",["ui.router.init","ui.router.state","ui.router.angular1"]),di=(It.module("ui.router.compat",["ui.router"]),null);yt.$inject=["$locationProvider"];var vi=function(t){return["$uiRouterProvider",function(e){var r=e.router[t];return r.$get=function(){return r},r}]};gt.$inject=["$injector","$q","$uiRouter"];_t.$inject=["$rootScope"],ci.provider("$uiRouter",yt),li.provider("$urlRouter",["$uiRouterProvider",function(t){return t.urlRouterProvider=new si(t)}]),fi.provider("$urlService",vi("urlService")),fi.provider("$urlMatcherFactory",["$uiRouterProvider",function(){return di.urlMatcherFactory}]),fi.provider("$templateFactory",function(){return new ri}),hi.provider("$stateRegistry",vi("stateRegistry")),hi.provider("$uiRouterGlobals",vi("globals")),hi.provider("$transitions",vi("transitionService")),hi.provider("$state",["$uiRouterProvider",function(){return he(di.stateProvider,{$get:function(){return di.stateService}})}]),hi.factory("$stateParams",["$uiRouter",function(t){return t.globals.params}]),pi.factory("$view",function(){return di.viewService}),pi.service("$trace",function(){return Be}),pi.run(_t),fi.run(["$urlMatcherFactory",function(t){}]),hi.run(["$state",function(t){}]),li.run(["$urlRouter",function(t){}]),ci.run(gt);var mi,yi=function(t){return t.getTokens().filter(Zt).map(function(e){var r=t.getResolvable(e);return[e,"NOWAIT"===t.getPolicy(r).async?r.promise:r.data]}).reduce(C,{})};mi=["$uiRouter","$timeout",function(t,e){var r=t.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,o,a){function u(){var t=p();l&&l(),f&&(l=f.$$addStateInfo(t.uiState,t.uiStateParams)),null!=t.href&&o.$set(c.attr,t.href)}var s,c=bt(i),f=a[1]||a[0],l=null,h={},p=function(){return St(r,i,h)},d=wt(o.uiSref);h.uiState=d.state,h.uiStateOpts=o.uiSrefOpts?n.$eval(o.uiSrefOpts):{},d.paramExpr&&(n.$watch(d.paramExpr,function(t){h.uiStateParams=he({},t),u()},!0),h.uiStateParams=he({},n.$eval(d.paramExpr))),u(),n.$on("$destroy",t.stateRegistry.onStatesChanged(u)),n.$on("$destroy",t.transitionService.onSuccess({},u)),c.clickable&&(s=Rt(i,r,e,c,p),Tt(i,n,s,h.uiStateOpts))}}}];var gi;gi=["$uiRouter","$timeout",function(t,e){var r=t.stateService;return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,o,a){function u(){var t=d();h&&h(),f&&(h=f.$$addStateInfo(t.uiState,t.uiStateParams)),null!=t.href&&o.$set(c.attr,t.href)}var s,c=bt(i),f=a[1]||a[0],h=null,p={},d=function(){return St(r,i,p)},v=["uiState","uiStateParams","uiStateOpts"],m=v.reduce(function(t,e){return t[e]=l,t},{});v.forEach(function(t){p[t]=o[t]?n.$eval(o[t]):null,o.$observe(t,function(e){m[t](),m[t]=n.$watch(e,function(e){p[t]=e,u()},!0)})}),u(),n.$on("$destroy",t.stateRegistry.onStatesChanged(u)),n.$on("$destroy",t.transitionService.onSuccess({},u)),c.clickable&&(s=Rt(i,r,e,c,d),Tt(i,n,s,p.uiStateOpts))}}}];var _i;_i=["$state","$stateParams","$interpolate","$uiRouter",function(t,e,r,n){return{restrict:"A",controller:["$scope","$element","$attrs",function(e,i,o){function a(t){t.promise.then(s,l)}function u(e,r,n){var o={state:t.get(e,$t(i))||{name:e},params:r,activeClass:n};return p.push(o),function(){me(p)(o)}}function s(){var r=function(t){return t.split(/\s/).filter(f)},n=function(t){return t.map(function(t){return t.activeClass}).map(r).reduce(Re,[])},o=n(p).concat(r(c)).reduce(Te,[]),a=n(p.filter(function(e){return t.includes(e.state.name,e.params)})),u=!!p.filter(function(e){return t.is(e.state.name,e.params)}).length?r(c):[],s=a.concat(u).reduce(Te,[]),l=o.filter(function(t){return!ve(s,t)});e.$evalAsync(function(){s.forEach(function(t){return i.addClass(t)}),l.forEach(function(t){return i.removeClass(t)})})}var c,h,p=[];c=r(o.uiSrefActiveEq||"",!1)(e);try{h=e.$eval(o.uiSrefActive)}catch(t){}h=h||r(o.uiSrefActive||"",!1)(e),Xt(h)&&le(h,function(t,r){if(Zt(t)){var n=wt(t);u(n.state,e.$eval(n.paramExpr),r)}}),this.$$addStateInfo=function(t,e){if(!(Xt(h)&&p.length>0)){var r=u(t,e,h);return s(),r}},e.$on("$stateChangeSuccess",s),e.$on("$destroy",n.transitionService.onStart({},a)),n.globals.transition&&a(n.globals.transition),s()}]}}],It.module("ui.router.state").directive("uiSref",mi).directive("uiSrefActive",_i).directive("uiSrefActiveEq",_i).directive("uiState",gi),Ct.$inject=["$state"],Pt.$inject=["$state"],It.module("ui.router.state").filter("isState",Ct).filter("includedByState",Pt);var wi;wi=["$view","$animate","$uiViewScroll","$interpolate","$q",function(t,e,r,n,i){function o(t,r){return{enter:function(t,r,n){It.version.minor>2?e.enter(t,null,r).then(n):e.enter(t,null,r,n)},leave:function(t,r){It.version.minor>2?e.leave(t).then(r):e.leave(t,r)}}}function a(t,e){return t===e}var u={$cfg:{viewDecl:{$context:t._pluginapi._rootViewContext()}},$uiView:{}},s={count:0,restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(e,c,f){return function(e,c,l){function h(){if(d&&(Be.traceUIViewEvent("Removing (previous) el",d.data("$uiView")),d.remove(),d=null),m&&(Be.traceUIViewEvent("Destroying scope",R),m.$destroy(),m=null),v){var t=v.data("$uiViewAnim");Be.traceUIViewEvent("Animate out",t),w.leave(v,function(){t.$$animLeave.resolve(),d=null}),d=v,v=null}}function p(t){var n=e.$new(),o=i.defer(),a=i.defer(),u={$cfg:t,$uiView:R},s={$animEnter:o.promise,$animLeave:a.promise,$$animLeave:a};n.$emit("$viewContentLoading",b);var l=f(n,function(t){t.data("$uiViewAnim",s),t.data("$uiView",u),w.enter(t,c,function(){o.resolve(),m&&m.$emit("$viewContentAnimationEnded"),(zt(_)&&!_||e.$eval(_))&&r(t)}),h()});v=l,(m=n).$emit("$viewContentLoaded",t||$),m.$eval(g)}var d,v,m,y,g=l.onload||"",_=l.autoscroll,w=o(),$=void 0,S=c.inheritedData("$uiView")||u,b=n(l.uiView||l.name||"")(e)||"$default",R={$type:"ng1",id:s.count++,name:b,fqn:S.$uiView.fqn?S.$uiView.fqn+"."+b:b,config:null,configUpdated:function(t){(!t||t instanceof ei)&&(a($,t)||(Be.traceUIViewConfigUpdated(R,t&&t.viewDecl&&t.viewDecl.$context),$=t,p(t)))},get creationContext(){var t=At("$cfg.viewDecl.$context")(S),e=At("$uiView.creationContext")(S);return t||e}};Be.traceUIViewEvent("Linking",R),c.data("$uiView",{$uiView:R}),p(),y=t.registerUIView(R),e.$on("$destroy",function(){Be.traceUIViewEvent("Destroying/Unregistering",R),y()})}}};return s}],kt.$inject=["$compile","$controller","$transitions","$view","$q","$timeout"];var $i="function"==typeof It.module("ui.router").component,Si=0;It.module("ui.router.state").directive("uiView",wi),It.module("ui.router.state").directive("uiView",kt),It.module("ui.router.state").provider("$uiViewScroll",function(){var t=!1;this.useAnchorScroll=function(){t=!0},this.$get=["$anchorScroll","$timeout",function(e,r){return t?e:function(t){return r(function(){t[0].scrollIntoView()},0,!1)}}]});t.default="ui.router",t.core=Zn,t.watchDigests=_t,t.getLocals=yi,t.getNg1ViewConfigFactory=dt,t.ng1ViewsBuilder=vt,t.Ng1ViewConfig=ei,t.StateProvider=oi,t.UrlRouterProvider=si,t.root=ue,t.fromJson=ce,t.toJson=fe,t.forEach=le,t.extend=he,t.equals=pe,t.identity=f,t.noop=l,t.createProxyFunctions=h,t.inherit=de,t.inArray=ve,t._inArray=p,t.removeFrom=me,t._removeFrom=d,t.pushTo=ye,t._pushTo=v,t.deregAll=ge,t.defaults=m,t.mergeR=_e,t.ancestors=y,t.pick=g,t.omit=_,t.pluck=w,t.filter=$,t.find=S,t.mapObj=we,t.map=b,t.values=$e,t.allTrueR=Se,t.anyTrueR=be,t.unnestR=Re,t.flattenR=Ee,t.pushR=R,t.uniqR=Te,t.unnest=Ce,t.flatten=Pe,t.assertPredicate=ke,t.assertMap=Oe,t.assertFn=E,t.pairs=xe,t.arrayTuples=T,t.applyPairs=C,t.tail=P,t.copy=k,t._extend=O,t.silenceUncaughtInPromise=Ie,t.silentRejection=je,t.notImplemented=oe,t.services=ae,t.Glob=Lt,t.curry=r,t.compose=n,t.pipe=i,t.prop=jt,t.propEq=Vt,t.parse=At,t.not=Ht,t.and=o,t.or=a,t.all=qt,t.any=Dt,t.is=Ft,t.eq=Nt,t.val=Ut,t.invoke=u,t.pattern=s,t.isUndefined=Wt,t.isDefined=zt,t.isNull=Jt,t.isNullOrUndefined=Qt,t.isFunction=Kt,t.isNumber=Yt,t.isString=Zt,t.isObject=Xt,t.isArray=te,t.isDate=ee,t.isRegExp=re,t.isState=ne,t.isInjectable=c,t.isPromise=ie,t.Queue=Ve,t.maxLength=M,t.padString=B,t.kebobString=G,t.functionToString=W,t.fnToString=z,t.stringify=J,t.beforeAfterSubstr=vr,t.hostRegex=mr,t.stripFile=yr,t.splitHash=gr,t.splitQuery=_r,t.splitEqual=wr,t.trimHashVal=$r,t.splitOnDelim=Q,t.joinNeighborsR=K,t.Trace=Me,t.trace=Be,t.Param=Xe,t.ParamTypes=Sr,t.StateParams=Rr,t.ParamType=Ke,t.PathNode=tr,t.PathUtils=er,t.resolvePolicies=ir,t.defaultResolvePolicy=rr,t.Resolvable=nr,t.NATIVE_INJECTOR_TOKEN=sr,t.ResolveContext=cr,t.resolvablesBuilder=rt,t.StateBuilder=kr,t.StateObject=Mt,t.StateMatcher=Or,t.StateQueueManager=xr,t.StateRegistry=Ir,t.StateService=On,t.TargetState=Ge,t.HookBuilder=Qe,t.matchState=A,t.RegisteredHook=Je,t.makeEvent=H,t.Rejection=He,t.Transition=hr,t.TransitionHook=ze,t.TransitionEventType=En,t.defaultTransOpts=Pn,t.TransitionService=kn,t.UrlMatcher=Ar,t.UrlMatcherFactory=Hr,t.UrlRouter=Mr,t.UrlRuleFactory=qr,t.BaseUrlRule=Dr,t.UrlService=Zr,t.ViewService=Br,t.UIRouterGlobals=Gr,t.UIRouter=tn,t.$q=xn,t.$injector=An,t.BaseLocationServices=Fn,t.HashLocationService=Un,t.MemoryLocationService=Mn,t.PushStateLocationService=Gn,t.MemoryLocationConfig=Wn,t.BrowserLocationConfig=zn,t.keyValsToObjectR=Hn,t.getParams=qn,t.parseUrl=lt,t.buildUrl=Dn,t.locationPluginFactory=ht,t.servicesPlugin=pt,t.hashLocationPlugin=Jn,t.pushStateLocationPlugin=Qn,t.memoryLocationPlugin=Kn,t.UIRouterPluginBase=Yn,Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=angular-ui-router.min.js.map diff --git a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js.map b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js.map index 7efbf20512..d364253a85 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/angular-ui-router.min.js.map @@ -1 +1,1679 @@ -{"version":3,"file":"angular-ui-router.min.js","sources":["@uirouter/core/lib-esm/common/@uirouter/core/common/hof.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/predicates.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/common.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/trace.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookRegistry.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookBuilder.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/paramType.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/param.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/strings.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateBuilder.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcher.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlRouter.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/coreResolvables.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/onEnterExitRetain.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/lazyLoad.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/ignoredTransition.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/invalidTransition.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/utils.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/plugins.ts","@uirouter/angularjs/statebuilders/views.ts","@uirouter/angularjs/templateFactory.ts","@uirouter/angularjs/services.ts","@uirouter/angularjs/directives/stateDirectives.ts","@uirouter/angularjs/stateFilters.ts","@uirouter/angularjs/directives/viewDirective.ts","@uirouter/angularjs/angular.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/glob.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateObject.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/coreservices.ts","@uirouter/core/lib-esm/common/@uirouter/core/common/queue.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/rejectFactory.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/interface.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/targetState.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionHook.ts","@uirouter/core/lib-esm/path/@uirouter/core/path/pathNode.ts","@uirouter/core/lib-esm/path/@uirouter/core/path/pathFactory.ts","@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolvable.ts","@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/interface.ts","@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolveContext.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transition.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/paramTypes.ts","@uirouter/core/lib-esm/params/@uirouter/core/params/stateParams.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateMatcher.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateQueueManager.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateRegistry.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcherFactory.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlRule.ts","@uirouter/core/lib-esm/view/@uirouter/core/view/view.ts","@uirouter/core/lib-esm/@uirouter/core/globals.ts","@uirouter/core/lib-esm/url/@uirouter/core/url/urlService.ts","@uirouter/core/lib-esm/@uirouter/core/router.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/redirectTo.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/resolve.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/views.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/updateGlobals.ts","@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/url.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionEventType.ts","@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionService.ts","@uirouter/core/lib-esm/state/@uirouter/core/state/stateService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/q.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/injector.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/baseLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/hashLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/pushStateLocationService.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationConfig.ts","@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/browserLocationConfig.ts","@uirouter/core/lib-esm/@uirouter/core/interface.ts","@uirouter/angularjs/stateProvider.ts","@uirouter/angularjs/statebuilders/onEnterExitRetain.ts","@uirouter/angularjs/locationServices.ts","@uirouter/angularjs/urlRouterProvider.ts","@uirouter/angularjs/viewScroll.ts","@uirouter/angularjs/index.ts"],"sourcesContent":["/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @module common_hof\n */ /** */\n\nimport {Predicate} from \"./common\";\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * Stolen from: http://stackoverflow.com/questions/4394747/javascript-curry-function\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n let initial_args = [].slice.apply(arguments, [1]);\n let func_args_length = fn.length;\n\n function curried(args: any[]) {\n if (args.length >= func_args_length)\n return fn.apply(null, args);\n return function () {\n return curried(args.concat([].slice.apply(arguments)));\n };\n }\n return curried(initial_args);\n}\n\n\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n let args = arguments;\n let start = args.length - 1;\n return function() {\n let i = start, result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) =>\n (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, val: any, obj: any) => obj && obj[name] === val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) =>\n pipe.apply(null, name.split(\".\").map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate = (fn: Predicate) =>\n (...args: any[]) => !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\nexport const any = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is = (ctor: { new(...args): T }) =>\n (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor || obj instanceof ctor);\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (val: any) => (other: any) =>\n val === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val = (v: T) => () => v;\n\n\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) =>\n obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function(x: any) {\n for (var i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n\n","/** Predicates\n *\n * These predicates return true/false based on the input.\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_predicates\n */\n/** */\nimport { and, not, pipe, prop, or } from \"./hof\";\nimport { Predicate } from \"./common\"; // has or is using\nimport { StateObject } from \"../state/stateObject\";\n\nconst toStr = Object.prototype.toString;\nconst tis = (t: string) => (x: any) => typeof(x) === t;\nexport const isUndefined = tis('undefined');\nexport const isDefined = not(isUndefined);\nexport const isNull = (o: any) => o === null;\nexport const isNullOrUndefined = or(isNull, isUndefined);\nexport const isFunction: (x: any) => x is Function = tis('function');\nexport const isNumber: (x: any) => x is number = tis('number');\nexport const isString = <(x: any) => x is string> tis('string');\nexport const isObject = (x: any) => x !== null && typeof x === 'object';\nexport const isArray = Array.isArray;\nexport const isDate: (x: any) => x is Date = ((x: any) => toStr.call(x) === '[object Date]');\nexport const isRegExp: (x: any) => x is RegExp = ((x: any) => toStr.call(x) === '[object RegExp]');\nexport const isState: (x: any) => x is StateObject = StateObject.isState;\n\n/**\n * Predicate which checks if a value is injectable\n *\n * A value is \"injectable\" if it is a function, or if it is an ng1 array-notation-style array\n * where all the elements in the array are Strings, except the last one, which is a Function\n */\nexport function isInjectable(val: any) {\n if (isArray(val) && val.length) {\n let head = val.slice(0, -1), tail = val.slice(-1);\n return !(head.filter(not(isString)).length || tail.filter(not(isFunction)).length);\n }\n return isFunction(val);\n}\n\n/**\n * Predicate which checks if a value looks like a Promise\n *\n * It is probably a Promise if it's an object, and it has a `then` property which is a Function\n */\nexport const isPromise = <(x: any) => x is Promise> and(isObject, pipe(prop('then'), isFunction));\n\n","/**\n * Random utility functions used in the UI-Router code\n *\n * These functions are exported, but are subject to change without notice.\n *\n * @preferred\n * @module common\n */\n/** for typedoc */\nimport { isFunction, isString, isArray, isRegExp, isDate } from \"./predicates\";\nimport { all, any, prop, curry, not } from \"./hof\";\nimport { services } from \"./coreservices\";\nimport { StateObject } from \"../state/stateObject\";\n\ndeclare const global;\nexport const root: any = (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) || this;\nconst angular = root.angular || {};\n\nexport const fromJson = angular.fromJson || JSON.parse.bind(JSON);\nexport const toJson = angular.toJson || JSON.stringify.bind(JSON);\nexport const forEach = angular.forEach || _forEach;\nexport const extend = Object.assign || _extend;\nexport const equals = angular.equals || _equals;\nexport function identity(x: any) { return x; }\nexport function noop(): any {}\n\nexport type Mapper = (x: X, key?: (string|number)) => T;\nexport interface TypedMap { [key: string]: T; }\nexport type Predicate = (x?: X) => boolean;\n/**\n * An ng1-style injectable\n *\n * This could be a (non-minified) function such as:\n * ```js\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an explicitly annotated function (minify safe)\n * ```js\n * injectableFunction.$inject = [ 'SomeDependency' ];\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an array style annotated function (minify safe)\n * ```js\n * ['SomeDependency', function injectableFunction(SomeDependency) {\n *\n * }];\n * ```\n *\n * @publicapi\n */\nexport type IInjectable = (Function|any[]);\n\nexport interface Obj extends Object {\n [key: string]: any;\n}\n\n/**\n * Builds proxy functions on the `to` object which pass through to the `from` object.\n *\n * For each key in `fnNames`, creates a proxy function on the `to` object.\n * The proxy function calls the real function on the `from` object.\n *\n *\n * #### Example:\n * This example creates an new class instance whose functions are prebound to the new'd object.\n * ```js\n * class Foo {\n * constructor(data) {\n * // Binds all functions from Foo.prototype to 'this',\n * // then copies them to 'this'\n * bindFunctions(Foo.prototype, this, this);\n * this.data = data;\n * }\n *\n * log() {\n * console.log(this.data);\n * }\n * }\n *\n * let myFoo = new Foo([1,2,3]);\n * var logit = myFoo.log;\n * logit(); // logs [1, 2, 3] from the myFoo 'this' instance\n * ```\n *\n * #### Example:\n * This example creates a bound version of a service function, and copies it to another object\n * ```\n *\n * var SomeService = {\n * this.data = [3, 4, 5];\n * this.log = function() {\n * console.log(this.data);\n * }\n * }\n *\n * // Constructor fn\n * function OtherThing() {\n * // Binds all functions from SomeService to SomeService,\n * // then copies them to 'this'\n * bindFunctions(SomeService, this, SomeService);\n * }\n *\n * let myOtherThing = new OtherThing();\n * myOtherThing.log(); // logs [3, 4, 5] from SomeService's 'this'\n * ```\n *\n * @param source A function that returns the source object which contains the original functions to be bound\n * @param target A function that returns the target object which will receive the bound functions\n * @param bind A function that returns the object which the functions will be bound to\n * @param fnNames The function names which will be bound (Defaults to all the functions found on the 'from' object)\n * @param latebind If true, the binding of the function is delayed until the first time it's invoked\n */\nexport function createProxyFunctions(source: Function, target: Obj, bind: Function, fnNames?: string[], latebind = false): Obj {\n const bindFunction = (fnName) =>\n source()[fnName].bind(bind());\n\n const makeLateRebindFn = fnName => function lateRebindFunction() {\n target[fnName] = bindFunction(fnName);\n return target[fnName].apply(null, arguments);\n };\n\n fnNames = fnNames || Object.keys(source());\n\n return fnNames.reduce((acc, name) => {\n acc[name] = latebind ? makeLateRebindFn(name) : bindFunction(name);\n return acc;\n }, target);\n}\n\n\n/**\n * prototypal inheritance helper.\n * Creates a new object which has `parent` object as its prototype, and then copies the properties from `extra` onto it\n */\nexport const inherit = (parent: Obj, extra?: Obj) =>\n extend(Object.create(parent), extra);\n\n/** Given an array, returns true if the object is found in the array, (using indexOf) */\nexport const inArray: typeof _inArray = curry(_inArray) as any;\nexport function _inArray(array: any[], obj: any): boolean;\nexport function _inArray(array: any[]): (obj: any) => boolean;\nexport function _inArray(array, obj?): any {\n return array.indexOf(obj) !== -1;\n}\n\n/**\n * Given an array, and an item, if the item is found in the array, it removes it (in-place).\n * The same array is returned\n */\nexport const removeFrom: typeof _removeFrom = curry(_removeFrom) as any;\nexport function _removeFrom(array: T[], obj: T): T[];\nexport function _removeFrom(array: T[]): (obj: T) => T[];\nexport function _removeFrom(array, obj?) {\n let idx = array.indexOf(obj);\n if (idx >= 0) array.splice(idx, 1);\n return array;\n}\n\n/** pushes a values to an array and returns the value */\nexport const pushTo: typeof _pushTo = curry(_pushTo) as any;\nexport function _pushTo(arr: T[], val: T): T ;\nexport function _pushTo(arr: T[]): (val: T) => T ;\nexport function _pushTo(arr, val?): any {\n return (arr.push(val), val);\n}\n\n/** Given an array of (deregistration) functions, calls all functions and removes each one from the source array */\nexport const deregAll = (functions: Function[]) =>\n functions.slice().forEach(fn => {\n typeof fn === 'function' && fn();\n removeFrom(functions, fn);\n });\n/**\n * Applies a set of defaults to an options object. The options object is filtered\n * to only those properties of the objects in the defaultsList.\n * Earlier objects in the defaultsList take precedence when applying defaults.\n */\nexport function defaults(opts, ...defaultsList: Obj[]) {\n let _defaultsList = defaultsList.concat({}).reverse();\n let defaultVals = extend.apply(null, _defaultsList);\n return extend({}, defaultVals, pick(opts || {}, Object.keys(defaultVals)));\n}\n\n/** Reduce function that merges each element of the list into a single object, using extend */\nexport const mergeR = (memo: Obj, item: Obj) => extend(memo, item);\n\n/**\n * Finds the common ancestor path between two states.\n *\n * @param {Object} first The first state.\n * @param {Object} second The second state.\n * @return {Array} Returns an array of state names in descending order, not including the root.\n */\nexport function ancestors(first: StateObject, second: StateObject) {\n let path: StateObject[] = [];\n\n for (let n in first.path) {\n if (first.path[n] !== second.path[n]) break;\n path.push(first.path[n]);\n }\n return path;\n}\n\n/**\n * Return a copy of the object only containing the whitelisted properties.\n *\n * #### Example:\n * ```\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = pick(foo, ['a', 'b']); // { a: 1, b: 2 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the whitelisted property names\n */\nexport function pick(obj: Obj, propNames: string[]): Obj {\n let objCopy = {};\n for (let prop in obj) {\n if (propNames.indexOf(prop) !== -1) {\n objCopy[prop] = obj[prop];\n }\n }\n return objCopy;\n}\n\n/**\n * Return a copy of the object omitting the blacklisted properties.\n *\n * @example\n * ```\n *\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = omit(foo, ['a', 'b']); // { c: 3 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the blacklisted property names\n */\nexport function omit(obj: Obj, propNames: string[]): Obj {\n return Object.keys(obj)\n .filter(not(inArray(propNames)))\n .reduce((acc, key) => (acc[key] = obj[key], acc), {});\n}\n\n\n/** Given an array of objects, maps each element to a named property of the element. */\nexport function pluck(collection: Obj[], propName: string): T[];\n/** Given an object, maps each property of the object to a named property of the property. */\nexport function pluck(collection: { [key: string]: any }, propName: string): { [key: string]: any };\n/**\n * Maps an array, or object to a property (by name)\n */\nexport function pluck(collection: any, propName: string): any {\n return map(collection, > prop(propName));\n}\n\n\n/** Given an array of objects, returns a new array containing only the elements which passed the callback predicate */\nexport function filter(collection: T[], callback: (t: T, key?: number) => boolean): T[];\n/** Given an object, returns a new object with only those properties that passed the callback predicate */\nexport function filter(collection: TypedMap, callback: (t: T, key?: string) => boolean): TypedMap;\n/** Filters an Array or an Object's properties based on a predicate */\nexport function filter(collection: any, callback: Function): T {\n let arr = isArray(collection), result: any = arr ? [] : {};\n let accept = arr ? x => result.push(x) : (x, key) => result[key] = x;\n forEach(collection, function(item, i) {\n if (callback(item, i)) accept(item, i);\n });\n return result;\n}\n\n\n/** Given an object, return the first property of that object which passed the callback predicate */\nexport function find(collection: TypedMap, callback: Predicate): T;\n/** Given an array of objects, returns the first object which passed the callback predicate */\nexport function find(collection: T[], callback: Predicate): T;\n/** Finds an object from an array, or a property of an object, that matches a predicate */\nexport function find(collection: any, callback: any) {\n let result;\n\n forEach(collection, function(item, i) {\n if (result) return;\n if (callback(item, i)) result = item;\n });\n\n return result;\n}\n\n/** Given an object, returns a new object, where each property is transformed by the callback function */\nexport let mapObj: (collection: { [key: string]: T }, callback: Mapper) => { [key: string]: U } = map;\n/** Given an array, returns a new array, where each element is transformed by the callback function */\nexport function map(collection: T[], callback: Mapper): U[];\nexport function map(collection: { [key: string]: T }, callback: Mapper): { [key: string]: U };\n/** Maps an array or object properties using a callback function */\nexport function map(collection: any, callback: any): any {\n let result = isArray(collection) ? [] : {};\n forEach(collection, (item, i) => result[i] = callback(item, i));\n return result;\n}\n\n/**\n * Given an object, return its enumerable property values\n *\n * @example\n * ```\n *\n * let foo = { a: 1, b: 2, c: 3 }\n * let vals = values(foo); // [ 1, 2, 3 ]\n * ```\n */\nexport const values: ( (obj: TypedMap) => T[]) = (obj: Obj) =>\n Object.keys(obj).map(key => obj[key]);\n\n/**\n * Reduce function that returns true if all of the values are truthy.\n *\n * @example\n * ```\n *\n * let vals = [ 1, true, {}, \"hello world\"];\n * vals.reduce(allTrueR, true); // true\n *\n * vals.push(0);\n * vals.reduce(allTrueR, true); // false\n * ```\n */\nexport const allTrueR = (memo: boolean, elem: any) => memo && elem;\n\n/**\n * Reduce function that returns true if any of the values are truthy.\n *\n * * @example\n * ```\n *\n * let vals = [ 0, null, undefined ];\n * vals.reduce(anyTrueR, true); // false\n *\n * vals.push(\"hello world\");\n * vals.reduce(anyTrueR, true); // true\n * ```\n */\nexport const anyTrueR = (memo: boolean, elem: any) => memo || elem;\n\n/**\n * Reduce function which un-nests a single level of arrays\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnestR = (memo: any[], elem: any[]) => memo.concat(elem);\n\n/**\n * Reduce function which recursively un-nests all arrays\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flattenR = (memo: any[], elem: any) =>\n isArray(elem) ? memo.concat(elem.reduce(flattenR, [])) : pushR(memo, elem);\n\n/**\n * Reduce function that pushes an object to an array, then returns the array.\n * Mostly just for [[flattenR]] and [[uniqR]]\n */\nexport function pushR(arr: any[], obj: any) {\n arr.push(obj);\n return arr;\n}\n\n/** Reduce function that filters out duplicates */\nexport const uniqR = (acc: T[], token: T): T[] =>\n inArray(acc, token) ? acc : pushR(acc, token);\n\n/**\n * Return a new array with a single level of arrays unnested.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * unnest(input) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnest = (arr: any[]) => arr.reduce(unnestR, []);\n/**\n * Return a completely flattened version of an array.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * flatten(input) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flatten = (arr: any[]) => arr.reduce(flattenR, []);\n\n/**\n * Given a .filter Predicate, builds a .filter Predicate which throws an error if any elements do not pass.\n * @example\n * ```\n *\n * let isNumber = (obj) => typeof(obj) === 'number';\n * let allNumbers = [ 1, 2, 3, 4, 5 ];\n * allNumbers.filter(assertPredicate(isNumber)); //OK\n *\n * let oneString = [ 1, 2, 3, 4, \"5\" ];\n * oneString.filter(assertPredicate(isNumber, \"Not all numbers\")); // throws Error(\"\"Not all numbers\"\");\n * ```\n */\nexport const assertPredicate: (predicate: Predicate, errMsg: (string|Function)) => Predicate = assertFn;\n/**\n * Given a .map function, builds a .map function which throws an error if any mapped elements do not pass a truthyness test.\n * @example\n * ```\n *\n * var data = { foo: 1, bar: 2 };\n *\n * let keys = [ 'foo', 'bar' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // values is [1, 2]\n *\n * let keys = [ 'foo', 'bar', 'baz' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // throws Error(\"Key not found\")\n * ```\n */\nexport const assertMap: (mapFn: (t: T) => U, errMsg: (string|Function)) => (t: T) => U = assertFn;\nexport function assertFn(predicateOrMap: Function, errMsg: (string|Function) = \"assert failure\"): any {\n return (obj) => {\n let result = predicateOrMap(obj);\n if (!result) {\n throw new Error(isFunction(errMsg) ? ( errMsg)(obj) : errMsg);\n }\n return result;\n };\n}\n\n/**\n * Like _.pairs: Given an object, returns an array of key/value pairs\n *\n * @example\n * ```\n *\n * pairs({ foo: \"FOO\", bar: \"BAR }) // [ [ \"foo\", \"FOO\" ], [ \"bar\": \"BAR\" ] ]\n * ```\n */\nexport const pairs = (obj: Obj) =>\n Object.keys(obj).map(key => [ key, obj[key]] );\n\n/**\n * Given two or more parallel arrays, returns an array of tuples where\n * each tuple is composed of [ a[i], b[i], ... z[i] ]\n *\n * @example\n * ```\n *\n * let foo = [ 0, 2, 4, 6 ];\n * let bar = [ 1, 3, 5, 7 ];\n * let baz = [ 10, 30, 50, 70 ];\n * arrayTuples(foo, bar); // [ [0, 1], [2, 3], [4, 5], [6, 7] ]\n * arrayTuples(foo, bar, baz); // [ [0, 1, 10], [2, 3, 30], [4, 5, 50], [6, 7, 70] ]\n * ```\n */\nexport function arrayTuples(...args: any[]): any[] {\n if (args.length === 0) return [];\n let maxArrayLen = args.reduce((min, arr) => Math.min(arr.length, min), 9007199254740991); // aka 2^53 − 1 aka Number.MAX_SAFE_INTEGER\n\n let i, result = [];\n\n for (i = 0; i < maxArrayLen; i++) {\n // This is a hot function\n // Unroll when there are 1-4 arguments\n switch (args.length) {\n case 1: result.push([args[0][i]]); break;\n case 2: result.push([args[0][i], args[1][i]]); break;\n case 3: result.push([args[0][i], args[1][i], args[2][i]]); break;\n case 4: result.push([args[0][i], args[1][i], args[2][i], args[3][i]]); break;\n default:\n result.push(args.map(array => array[i])); break;\n }\n }\n\n return result;\n}\n\n/**\n * Reduce function which builds an object from an array of [key, value] pairs.\n *\n * Each iteration sets the key/val pair on the memo object, then returns the memo for the next iteration.\n *\n * Each keyValueTuple should be an array with values [ key: string, value: any ]\n *\n * @example\n * ```\n *\n * var pairs = [ [\"fookey\", \"fooval\"], [\"barkey\", \"barval\"] ]\n *\n * var pairsToObj = pairs.reduce((memo, pair) => applyPairs(memo, pair), {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n *\n * // Or, more simply:\n * var pairsToObj = pairs.reduce(applyPairs, {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n * ```\n */\nexport function applyPairs(memo: TypedMap, keyValTuple: any[]) {\n let key: string, value: any;\n if (isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n}\n\n/** Get the last element of an array */\nexport function tail(arr: T[]): T {\n return arr.length && arr[arr.length - 1] || undefined;\n}\n\n/**\n * shallow copy from src to dest\n */\nexport function copy(src: Obj, dest?: Obj) {\n if (dest) Object.keys(dest).forEach(key => delete dest[key]);\n if (!dest) dest = {};\n return extend(dest, src);\n}\n\n/** Naive forEach implementation works with Objects or Arrays */\nfunction _forEach(obj: (any[]|any), cb: (el, idx?) => void, _this: Obj) {\n if (isArray(obj)) return obj.forEach(cb, _this);\n Object.keys(obj).forEach(key => cb(obj[key], key));\n}\n\n/** Like Object.assign() */\nexport function _extend(toObj: Obj, ...fromObjs: Obj[]): any;\nexport function _extend(toObj: Obj): any {\n for (let i = 1; i < arguments.length; i++) {\n let obj = arguments[i];\n if (!obj) continue;\n let keys = Object.keys(obj);\n\n for (let j = 0; j < keys.length; j++) {\n toObj[keys[j]] = obj[keys[j]];\n }\n }\n\n return toObj;\n}\n\nfunction _equals(o1: any, o2: any): boolean {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n let t1 = typeof o1, t2 = typeof o2;\n if (t1 !== t2 || t1 !== 'object') return false;\n\n const tup = [o1, o2];\n if (all(isArray)(tup)) return _arraysEq(o1, o2);\n if (all(isDate)(tup)) return o1.getTime() === o2.getTime();\n if (all(isRegExp)(tup)) return o1.toString() === o2.toString();\n if (all(isFunction)(tup)) return true; // meh\n\n let predicates = [isFunction, isArray, isDate, isRegExp];\n if (predicates.map(any).reduce((b, fn) => b || !!fn(tup), false)) return false;\n\n let key: string, keys: { [i: string]: boolean } = {};\n for (key in o1) {\n if (!_equals(o1[key], o2[key])) return false;\n keys[key] = true;\n }\n for (key in o2) {\n if (!keys[key]) return false;\n }\n\n return true;\n}\n\nfunction _arraysEq(a1: any[], a2: any[]) {\n if (a1.length !== a2.length) return false;\n return arrayTuples(a1, a2).reduce((b, t) => b && _equals(t[0], t[1]), true);\n}\n\n// issue #2676\nexport const silenceUncaughtInPromise = (promise: Promise) =>\n promise.catch(e => 0) && promise;\nexport const silentRejection = (error: any) =>\n silenceUncaughtInPromise(services.$q.reject(error));\n","/**\n * # Transition tracing (debug)\n *\n * Enable transition tracing to print transition information to the console,\n * in order to help debug your application.\n * Tracing logs detailed information about each Transition to your console.\n *\n * To enable tracing, import the [[Trace]] singleton and enable one or more categories.\n *\n * ### ES6\n * ```js\n * import {trace} from \"ui-router-ng2\"; // or \"angular-ui-router\"\n * trace.enable(1, 5); // TRANSITION and VIEWCONFIG\n * ```\n *\n * ### CJS\n * ```js\n * let trace = require(\"angular-ui-router\").trace; // or \"ui-router-ng2\"\n * trace.enable(\"TRANSITION\", \"VIEWCONFIG\");\n * ```\n *\n * ### Globals\n * ```js\n * let trace = window[\"angular-ui-router\"].trace; // or \"ui-router-ng2\"\n * trace.enable(); // Trace everything (very verbose)\n * ```\n *\n * ### Angular 1:\n * ```js\n * app.run($trace => $trace.enable());\n * ```\n *\n * @coreapi\n * @module trace\n */ /** for typedoc */\nimport {parse} from \"../common/hof\";\nimport {isFunction, isNumber} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {ActiveUIView, ViewConfig, ViewContext} from \"../view/interface\";\nimport {stringify, functionToString, maxLength, padString} from \"./strings\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {PathNode} from \"../path/pathNode\";\nimport {PolicyWhen} from \"../resolve/interface\";\nimport {TransitionHook} from \"../transition/transitionHook\";\nimport {HookResult} from \"../transition/interface\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @hidden */\nfunction uiViewString (uiview: ActiveUIView) {\n if (!uiview) return 'ui-view (defunct)';\n const state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';\n return `[ui-view#${uiview.id} ${uiview.$type}:${uiview.fqn} (${uiview.name}@${state})]`;\n}\n\n/** @hidden */\nconst viewConfigString = (viewConfig: ViewConfig) => {\n let view = viewConfig.viewDecl;\n const state = view.$context.name || '(root)';\n return `[View#${viewConfig.$id} from '${state}' state]: target ui-view: '${view.$uiViewName}@${view.$uiViewContextAnchor}'`;\n};\n\n/** @hidden */\nfunction normalizedCat(input: Category|string): string {\n return isNumber(input) ? Category[input] : Category[Category[input]];\n}\n\n/** @hidden */\nconst consoletable = isFunction(console.table) ? console.table.bind(console) : console.log.bind(console);\n\n/**\n * Trace categories Enum\n *\n * Enable or disable a category using [[Trace.enable]] or [[Trace.disable]]\n *\n * `trace.enable(Category.TRANSITION)`\n *\n * These can also be provided using a matching string, or position ordinal\n *\n * `trace.enable(\"TRANSITION\")`\n *\n * `trace.enable(1)`\n */\nexport enum Category {\n RESOLVE, TRANSITION, HOOK, UIVIEW, VIEWCONFIG,\n}\n\n/** @hidden */ const _tid = parse(\"$id\");\n/** @hidden */ const _rid = parse(\"router.$id\");\n/** @hidden */ const transLbl = (trans) => `Transition #${_tid(trans)}-${_rid(trans)}`;\n\n/**\n * Prints UI-Router Transition trace information to the console.\n */\nexport class Trace {\n /** @hidden */\n approximateDigests: number;\n\n /** @hidden */\n constructor() {\n this.approximateDigests = 0;\n }\n\n /** @hidden */\n private _enabled: { [key: string]: boolean } = {};\n\n /** @hidden */\n private _set(enabled: boolean, categories: Category[]) {\n if (!categories.length) {\n categories = Object.keys(Category)\n .map(k => parseInt(k, 10))\n .filter(k => !isNaN(k))\n .map(key => Category[key]);\n }\n categories.map(normalizedCat).forEach(category => this._enabled[category] = enabled);\n }\n\n /**\n * Enables a trace [[Category]]\n *\n * ```js\n * trace.enable(\"TRANSITION\");\n * ```\n *\n * @param categories categories to enable. If `categories` is omitted, all categories are enabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n enable(...categories: (Category|string|number)[]);\n enable(...categories: any[]) { this._set(true, categories); }\n /**\n * Disables a trace [[Category]]\n *\n * ```js\n * trace.disable(\"VIEWCONFIG\");\n * ```\n *\n * @param categories categories to disable. If `categories` is omitted, all categories are disabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n disable(...categories: (Category|string|number)[]);\n disable(...categories: any[]) { this._set(false, categories); }\n\n /**\n * Retrieves the enabled stateus of a [[Category]]\n *\n * ```js\n * trace.enabled(\"VIEWCONFIG\"); // true or false\n * ```\n *\n * @returns boolean true if the category is enabled\n */\n enabled(category: (Category|string|number)): boolean {\n return !!this._enabled[normalizedCat(category)];\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionStart(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Started -> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionIgnored(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Ignored <> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookInvocation(step: TransitionHook, trans: Transition, options: any) {\n if (!this.enabled(Category.HOOK)) return;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = functionToString((step as any).registeredHook.callback);\n console.log(`${transLbl(trans)}: Hook -> ${event} context: ${context}, ${maxLength(200, name)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookResult(hookResult: HookResult, trans: Transition, transitionOptions: any) {\n if (!this.enabled(Category.HOOK)) return;\n console.log(`${transLbl(trans)}: <- Hook returned: ${maxLength(200, stringify(hookResult))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvePath(path: PathNode[], when: PolicyWhen, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: Resolving ${path} (${when})`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvableResolved(resolvable: Resolvable, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: <- Resolved ${resolvable} to: ${maxLength(200, stringify(resolvable.data))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceError(reason: any, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Rejected ${stringify(trans)}, reason: ${reason}`);\n }\n\n /** @internalapi called by ui-router code */\n traceSuccess(finalState: StateObject, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Success ${stringify(trans)}, final state: ${finalState.name}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewEvent(event: string, viewData: ActiveUIView, extra = \"\") {\n if (!this.enabled(Category.UIVIEW)) return;\n console.log(`ui-view: ${padString(30, event)} ${uiViewString(viewData)}${extra}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewConfigUpdated(viewData: ActiveUIView, context: ViewContext) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Updating\", viewData, ` with ViewConfig from context='${context}'`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewFill(viewData: ActiveUIView, html: string) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Fill\", viewData, ` with: ${maxLength(200, html)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewSync(pairs: any[]) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n const mapping = pairs.map(([ uiViewData, config ]) => {\n const uiView = `${uiViewData.$type}:${uiViewData.fqn}`;\n const view = config && `${config.viewDecl.$context.name}: ${config.viewDecl.$name} (${config.viewDecl.$type})`;\n\n return { 'ui-view fqn': uiView, 'state: view name': view };\n }).sort((a, b) => a['ui-view fqn'].localeCompare(b['ui-view fqn']));\n\n consoletable(mapping);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceEvent(event: string, viewConfig: ViewConfig) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${viewConfigString(viewConfig)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceUIViewEvent(event: string, viewData: ActiveUIView) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${uiViewString(viewData)}`);\n }\n}\n\n/**\n * The [[Trace]] singleton\n *\n * #### Example:\n * ```js\n * import {trace} from \"angular-ui-router\";\n * trace.enable(1, 5);\n * ```\n */\nlet trace = new Trace();\nexport {trace};\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport { extend, removeFrom, tail, values, identity, map } from \"../common/common\";\nimport {isString, isFunction} from \"../common/predicates\";\nimport {PathNode} from \"../path/pathNode\";\nimport {\n TransitionStateHookFn, TransitionHookFn, TransitionHookPhase, TransitionHookScope, IHookRegistry, PathType,\n} from \"./interface\"; // has or is using\n\nimport {\n HookRegOptions, HookMatchCriteria, TreeChanges,\n HookMatchCriterion, IMatchingNodes, HookFn,\n} from \"./interface\";\nimport {Glob} from \"../common/glob\";\nimport {StateObject} from \"../state/stateObject\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport { TransitionService } from \"./transitionService\";\n\n/**\n * Determines if the given state matches the matchCriteria\n *\n * @hidden\n *\n * @param state a State Object to test against\n * @param criterion\n * - If a string, matchState uses the string as a glob-matcher against the state name\n * - If an array (of strings), matchState uses each string in the array as a glob-matchers against the state name\n * and returns a positive match if any of the globs match.\n * - If a function, matchState calls the function with the state and returns true if the function's result is truthy.\n * @returns {boolean}\n */\nexport function matchState(state: StateObject, criterion: HookMatchCriterion) {\n let toMatch = isString(criterion) ? [criterion] : criterion;\n\n function matchGlobs(_state: StateObject) {\n let globStrings = toMatch;\n for (let i = 0; i < globStrings.length; i++) {\n let glob = new Glob(globStrings[i]);\n\n if ((glob && glob.matches(_state.name)) || (!glob && globStrings[i] === _state.name)) {\n return true;\n }\n }\n return false;\n }\n\n let matchFn = (isFunction(toMatch) ? toMatch : matchGlobs);\n return !!matchFn(state);\n}\n\n/**\n * @internalapi\n * The registration data for a registered transition hook\n */\nexport class RegisteredHook {\n priority: number;\n bind: any;\n invokeCount = 0;\n invokeLimit: number;\n _deregistered = false;\n\n constructor(public tranSvc: TransitionService,\n public eventType: TransitionEventType,\n public callback: HookFn,\n public matchCriteria: HookMatchCriteria,\n public removeHookFromRegistry: (hook: RegisteredHook) => void,\n options: HookRegOptions = {} as any) {\n this.priority = options.priority || 0;\n this.bind = options.bind || null;\n this.invokeLimit = options.invokeLimit;\n }\n\n /**\n * Gets the matching [[PathNode]]s\n *\n * Given an array of [[PathNode]]s, and a [[HookMatchCriterion]], returns an array containing\n * the [[PathNode]]s that the criteria matches, or `null` if there were no matching nodes.\n *\n * Returning `null` is significant to distinguish between the default\n * \"match-all criterion value\" of `true` compared to a `() => true` function,\n * when the nodes is an empty array.\n *\n * This is useful to allow a transition match criteria of `entering: true`\n * to still match a transition, even when `entering === []`. Contrast that\n * with `entering: (state) => true` which only matches when a state is actually\n * being entered.\n */\n private _matchingNodes(nodes: PathNode[], criterion: HookMatchCriterion): PathNode[] {\n if (criterion === true) return nodes;\n let matching = nodes.filter(node => matchState(node.state, criterion));\n return matching.length ? matching : null;\n }\n\n /**\n * Gets the default match criteria (all `true`)\n *\n * Returns an object which has all the criteria match paths as keys and `true` as values, i.e.:\n *\n * ```js\n * {\n * to: true,\n * from: true,\n * entering: true,\n * exiting: true,\n * retained: true,\n * }\n */\n private _getDefaultMatchCriteria(): HookMatchCriteria {\n return map(this.tranSvc._pluginapi._getPathTypes(), () => true);\n }\n\n /**\n * Gets matching nodes as [[IMatchingNodes]]\n *\n * Create a IMatchingNodes object from the TransitionHookTypes that is roughly equivalent to:\n *\n * ```js\n * let matches: IMatchingNodes = {\n * to: _matchingNodes([tail(treeChanges.to)], mc.to),\n * from: _matchingNodes([tail(treeChanges.from)], mc.from),\n * exiting: _matchingNodes(treeChanges.exiting, mc.exiting),\n * retained: _matchingNodes(treeChanges.retained, mc.retained),\n * entering: _matchingNodes(treeChanges.entering, mc.entering),\n * };\n * ```\n */\n private _getMatchingNodes(treeChanges: TreeChanges): IMatchingNodes {\n let criteria = extend(this._getDefaultMatchCriteria(), this.matchCriteria);\n let paths: PathType[] = values(this.tranSvc._pluginapi._getPathTypes());\n\n return paths.reduce((mn: IMatchingNodes, pathtype: PathType) => {\n // STATE scope criteria matches against every node in the path.\n // TRANSITION scope criteria matches against only the last node in the path\n let isStateHook = pathtype.scope === TransitionHookScope.STATE;\n let path = treeChanges[pathtype.name] || [];\n let nodes: PathNode[] = isStateHook ? path : [tail(path)];\n\n mn[pathtype.name] = this._matchingNodes(nodes, criteria[pathtype.name]);\n return mn;\n }, {} as IMatchingNodes);\n }\n\n /**\n * Determines if this hook's [[matchCriteria]] match the given [[TreeChanges]]\n *\n * @returns an IMatchingNodes object, or null. If an IMatchingNodes object is returned, its values\n * are the matching [[PathNode]]s for each [[HookMatchCriterion]] (to, from, exiting, retained, entering)\n */\n matches(treeChanges: TreeChanges): IMatchingNodes {\n let matches = this._getMatchingNodes(treeChanges);\n\n // Check if all the criteria matched the TreeChanges object\n let allMatched = values(matches).every(identity);\n return allMatched ? matches : null;\n }\n\n deregister() {\n this.removeHookFromRegistry(this);\n this._deregistered = true;\n }\n}\n\n/** @hidden Return a registration function of the requested type. */\nexport function makeEvent(registry: IHookRegistry, transitionService: TransitionService, eventType: TransitionEventType) {\n // Create the object which holds the registered transition hooks.\n const _registeredHooks = registry._registeredHooks = (registry._registeredHooks || {});\n const hooks = _registeredHooks[eventType.name] = [];\n const removeHookFn: (hook: RegisteredHook) => void = removeFrom(hooks);\n\n // Create hook registration function on the IHookRegistry for the event\n registry[eventType.name] = hookRegistrationFn;\n\n function hookRegistrationFn(matchObject, callback, options = {}) {\n const registeredHook = new RegisteredHook(transitionService, eventType, callback, matchObject, removeHookFn, options);\n hooks.push(registeredHook);\n return registeredHook.deregister.bind(registeredHook);\n }\n\n return hookRegistrationFn;\n}\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\nimport {extend, tail, assertPredicate, unnestR, identity} from \"../common/common\";\nimport {isArray} from \"../common/predicates\";\n\nimport {\n TransitionOptions, TransitionHookOptions, IHookRegistry, TreeChanges, IMatchingNodes,\n TransitionHookPhase, TransitionHookScope\n} from \"./interface\";\n\nimport {Transition} from \"./transition\";\nimport {TransitionHook} from \"./transitionHook\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TransitionService} from \"./transitionService\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * This class returns applicable TransitionHooks for a specific Transition instance.\n *\n * Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.\n * myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is\n * determined by the type of hook)\n *\n * The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.\n *\n * The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder\n * instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private\n * in the Transition class, so we must also provide the Transition's _treeChanges)\n *\n */\nexport class HookBuilder {\n constructor(private transition: Transition) { }\n\n buildHooksForPhase(phase: TransitionHookPhase): TransitionHook[] {\n let $transitions = this.transition.router.transitionService;\n return $transitions._pluginapi._getEvents(phase)\n .map(type => this.buildHooks(type))\n .reduce(unnestR, [])\n .filter(identity);\n }\n\n /**\n * Returns an array of newly built TransitionHook objects.\n *\n * - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].\n * - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)\n * - For each of the [[PathNode]]s, creates a TransitionHook\n *\n * @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.\n */\n buildHooks(hookType: TransitionEventType): TransitionHook[] {\n let transition = this.transition;\n let treeChanges = transition.treeChanges();\n\n // Find all the matching registered hooks for a given hook type\n let matchingHooks = this.getMatchingHooks(hookType, treeChanges);\n if (!matchingHooks) return [];\n\n let baseHookOptions = {\n transition: transition,\n current: transition.options().current\n };\n\n const makeTransitionHooks = (hook: RegisteredHook) => {\n // Fetch the Nodes that caused this hook to match.\n let matches: IMatchingNodes = hook.matches(treeChanges);\n // Select the PathNode[] that will be used as TransitionHook context objects\n let matchingNodes: PathNode[] = matches[hookType.criteriaMatchPath.name];\n\n // Return an array of HookTuples\n return matchingNodes.map(node => {\n let _options = extend({\n bind: hook.bind,\n traceData: { hookType: hookType.name, context: node }\n }, baseHookOptions);\n\n let state = hookType.criteriaMatchPath.scope === TransitionHookScope.STATE ? node.state.self : null;\n let transitionHook = new TransitionHook(transition, state, hook, _options);\n return { hook, node, transitionHook };\n });\n };\n\n return matchingHooks.map(makeTransitionHooks)\n .reduce(unnestR, [])\n .sort(tupleSort(hookType.reverseSort))\n .map(tuple => tuple.transitionHook);\n }\n\n /**\n * Finds all RegisteredHooks from:\n * - The Transition object instance hook registry\n * - The TransitionService ($transitions) global hook registry\n *\n * which matched:\n * - the eventType\n * - the matchCriteria (to, from, exiting, retained, entering)\n *\n * @returns an array of matched [[RegisteredHook]]s\n */\n public getMatchingHooks(hookType: TransitionEventType, treeChanges: TreeChanges): RegisteredHook[] {\n let isCreate = hookType.hookPhase === TransitionHookPhase.CREATE;\n\n // Instance and Global hook registries\n let $transitions = this.transition.router.transitionService;\n let registries = isCreate ? [ $transitions ] : [ this.transition, $transitions ];\n\n return registries.map((reg: IHookRegistry) => reg.getHooks(hookType.name)) // Get named hooks from registries\n .filter(assertPredicate(isArray, `broken event named: ${hookType.name}`)) // Sanity check\n .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array\n .filter(hook => hook.matches(treeChanges)); // Only those satisfying matchCriteria\n }\n}\n\ninterface HookTuple { hook: RegisteredHook, node: PathNode, transitionHook: TransitionHook }\n\n/**\n * A factory for a sort function for HookTuples.\n *\n * The sort function first compares the PathNode depth (how deep in the state tree a node is), then compares\n * the EventHook priority.\n *\n * @param reverseDepthSort a boolean, when true, reverses the sort order for the node depth\n * @returns a tuple sort function\n */\nfunction tupleSort(reverseDepthSort = false) {\n return function nodeDepthThenPriority(l: HookTuple, r: HookTuple): number {\n let factor = reverseDepthSort ? -1 : 1;\n let depthDelta = (l.node.state.path.length - r.node.state.path.length) * factor;\n return depthDelta !== 0 ? depthDelta : r.hook.priority - l.hook.priority;\n }\n}","/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, filter, map} from \"../common/common\";\nimport {isArray, isDefined} from \"../common/predicates\";\nimport {ParamTypeDefinition} from \"./interface\";\n\n/**\n * An internal class which implements [[ParamTypeDefinition]].\n *\n * A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.\n * When a param type definition is registered, an instance of this class is created internally.\n *\n * This class has naive implementations for all the [[ParamTypeDefinition]] methods.\n *\n * Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.\n *\n * #### Example:\n * ```js\n * var paramTypeDef = {\n * decode: function(val) { return parseInt(val, 10); },\n * encode: function(val) { return val && val.toString(); },\n * equals: function(a, b) { return this.is(a) && a === b; },\n * is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },\n * pattern: /\\d+/\n * }\n *\n * var paramType = new ParamType(paramTypeDef);\n * ```\n * @internalapi\n */\nexport class ParamType implements ParamTypeDefinition {\n /** @inheritdoc */\n pattern: RegExp = /.*/;\n /** The name/id of the parameter type */\n name: string;\n /** @inheritdoc */\n raw: boolean;\n /** @inheritdoc */\n dynamic: boolean;\n /** @inheritdoc */\n inherit = true;\n\n /**\n * @param def A configuration object which contains the custom type definition. The object's\n * properties will override the default methods and/or pattern in `ParamType`'s public interface.\n * @returns a new ParamType object\n */\n constructor(def: ParamTypeDefinition) {\n extend(this, def);\n }\n\n\n // consider these four methods to be \"abstract methods\" that should be overridden\n /** @inheritdoc */\n is(val: any, key?: string): boolean { return true; }\n /** @inheritdoc */\n encode(val: any, key?: string): (string|string[]) { return val; }\n /** @inheritdoc */\n decode(val: string, key?: string): any { return val; }\n /** @inheritdoc */\n equals(a: any, b: any): boolean { return a == b; }\n\n\n $subPattern() {\n let sub = this.pattern.toString();\n return sub.substr(1, sub.length - 2);\n }\n\n toString() {\n return `{ParamType:${this.name}}`;\n }\n\n /** Given an encoded string, or a decoded object, returns a decoded object */\n $normalize(val: any) {\n return this.is(val) ? val : this.decode(val);\n }\n\n /**\n * Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.\n * e.g.:\n * - urlmatcher pattern \"/path?{queryParam[]:int}\"\n * - url: \"/path?queryParam=1&queryParam=2\n * - $stateParams.queryParam will be [1, 2]\n * if `mode` is \"auto\", then\n * - url: \"/path?queryParam=1 will create $stateParams.queryParam: 1\n * - url: \"/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]\n */\n $asArray(mode: (boolean|\"auto\"), isSearch: boolean) {\n if (!mode) return this;\n if (mode === \"auto\" && !isSearch) throw new Error(\"'auto' array mode is for query parameters only\");\n return new ( ArrayType)(this, mode);\n }\n}\n\n/**\n * Wraps up a `ParamType` object to handle array values.\n * @internalapi\n */\nfunction ArrayType(type: ParamType, mode: (boolean|\"auto\")) {\n // Wrap non-array value as array\n function arrayWrap(val: any): any[] {\n return isArray(val) ? val : (isDefined(val) ? [ val ] : []);\n }\n\n // Unwrap array value for \"auto\" mode. Return undefined for empty array.\n function arrayUnwrap(val: any) {\n switch (val.length) {\n case 0: return undefined;\n case 1: return mode === \"auto\" ? val[0] : val;\n default: return val;\n }\n }\n\n // Wraps type (.is/.encode/.decode) functions to operate on each value of an array\n function arrayHandler(callback: (x: any) => any, allTruthyMode?: boolean) {\n return function handleArray(val: any) {\n if (isArray(val) && val.length === 0) return val;\n let arr = arrayWrap(val);\n let result = map(arr, callback);\n return (allTruthyMode === true) ? filter(result, x => !x).length === 0 : arrayUnwrap(result);\n };\n }\n\n // Wraps type (.equals) functions to operate on each value of an array\n function arrayEqualsHandler(callback: (l: any, r: any) => boolean) {\n return function handleArray(val1: any, val2: any) {\n let left = arrayWrap(val1), right = arrayWrap(val2);\n if (left.length !== right.length) return false;\n for (let i = 0; i < left.length; i++) {\n if (!callback(left[i], right[i])) return false;\n }\n return true;\n };\n }\n\n ['encode', 'decode', 'equals', '$normalize'].forEach(name => {\n var paramTypeFn = type[name].bind(type);\n var wrapperFn: Function = name === 'equals' ? arrayEqualsHandler : arrayHandler;\n this[name] = wrapperFn(paramTypeFn);\n });\n\n extend(this, {\n dynamic: type.dynamic,\n name: type.name,\n pattern: type.pattern,\n inherit: type.inherit,\n is: arrayHandler(type.is.bind(type), true),\n $arrayMode: mode\n });\n}\n","/**\n * @coreapi\n * @module params\n */ /** for typedoc */\nimport { extend, filter, map, allTrueR } from \"../common/common\";\nimport { prop } from \"../common/hof\";\nimport { isInjectable, isDefined, isString, isArray, isUndefined } from \"../common/predicates\";\nimport { RawParams, ParamDeclaration } from \"../params/interface\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypes } from \"./paramTypes\";\nimport { UrlMatcherFactory } from \"../url/urlMatcherFactory\";\n\n/** @hidden */ let hasOwn = Object.prototype.hasOwnProperty;\n/** @hidden */ let isShorthand = (cfg: ParamDeclaration) =>\n [\"value\", \"type\", \"squash\", \"array\", \"dynamic\"].filter(hasOwn.bind(cfg || {})).length === 0;\n\n/** @internalapi */\nexport enum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\n\n/** @hidden */\nfunction unwrapShorthand(cfg: ParamDeclaration): ParamDeclaration {\n cfg = isShorthand(cfg) && { value: cfg } as any || cfg;\n\n getStaticDefaultValue['__cacheable'] = true;\n function getStaticDefaultValue() {\n return cfg.value;\n }\n\n return extend(cfg, {\n $$fn: isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue,\n });\n}\n\n/** @hidden */\nfunction getType(cfg: ParamDeclaration, urlType: ParamType, location: DefType, id: string, paramTypes: ParamTypes) {\n if (cfg.type && urlType && urlType.name !== 'string') throw new Error(`Param '${id}' has two type configurations.`);\n if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type as string)) return paramTypes.type(cfg.type as string);\n if (urlType) return urlType;\n if (!cfg.type) {\n let type = location === DefType.CONFIG ? \"any\" :\n location === DefType.PATH ? \"path\" :\n location === DefType.SEARCH ? \"query\" : \"string\";\n return paramTypes.type(type);\n }\n return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type as string);\n}\n\n/**\n * @internalapi\n * returns false, true, or the squash value to indicate the \"default parameter url squash policy\".\n */\nfunction getSquashPolicy(config: ParamDeclaration, isOptional: boolean, defaultPolicy: (boolean|string)) {\n let squash = config.squash;\n if (!isOptional || squash === false) return false;\n if (!isDefined(squash) || squash == null) return defaultPolicy;\n if (squash === true || isString(squash)) return squash;\n throw new Error(`Invalid squash policy: '${squash}'. Valid policies: false, true, or arbitrary string`);\n}\n\n/** @internalapi */\nfunction getReplace(config: ParamDeclaration, arrayMode: boolean, isOptional: boolean, squash: (string|boolean)) {\n let replace: any, configuredKeys: string[], defaultPolicy = [\n {from: \"\", to: (isOptional || arrayMode ? undefined : \"\")},\n {from: null, to: (isOptional || arrayMode ? undefined : \"\")},\n ];\n replace = isArray(config.replace) ? config.replace : [];\n if (isString(squash)) replace.push({ from: squash, to: undefined });\n configuredKeys = map(replace, prop(\"from\"));\n return filter(defaultPolicy, item => configuredKeys.indexOf(item.from) === -1).concat(replace);\n}\n\n\n/** @internalapi */\nexport class Param {\n id: string;\n type: ParamType;\n location: DefType;\n isOptional: boolean;\n dynamic: boolean;\n raw: boolean;\n squash: (boolean|string);\n replace: [{ to: any, from: any }];\n inherit: boolean;\n array: boolean;\n config: any;\n /** Cache the default value if it is a static value */\n _defaultValueCache: {\n defaultValue: any,\n };\n\n constructor(id: string, type: ParamType, config: ParamDeclaration, location: DefType, urlMatcherFactory: UrlMatcherFactory) {\n config = unwrapShorthand(config);\n type = getType(config, type, location, id, urlMatcherFactory.paramTypes);\n let arrayMode = getArrayMode();\n type = arrayMode ? type.$asArray(arrayMode, location === DefType.SEARCH) : type;\n let isOptional = config.value !== undefined || location === DefType.SEARCH;\n let dynamic = isDefined(config.dynamic) ? !!config.dynamic : !!type.dynamic;\n let raw = isDefined(config.raw) ? !!config.raw : !!type.raw;\n let squash = getSquashPolicy(config, isOptional, urlMatcherFactory.defaultSquashPolicy());\n let replace = getReplace(config, arrayMode, isOptional, squash);\n let inherit = isDefined(config.inherit) ? !!config.inherit : !!type.inherit;\n\n // array config: param name (param[]) overrides default settings. explicit config overrides param name.\n function getArrayMode() {\n let arrayDefaults = { array: (location === DefType.SEARCH ? \"auto\" : false) };\n let arrayParamNomenclature = id.match(/\\[\\]$/) ? { array: true } : {};\n return extend(arrayDefaults, arrayParamNomenclature, config).array;\n }\n\n extend(this, {id, type, location, isOptional, dynamic, raw, squash, replace, inherit, array: arrayMode, config });\n }\n\n isDefaultValue(value: any): boolean {\n return this.isOptional && this.type.equals(this.value(), value);\n }\n\n /**\n * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the\n * default value, which may be the result of an injectable function.\n */\n value(value?: any): any {\n /**\n * [Internal] Get the default value of a parameter, which may be an injectable function.\n */\n const getDefaultValue = () => {\n if (this._defaultValueCache) return this._defaultValueCache.defaultValue;\n\n if (!services.$injector) throw new Error(\"Injectable functions cannot be called at configuration time\");\n\n let defaultValue = services.$injector.invoke(this.config.$$fn);\n\n if (defaultValue !== null && defaultValue !== undefined && !this.type.is(defaultValue))\n throw new Error(`Default value (${defaultValue}) for parameter '${this.id}' is not an instance of ParamType (${this.type.name})`);\n\n if (this.config.$$fn['__cacheable']) {\n this._defaultValueCache = { defaultValue };\n }\n\n return defaultValue;\n };\n\n const replaceSpecialValues = (val: any) => {\n for (let tuple of this.replace) {\n if (tuple.from === val) return tuple.to;\n }\n return val;\n };\n\n value = replaceSpecialValues(value);\n\n return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);\n }\n\n isSearch(): boolean {\n return this.location === DefType.SEARCH;\n }\n\n validates(value: any): boolean {\n // There was no parameter value, but the param is optional\n if ((isUndefined(value) || value === null) && this.isOptional) return true;\n\n // The value was not of the correct ParamType, and could not be decoded to the correct ParamType\n const normalized = this.type.$normalize(value);\n if (!this.type.is(normalized)) return false;\n\n // The value was of the correct type, but when encoded, did not match the ParamType's regexp\n const encoded = this.type.encode(normalized);\n return !(isString(encoded) && !this.type.pattern.exec( encoded));\n }\n\n toString() {\n return `{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`;\n }\n\n static values(params: Param[], values: RawParams = {}): RawParams {\n const paramValues = {} as RawParams;\n for (let param of params) {\n paramValues[param.id] = param.value(values[param.id]);\n }\n return paramValues;\n }\n\n /**\n * Finds [[Param]] objects which have different param values\n *\n * Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects\n *\n * @param params: The list of Param objects to filter\n * @param values1: The first set of parameter values\n * @param values2: the second set of parameter values\n *\n * @returns any Param objects whose values were different between values1 and values2\n */\n static changed(params: Param[], values1: RawParams = {}, values2: RawParams = {}): Param[] {\n return params.filter(param => !param.type.equals(values1[param.id], values2[param.id]));\n }\n\n /**\n * Checks if two param value objects are equal (for a set of [[Param]] objects)\n *\n * @param params The list of [[Param]] objects to check\n * @param values1 The first set of param values\n * @param values2 The second set of param values\n *\n * @returns true if the param values in values1 and values2 are equal\n */\n static equals(params: Param[], values1 = {}, values2 = {}): boolean {\n return Param.changed(params, values1, values2).length === 0;\n }\n\n /** Returns true if a the parameter values are valid, according to the Param definitions */\n static validates(params: Param[], values: RawParams = {}): boolean {\n return params.map(param => param.validates(values[param.id])).reduce(allTrueR, true);\n }\n}","/**\n * Functions that manipulate strings\n *\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_strings\n */ /** */\n\nimport { isString, isArray, isDefined, isNull, isPromise, isInjectable, isObject } from \"./predicates\";\nimport { Rejection } from \"../transition/rejectFactory\";\nimport { IInjectable, identity, Obj, tail, pushR } from \"./common\";\nimport { pattern, is, not, val, invoke } from \"./hof\";\nimport { Transition } from \"../transition/transition\";\nimport { Resolvable } from \"../resolve/resolvable\";\n\n/**\n * Returns a string shortened to a maximum length\n *\n * If the string is already less than the `max` length, return the string.\n * Else return the string, shortened to `max - 3` and append three dots (\"...\").\n *\n * @param max the maximum length of the string to return\n * @param str the input string\n */\nexport function maxLength(max: number, str: string) {\n if (str.length <= max) return str;\n return str.substr(0, max - 3) + \"...\";\n}\n\n/**\n * Returns a string, with spaces added to the end, up to a desired str length\n *\n * If the string is already longer than the desired length, return the string.\n * Else returns the string, with extra spaces on the end, such that it reaches `length` characters.\n *\n * @param length the desired length of the string to return\n * @param str the input string\n */\nexport function padString(length: number, str: string) {\n while (str.length < length) str += \" \";\n return str;\n}\n\nexport function kebobString(camelCase: string) {\n return camelCase\n .replace(/^([A-Z])/, $1 => $1.toLowerCase()) // replace first char\n .replace(/([A-Z])/g, $1 => \"-\" + $1.toLowerCase()); // replace rest\n}\n\nfunction _toJson(obj: Obj) {\n return JSON.stringify(obj);\n}\n\nfunction _fromJson(json: string) {\n return isString(json) ? JSON.parse(json) : json;\n}\n\n\nfunction promiseToString(p: Promise) {\n return `Promise(${JSON.stringify(p)})`;\n}\n\nexport function functionToString(fn: Function) {\n let fnStr = fnToString(fn);\n let namedFunctionMatch = fnStr.match(/^(function [^ ]+\\([^)]*\\))/);\n let toStr = namedFunctionMatch ? namedFunctionMatch[1] : fnStr;\n\n let fnName = fn['name'] || \"\";\n if (fnName && toStr.match(/function \\(/)) {\n return 'function ' + fnName + toStr.substr(9);\n }\n return toStr;\n}\n\nexport function fnToString(fn: IInjectable) {\n let _fn = isArray(fn) ? fn.slice(-1)[0] : fn;\n return _fn && _fn.toString() || \"undefined\";\n}\n\nlet stringifyPatternFn: (val: any) => string = null;\nlet stringifyPattern = function(value: any) {\n let isRejection = Rejection.isRejectionPromise;\n\n stringifyPatternFn = stringifyPatternFn || pattern([\n [not(isDefined), val(\"undefined\")],\n [isNull, val(\"null\")],\n [isPromise, val(\"[Promise]\")],\n [isRejection, (x: any) => x._transitionRejection.toString()],\n [is(Rejection), invoke(\"toString\")],\n [is(Transition), invoke(\"toString\")],\n [is(Resolvable), invoke(\"toString\")],\n [isInjectable, functionToString],\n [val(true), identity]\n ]);\n\n return stringifyPatternFn(value);\n};\n\nexport function stringify(o: any) {\n var seen: any[] = [];\n\n function format(val: any) {\n if (isObject(val)) {\n if (seen.indexOf(val) !== -1) return '[circular ref]';\n seen.push(val);\n }\n return stringifyPattern(val);\n }\n\n return JSON.stringify(o, (key, val) => format(val)).replace(/\\\\\"/g, '\"');\n}\n\n/** Returns a function that splits a string on a character or substring */\nexport const beforeAfterSubstr = (char: string) => (str: string): string[] => {\n if (!str) return [\"\", \"\"];\n let idx = str.indexOf(char);\n if (idx === -1) return [str, \"\"];\n return [str.substr(0, idx), str.substr(idx + 1)];\n};\n\nexport const hostRegex = new RegExp('^(?:[a-z]+:)?//[^/]+/');\nexport const stripFile = (str: string) => str.replace(/\\/[^/]*$/, '');\nexport const splitHash = beforeAfterSubstr(\"#\");\nexport const splitQuery = beforeAfterSubstr(\"?\");\nexport const splitEqual = beforeAfterSubstr(\"=\");\nexport const trimHashVal = (str: string) => str ? str.replace(/^#/, \"\") : \"\";\n\n/**\n * Splits on a delimiter, but returns the delimiters in the array\n *\n * #### Example:\n * ```js\n * var splitOnSlashes = splitOnDelim('/');\n * splitOnSlashes(\"/foo\"); // [\"/\", \"foo\"]\n * splitOnSlashes(\"/foo/\"); // [\"/\", \"foo\", \"/\"]\n * ```\n */\nexport function splitOnDelim(delim: string) {\n let re = new RegExp(\"(\" + delim + \")\", \"g\");\n return (str: string) =>\n str.split(re).filter(identity);\n};\n\n\n/**\n * Reduce fn that joins neighboring strings\n *\n * Given an array of strings, returns a new array\n * where all neighboring strings have been joined.\n *\n * #### Example:\n * ```js\n * let arr = [\"foo\", \"bar\", 1, \"baz\", \"\", \"qux\" ];\n * arr.reduce(joinNeighborsR, []) // [\"foobar\", 1, \"bazqux\" ]\n * ```\n */\nexport function joinNeighborsR(acc: any[], x: any) {\n if (isString(tail(acc)) && isString(x))\n return acc.slice(0, -1).concat(tail(acc)+ x);\n return pushR(acc, x);\n};\n\n","/** @module state */ /** for typedoc */\nimport {Obj, omit, noop, extend, inherit, values, applyPairs, tail, mapObj, identity} from \"../common/common\";\nimport {isDefined, isFunction, isString, isArray} from \"../common/predicates\";\nimport {stringify} from \"../common/strings\";\nimport {prop, pattern, is, pipe, val} from \"../common/hof\";\nimport {StateDeclaration} from \"./interface\";\n\nimport {StateObject} from \"./stateObject\";\nimport {StateMatcher} from \"./stateMatcher\";\nimport {Param} from \"../params/param\";\nimport {UrlMatcherFactory} from \"../url/urlMatcherFactory\";\nimport {UrlMatcher} from \"../url/urlMatcher\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {services} from \"../common/coreservices\";\nimport {ResolvePolicy} from \"../resolve/interface\";\nimport { ParamFactory } from \"../url/interface\";\n\nconst parseUrl = (url: string): any => {\n if (!isString(url)) return false;\n let root = url.charAt(0) === '^';\n return { val: root ? url.substring(1) : url, root };\n};\n\nexport type BuilderFunction = (state: StateObject, parent?: BuilderFunction) => any;\n\ninterface Builders {\n [key: string]: BuilderFunction[];\n\n name: BuilderFunction[];\n parent: BuilderFunction[];\n data: BuilderFunction[];\n url: BuilderFunction[];\n navigable: BuilderFunction[];\n params: BuilderFunction[];\n views: BuilderFunction[];\n path: BuilderFunction[];\n includes: BuilderFunction[];\n resolvables: BuilderFunction[];\n}\n\n\nfunction nameBuilder(state: StateObject) {\n return state.name;\n}\n\nfunction selfBuilder(state: StateObject) {\n state.self.$$state = () => state;\n return state.self;\n}\n\nfunction dataBuilder(state: StateObject) {\n if (state.parent && state.parent.data) {\n state.data = state.self.data = inherit(state.parent.data, state.data);\n }\n return state.data;\n}\n\nconst getUrlBuilder = ($urlMatcherFactoryProvider: UrlMatcherFactory, root: () => StateObject) =>\nfunction urlBuilder(state: StateObject) {\n let stateDec: StateDeclaration = state;\n\n // For future states, i.e., states whose name ends with `.**`,\n // match anything that starts with the url prefix\n if (stateDec && stateDec.url && stateDec.name && stateDec.name.match(/\\.\\*\\*$/)) {\n stateDec.url += \"{remainder:any}\"; // match any path (.*)\n }\n\n const parsed = parseUrl(stateDec.url), parent = state.parent;\n const url = !parsed ? stateDec.url : $urlMatcherFactoryProvider.compile(parsed.val, {\n params: state.params || {},\n paramMap: function (paramConfig: any, isSearch: boolean) {\n if (stateDec.reloadOnSearch === false && isSearch) paramConfig = extend(paramConfig || {}, {dynamic: true});\n return paramConfig;\n }\n });\n\n if (!url) return null;\n if (!$urlMatcherFactoryProvider.isMatcher(url)) throw new Error(`Invalid url '${url}' in state '${state}'`);\n return (parsed && parsed.root) ? url : ((parent && parent.navigable) || root()).url.append( url);\n};\n\nconst getNavigableBuilder = (isRoot: (state: StateObject) => boolean) =>\nfunction navigableBuilder(state: StateObject) {\n return !isRoot(state) && state.url ? state : (state.parent ? state.parent.navigable : null);\n};\n\nconst getParamsBuilder = (paramFactory: ParamFactory) =>\nfunction paramsBuilder(state: StateObject): { [key: string]: Param } {\n const makeConfigParam = (config: any, id: string) => paramFactory.fromConfig(id, null, config);\n let urlParams: Param[] = (state.url && state.url.parameters({inherit: false})) || [];\n let nonUrlParams: Param[] = values(mapObj(omit(state.params || {}, urlParams.map(prop('id'))), makeConfigParam));\n return urlParams.concat(nonUrlParams).map(p => [p.id, p]).reduce(applyPairs, {});\n};\n\nfunction pathBuilder(state: StateObject) {\n return state.parent ? state.parent.path.concat(state) : /*root*/ [state];\n}\n\nfunction includesBuilder(state: StateObject) {\n let includes = state.parent ? extend({}, state.parent.includes) : {};\n includes[state.name] = true;\n return includes;\n}\n\n/**\n * This is a [[StateBuilder.builder]] function for the `resolve:` block on a [[StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * validates the `resolve` property and converts it to a [[Resolvable]] array.\n *\n * resolve: input value can be:\n *\n * {\n * // analyzed but not injected\n * myFooResolve: function() { return \"myFooData\"; },\n *\n * // function.toString() parsed, \"DependencyName\" dep as string (not min-safe)\n * myBarResolve: function(DependencyName) { return DependencyName.fetchSomethingAsPromise() },\n *\n * // Array split; \"DependencyName\" dep as string\n * myBazResolve: [ \"DependencyName\", function(dep) { return dep.fetchSomethingAsPromise() },\n *\n * // Array split; DependencyType dep as token (compared using ===)\n * myQuxResolve: [ DependencyType, function(dep) { return dep.fetchSometingAsPromise() },\n *\n * // val.$inject used as deps\n * // where:\n * // corgeResolve.$inject = [\"DependencyName\"];\n * // function corgeResolve(dep) { dep.fetchSometingAsPromise() }\n * // then \"DependencyName\" dep as string\n * myCorgeResolve: corgeResolve,\n *\n * // inject service by name\n * // When a string is found, desugar creating a resolve that injects the named service\n * myGraultResolve: \"SomeService\"\n * }\n *\n * or:\n *\n * [\n * new Resolvable(\"myFooResolve\", function() { return \"myFooData\" }),\n * new Resolvable(\"myBarResolve\", function(dep) { return dep.fetchSomethingAsPromise() }, [ \"DependencyName\" ]),\n * { provide: \"myBazResolve\", useFactory: function(dep) { dep.fetchSomethingAsPromise() }, deps: [ \"DependencyName\" ] }\n * ]\n */\nexport function resolvablesBuilder(state: StateObject): Resolvable[] {\n interface Tuple { token: any, val: any, deps: any[], policy: ResolvePolicy }\n \n /** convert resolve: {} and resolvePolicy: {} objects to an array of tuples */\n const objects2Tuples = (resolveObj: Obj, resolvePolicies: { [key: string]: ResolvePolicy }) =>\n Object.keys(resolveObj || {}).map(token => ({token, val: resolveObj[token], deps: undefined, policy: resolvePolicies[token]}));\n\n /** fetch DI annotations from a function or ng1-style array */\n const annotate = (fn: Function) => {\n let $injector = services.$injector;\n // ng1 doesn't have an $injector until runtime.\n // If the $injector doesn't exist, use \"deferred\" literal as a\n // marker indicating they should be annotated when runtime starts\n return fn['$inject'] || ($injector && $injector.annotate(fn, $injector.strictDi)) || \"deferred\";\n };\n\n /** true if the object has both `token` and `resolveFn`, and is probably a [[ResolveLiteral]] */\n const isResolveLiteral = (obj: any) => !!(obj.token && obj.resolveFn);\n\n /** true if the object looks like a provide literal, or a ng2 Provider */\n const isLikeNg2Provider = (obj: any) => !!((obj.provide || obj.token) && (obj.useValue || obj.useFactory || obj.useExisting || obj.useClass));\n\n /** true if the object looks like a tuple from obj2Tuples */\n const isTupleFromObj = (obj: any) => !!(obj && obj.val && (isString(obj.val) || isArray(obj.val) || isFunction(obj.val)));\n\n /** extracts the token from a Provider or provide literal */\n const token = (p: any) => p.provide || p.token;\n\n /** Given a literal resolve or provider object, returns a Resolvable */\n const literal2Resolvable = pattern([\n [prop('resolveFn'), p => new Resolvable(token(p), p.resolveFn, p.deps, p.policy)],\n [prop('useFactory'), p => new Resolvable(token(p), p.useFactory, (p.deps || p.dependencies), p.policy)],\n [prop('useClass'), p => new Resolvable(token(p), () => new (p.useClass)(), [], p.policy)],\n [prop('useValue'), p => new Resolvable(token(p), () => p.useValue, [], p.policy, p.useValue)],\n [prop('useExisting'), p => new Resolvable(token(p), identity, [p.useExisting], p.policy)],\n ]);\n\n const tuple2Resolvable = pattern([\n [pipe(prop(\"val\"), isString), (tuple: Tuple) => new Resolvable(tuple.token, identity, [ tuple.val ], tuple.policy)],\n [pipe(prop(\"val\"), isArray), (tuple: Tuple) => new Resolvable(tuple.token, tail( tuple.val), tuple.val.slice(0, -1), tuple.policy)],\n [pipe(prop(\"val\"), isFunction), (tuple: Tuple) => new Resolvable(tuple.token, tuple.val, annotate(tuple.val), tuple.policy)],\n ]);\n\n const item2Resolvable = <(obj: any) => Resolvable> pattern([\n [is(Resolvable), (r: Resolvable) => r],\n [isResolveLiteral, literal2Resolvable],\n [isLikeNg2Provider, literal2Resolvable],\n [isTupleFromObj, tuple2Resolvable],\n [val(true), (obj: any) => { throw new Error(\"Invalid resolve value: \" + stringify(obj)) }]\n ]);\n\n // If resolveBlock is already an array, use it as-is.\n // Otherwise, assume it's an object and convert to an Array of tuples\n let decl = state.resolve;\n let items: any[] = isArray(decl) ? decl : objects2Tuples(decl, state.resolvePolicy || {});\n return items.map(item2Resolvable);\n}\n\n/**\n * @internalapi A internal global service\n *\n * StateBuilder is a factory for the internal [[StateObject]] objects.\n *\n * When you register a state with the [[StateRegistry]], you register a plain old javascript object which\n * conforms to the [[StateDeclaration]] interface. This factory takes that object and builds the corresponding\n * [[StateObject]] object, which has an API and is used internally.\n *\n * Custom properties or API may be added to the internal [[StateObject]] object by registering a decorator function\n * using the [[builder]] method.\n */\nexport class StateBuilder {\n /** An object that contains all the BuilderFunctions registered, key'd by the name of the State property they build */\n private builders: Builders;\n\n constructor(private matcher: StateMatcher, urlMatcherFactory: UrlMatcherFactory) {\n let self = this;\n\n const root = () => matcher.find(\"\");\n const isRoot = (state: StateObject) => state.name === \"\";\n\n function parentBuilder(state: StateObject) {\n if (isRoot(state)) return null;\n return matcher.find(self.parentName(state)) || root();\n }\n\n this.builders = {\n name: [ nameBuilder ],\n self: [ selfBuilder ],\n parent: [ parentBuilder ],\n data: [ dataBuilder ],\n // Build a URLMatcher if necessary, either via a relative or absolute URL\n url: [ getUrlBuilder(urlMatcherFactory, root) ],\n // Keep track of the closest ancestor state that has a URL (i.e. is navigable)\n navigable: [ getNavigableBuilder(isRoot) ],\n params: [ getParamsBuilder(urlMatcherFactory.paramFactory) ],\n // Each framework-specific ui-router implementation should define its own `views` builder\n // e.g., src/ng1/statebuilders/views.ts\n views: [],\n // Keep a full path from the root down to this state as this is needed for state activation.\n path: [ pathBuilder ],\n // Speed up $state.includes() as it's used a lot\n includes: [ includesBuilder ],\n resolvables: [ resolvablesBuilder ]\n };\n }\n\n /**\n * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).\n * More than one BuilderFunction can be registered for a given property.\n *\n * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.\n *\n * @param name The name of the State property being registered for.\n * @param fn The BuilderFunction which will be used to build the State property\n * @returns a function which deregisters the BuilderFunction\n */\n builder(name: string, fn: BuilderFunction): (BuilderFunction|BuilderFunction[]|Function) {\n let builders = this.builders;\n let array = builders[name] || [];\n // Backwards compat: if only one builder exists, return it, else return whole arary.\n if (isString(name) && !isDefined(fn)) return array.length > 1 ? array : array[0];\n if (!isString(name) || !isFunction(fn)) return;\n\n builders[name] = array;\n builders[name].push(fn);\n return () => builders[name].splice(builders[name].indexOf(fn, 1)) && null;\n }\n\n /**\n * Builds all of the properties on an essentially blank State object, returning a State object which has all its\n * properties and API built.\n *\n * @param state an uninitialized State object\n * @returns the built State object\n */\n build(state: StateObject): StateObject {\n let {matcher, builders} = this;\n let parent = this.parentName(state);\n\n if (parent && !matcher.find(parent, undefined, false)) {\n return null;\n }\n\n for (let key in builders) {\n if (!builders.hasOwnProperty(key)) continue;\n let chain = builders[key].reduce((parentFn: BuilderFunction, step: BuilderFunction) => (_state) => step(_state, parentFn), noop);\n state[key] = chain(state);\n }\n return state;\n }\n\n parentName(state: StateObject) {\n // name = 'foo.bar.baz.**'\n let name = state.name || \"\";\n // segments = ['foo', 'bar', 'baz', '.**']\n let segments = name.split('.');\n // segments = ['foo', 'bar', 'baz']\n let lastSegment = segments.pop();\n // segments = ['foo', 'bar'] (ignore .** segment for future states)\n if (lastSegment === '**') segments.pop();\n\n if (segments.length) {\n if (state.parent) {\n throw new Error(`States that specify the 'parent:' property should not have a '.' in their name (${name})`);\n }\n\n // 'foo.bar'\n return segments.join(\".\");\n }\n\n if (!state.parent) return \"\";\n return isString(state.parent) ? state.parent : state.parent.name;\n }\n\n name(state: StateObject) {\n let name = state.name;\n if (name.indexOf('.') !== -1 || !state.parent) return name;\n\n let parentName = isString(state.parent) ? state.parent : state.parent.name;\n return parentName ? parentName + \".\" + name : name;\n }\n}\n","/**\n * @coreapi\n * @module url\n */\n/** for typedoc */\nimport {\n map, defaults, inherit, identity, unnest, tail, find, Obj, pairs, allTrueR, unnestR, arrayTuples\n} from \"../common/common\";\nimport { prop, propEq } from \"../common/hof\";\nimport { isArray, isString, isDefined } from \"../common/predicates\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { RawParams } from \"../params/interface\";\nimport { ParamFactory } from \"./interface\";\nimport { joinNeighborsR, splitOnDelim } from \"../common/strings\";\n\n/** @hidden */\nfunction quoteRegExp(string: any, param?: any) {\n let surroundPattern = ['', ''], result = string.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, \"\\\\$&\");\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')]; break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:\\/(', ')|\\/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?']; break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\n/** @hidden */\nconst memoizeTo = (obj: Obj, prop: string, fn: Function) =>\n obj[prop] = obj[prop] || fn();\n\n/** @hidden */\nconst splitOnSlash = splitOnDelim('/');\n\n/** @hidden */\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @hidden */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @hidden */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @hidden */\n private _children: UrlMatcher[] = [];\n /** @hidden */\n private _params: Param[] = [];\n /** @hidden */\n private _segments: string[] = [];\n /** @hidden */\n private _compiled: string[] = [];\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param config A configuration object\n * - `caseInsensitive` - `true` if URL matching should be case insensitive, otherwise `false`, the default value (for backward compatibility) is `false`.\n * - `strict` - `false` if matching against a URL with a trailing slash should be treated as equivalent to a URL without a trailing slash, the default value is `true`.\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, public config?: any) {\n this.pattern = pattern;\n this.config = defaults(this.config, {\n params: {},\n strict: true,\n caseInsensitive: false,\n paramMap: identity\n });\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\:\\s*( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\]+ - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]+|\\\\.)*\\} - a matched set of curly braces containing other atoms\n let placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n searchPlaceholder = /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n last = 0, m: RegExpExecArray, patterns: any[][] = [];\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id))) throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean) => {\n // IE[78] returns '' for unmatched groups instead of null\n let id = m[2] || m[3];\n let regexp = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (regexp) => inherit(paramTypes.type(isSearch ? \"query\" : \"path\"), {\n pattern: new RegExp(regexp, this.config.caseInsensitive ? 'i' : undefined)\n });\n\n return {\n id,\n regexp,\n cfg: this.config.params[id],\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp)\n };\n };\n\n let p: any, segment: string;\n\n while ((m = placeholder.exec(pattern))) {\n p = matchDetails(m, false);\n if (p.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromPath(p.id, p.type, this.config.paramMap(p.cfg, false)));\n this._segments.push(p.segment);\n patterns.push([p.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n let i = segment.indexOf('?');\n\n if (i >= 0) {\n let search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n while ((m = searchPlaceholder.exec(search))) {\n p = matchDetails(m, true);\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromSearch(p.id, p.type, this.config.paramMap(p.cfg, true)));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map(pattern => quoteRegExp.apply(null, pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @hidden */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n let match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp([\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '\\/?' : '',\n '$'\n ].join(''), this.config.caseInsensitive ? 'i' : undefined);\n }).exec(path);\n\n if (!match) return null;\n\n //options = defaults(options, { isolate: false });\n\n let allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter(param => !param.isSearch()),\n searchParams: Param[] = allParams.filter(param => param.isSearch()),\n nPathSegments = this._cache.path.map(urlm => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1)\n throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(string: string) {\n const reverseString = (str: string) => str.split(\"\").reverse().join(\"\");\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, \"-\");\n\n let split = reverseString(string).split(/-(?!\\\\)/);\n let allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n let param: Param = pathParams[i];\n let value: (any|any[]) = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (value && param.array === true) value = decodePathArray(value);\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n }\n searchParams.forEach(param => {\n let value = search[param.id];\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n });\n\n if (hash) values[\"#\"] = hash;\n\n return values;\n }\n\n /**\n * @hidden\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map(matcher => matcher._params));\n }\n\n /**\n * @hidden\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (let param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n let parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) =>\n !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n let paramSchema = this.parameters().filter(paramDef => params.hasOwnProperty(paramDef.id));\n return paramSchema.map(paramDef => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n let urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n let pathSegmentsAndParams: Array = urlMatchers.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map(x => isString(x) ? x : getDetails(x));\n\n // Extract the query params into a separate array\n let queryParams: Array = urlMatchers.map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n let value = param.value(values[param.id]);\n let isValid = param.validates(value);\n let isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n let squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n let encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n let pathString = pathSegmentsAndParams.reduce((acc: string, x: string|ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n let { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return (acc.match(/\\/$/)) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map( encoded, UrlMatcher.encodeDashes).join(\"-\");\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent( encoded);\n }, \"\");\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n let queryString = queryParams.map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [ encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map( encoded, encodeURIComponent);\n\n return ( encoded).map(val => `${param.id}=${val}`);\n }).filter(identity).reduce(unnestR, []).join(\"&\");\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : \"\") + (values[\"#\"] ? \"#\" + values[\"#\"] : \"\");\n }\n\n /** @hidden */\n static encodeDashes(str: string) { // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, c => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @hidden Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n let staticSegments = matcher._segments;\n let pathParams = matcher._params.filter(p => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter(x => x !== \"\" && isDefined(x));\n }\n\n /** @hidden Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter(p => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n matcher._cache.segments = matcher._cache.segments ||\n matcher._cache.path.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map(x => isString(x) ? splitOnSlash(x) : x)\n .reduce(unnestR, []);\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n matcher._cache.weights = matcher._cache.weights ||\n segments(matcher).map(segment => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n });\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a), weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n let cmp, i, pairs = arrayTuples(weightsA, weightsB);\n\n for (i = 0; i < pairs.length; i++) {\n cmp = pairs[i][0] - pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n}\n\n/** @hidden */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: (boolean|string);\n encoded: (string|string[]);\n}\n","/**\n * @internalapi\n * @module url\n */\n/** for typedoc */\nimport { createProxyFunctions, extend, removeFrom } from '../common/common';\nimport { isDefined, isFunction, isString } from '../common/predicates';\nimport { UrlMatcher } from './urlMatcher';\nimport { RawParams } from '../params/interface';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { is, pattern, val } from '../common/hof';\nimport { UrlRuleFactory } from './urlRule';\nimport { TargetState } from '../state/targetState';\nimport { MatcherUrlRule, MatchResult, UrlParts, UrlRule, UrlRuleHandlerFn, UrlRuleMatchFn, UrlRulesApi, UrlSyncApi, } from './interface';\nimport { TargetStateDef } from '../state/interface';\nimport { stripFile } from '../common';\n\n/** @hidden */\nfunction appendBasePath(url: string, isHtml5: boolean, absolute: boolean, baseHref: string): string {\n if (baseHref === '/') return url;\n if (isHtml5) return stripFile(baseHref) + url;\n if (absolute) return baseHref.slice(1) + url;\n return url;\n}\n\n/** @hidden */\nconst prioritySort = (a: UrlRule, b: UrlRule) =>\n (b.priority || 0) - (a.priority || 0);\n\n/** @hidden */\nconst typeSort = (a: UrlRule, b: UrlRule) => {\n const weights = { \"STATE\": 4, \"URLMATCHER\": 4, \"REGEXP\": 3, \"RAW\": 2, \"OTHER\": 1 };\n return (weights[a.type] || 0) - (weights[b.type] || 0);\n};\n\n/** @hidden */\nconst urlMatcherSort = (a: MatcherUrlRule, b: MatcherUrlRule) =>\n !a.urlMatcher || !b.urlMatcher ? 0 : UrlMatcher.compare(a.urlMatcher, b.urlMatcher);\n\n/** @hidden */\nconst idSort = (a: UrlRule, b: UrlRule) => {\n // Identically sorted STATE and URLMATCHER best rule will be chosen by `matchPriority` after each rule matches the URL\n const useMatchPriority = { STATE: true, URLMATCHER: true };\n const equal = useMatchPriority[a.type] && useMatchPriority[b.type];\n return equal ? 0 : (a.$id || 0) - (b.$id || 0);\n};\n\n/**\n * Default rule priority sorting function.\n *\n * Sorts rules by:\n *\n * - Explicit priority (set rule priority using [[UrlRulesApi.when]])\n * - Rule type (STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1)\n * - `UrlMatcher` specificity ([[UrlMatcher.compare]]): works for STATE and URLMATCHER types to pick the most specific rule.\n * - Rule registration order (for rule types other than STATE and URLMATCHER)\n * - Equally sorted State and UrlMatcher rules will each match the URL.\n * Then, the *best* match is chosen based on how many parameter values were matched.\n *\n * @coreapi\n */\nlet defaultRuleSortFn: (a: UrlRule, b: UrlRule) => number;\ndefaultRuleSortFn = (a, b) => {\n let cmp = prioritySort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = typeSort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = urlMatcherSort(a as MatcherUrlRule, b as MatcherUrlRule);\n if (cmp !== 0) return cmp;\n\n return idSort(a, b);\n};\n\n/**\n * Updates URL and responds to URL changes\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class updates the URL when the state changes.\n * It also responds to changes in the URL.\n */\nexport class UrlRouter implements UrlRulesApi, UrlSyncApi, Disposable {\n /** used to create [[UrlRule]] objects for common cases */\n public urlRuleFactory: UrlRuleFactory;\n\n /** @hidden */ private _router: UIRouter;\n /** @hidden */ private location: string;\n /** @hidden */ private _sortFn = defaultRuleSortFn;\n /** @hidden */ private _stopFn: Function;\n /** @hidden */ _rules: UrlRule[] = [];\n /** @hidden */ private _otherwiseFn: UrlRule;\n /** @hidden */ interceptDeferred = false;\n /** @hidden */ private _id = 0;\n /** @hidden */ private _sorted = false;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this.urlRuleFactory = new UrlRuleFactory(router);\n createProxyFunctions(val(UrlRouter.prototype), this, val(this));\n }\n\n /** @internalapi */\n dispose() {\n this.listen(false);\n this._rules = [];\n delete this._otherwiseFn;\n }\n\n /** @inheritdoc */\n sort(compareFn?: (a: UrlRule, b: UrlRule) => number) {\n this._rules = this.stableSort(this._rules, this._sortFn = compareFn || this._sortFn);\n this._sorted = true;\n }\n\n private ensureSorted() {\n this._sorted || this.sort();\n }\n\n private stableSort(arr, compareFn) {\n const arrOfWrapper = arr.map((elem, idx) => ({ elem, idx }));\n\n arrOfWrapper.sort((wrapperA, wrapperB) => {\n const cmpDiff = compareFn(wrapperA.elem, wrapperB.elem);\n return cmpDiff === 0\n ? wrapperA.idx - wrapperB.idx\n : cmpDiff;\n });\n\n return arrOfWrapper.map(wrapper => wrapper.elem);\n }\n\n /**\n * Given a URL, check all rules and return the best [[MatchResult]]\n * @param url\n * @returns {MatchResult}\n */\n match(url: UrlParts): MatchResult {\n this.ensureSorted();\n\n url = extend({path: '', search: {}, hash: '' }, url);\n let rules = this.rules();\n if (this._otherwiseFn) rules.push(this._otherwiseFn);\n\n // Checks a single rule. Returns { rule: rule, match: match, weight: weight } if it matched, or undefined\n\n let checkRule = (rule: UrlRule): MatchResult => {\n let match = rule.match(url, this._router);\n return match && { match, rule, weight: rule.matchPriority(match) };\n };\n\n // The rules are pre-sorted.\n // - Find the first matching rule.\n // - Find any other matching rule that sorted *exactly the same*, according to `.sort()`.\n // - Choose the rule with the highest match weight.\n let best: MatchResult;\n for (let i = 0; i < rules.length; i++) {\n // Stop when there is a 'best' rule and the next rule sorts differently than it.\n if (best && this._sortFn(rules[i], best.rule) !== 0) break;\n\n let current = checkRule(rules[i]);\n // Pick the best MatchResult\n best = (!best || current && current.weight > best.weight) ? current : best;\n }\n\n return best;\n }\n\n /** @inheritdoc */\n sync(evt?) {\n if (evt && evt.defaultPrevented) return;\n\n let router = this._router,\n $url = router.urlService,\n $state = router.stateService;\n\n let url: UrlParts = {\n path: $url.path(), search: $url.search(), hash: $url.hash(),\n };\n\n let best = this.match(url);\n\n let applyResult = pattern([\n [isString, (newurl: string) => $url.url(newurl, true)],\n [TargetState.isDef, (def: TargetStateDef) => $state.go(def.state, def.params, def.options)],\n [is(TargetState), (target: TargetState) => $state.go(target.state(), target.params(), target.options())],\n ]);\n\n applyResult(best && best.rule.handler(best.match, url, router));\n }\n\n /** @inheritdoc */\n listen(enabled?: boolean): Function {\n if (enabled === false) {\n this._stopFn && this._stopFn();\n delete this._stopFn;\n } else {\n return this._stopFn = this._stopFn || this._router.urlService.onChange(evt => this.sync(evt));\n }\n }\n\n /**\n * Internal API.\n * @internalapi\n */\n update(read?: boolean) {\n let $url = this._router.locationService;\n if (read) {\n this.location = $url.path();\n return;\n }\n if ($url.path() === this.location) return;\n\n $url.url(this.location, true);\n }\n\n /**\n * Internal API.\n *\n * Pushes a new location to the browser history.\n *\n * @internalapi\n * @param urlMatcher\n * @param params\n * @param options\n */\n push(urlMatcher: UrlMatcher, params?: RawParams, options?: { replace?: (string|boolean) }) {\n let replace = options && !!options.replace;\n this._router.urlService.url(urlMatcher.format(params || {}), replace);\n }\n\n /**\n * Builds and returns a URL with interpolated parameters\n *\n * #### Example:\n * ```js\n * matcher = $umf.compile(\"/about/:person\");\n * params = { person: \"bob\" };\n * $bob = $urlRouter.href(matcher, params);\n * // $bob == \"/about/bob\";\n * ```\n *\n * @param urlMatcher The [[UrlMatcher]] object which is used as the template of the URL to generate.\n * @param params An object of parameter values to fill the matcher's required parameters.\n * @param options Options object. The options are:\n *\n * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. \"http://www.example.com/fullurl\".\n *\n * @returns Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher`\n */\n href(urlMatcher: UrlMatcher, params?: any, options?: { absolute: boolean }): string {\n let url = urlMatcher.format(params);\n if (url == null) return null;\n\n options = options || { absolute: false };\n\n let cfg = this._router.urlService.config;\n let isHtml5 = cfg.html5Mode();\n if (!isHtml5 && url !== null) {\n url = \"#\" + cfg.hashPrefix() + url;\n }\n url = appendBasePath(url, isHtml5, options.absolute, cfg.baseHref());\n\n if (!options.absolute || !url) {\n return url;\n }\n\n let slash = (!isHtml5 && url ? '/' : ''), port = cfg.port();\n port = (port === 80 || port === 443 ? '' : ':' + port);\n\n return [cfg.protocol(), '://', cfg.host(), port, slash, url].join('');\n }\n\n\n /**\n * Manually adds a URL Rule.\n *\n * Usually, a url rule is added using [[StateDeclaration.url]] or [[when]].\n * This api can be used directly for more control (to register a [[BaseUrlRule]], for example).\n * Rules can be created using [[UrlRouter.urlRuleFactory]], or create manually as simple objects.\n *\n * A rule should have a `match` function which returns truthy if the rule matched.\n * It should also have a `handler` function which is invoked if the rule is the best match.\n *\n * @return a function that deregisters the rule\n */\n rule(rule: UrlRule): Function {\n if (!UrlRuleFactory.isUrlRule(rule)) throw new Error(\"invalid rule\");\n rule.$id = this._id++;\n rule.priority = rule.priority || 0;\n\n this._rules.push(rule);\n this._sorted = false;\n\n return () => this.removeRule(rule);\n }\n\n /** @inheritdoc */\n removeRule(rule): void {\n removeFrom(this._rules, rule);\n }\n\n /** @inheritdoc */\n rules(): UrlRule[] {\n this.ensureSorted();\n return this._rules.slice();\n }\n\n /** @inheritdoc */\n otherwise(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n this._otherwiseFn = this.urlRuleFactory.create(val(true), handlerFn);\n this._sorted = false;\n };\n\n /** @inheritdoc */\n initial(handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n let matchFn: UrlRuleMatchFn = (urlParts, router) =>\n router.globals.transitionHistory.size() === 0 && !!/^\\/?$/.exec(urlParts.path);\n\n this.rule(this.urlRuleFactory.create(matchFn, handlerFn));\n };\n\n /** @inheritdoc */\n when(matcher: (RegExp|UrlMatcher|string), handler: string|UrlRuleHandlerFn, options?: { priority: number }): UrlRule {\n let rule = this.urlRuleFactory.create(matcher, handler);\n if (isDefined(options && options.priority)) rule.priority = options.priority;\n this.rule(rule);\n return rule;\n };\n\n /** @inheritdoc */\n deferIntercept(defer?: boolean) {\n if (defer === undefined) defer = true;\n this.interceptDeferred = defer;\n };\n}\n\nfunction getHandlerFn(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef): UrlRuleHandlerFn {\n if (!isFunction(handler) && !isString(handler) && !is(TargetState)(handler) && !TargetState.isDef(handler)) {\n throw new Error(\"'handler' must be a string, function, TargetState, or have a state: 'newtarget' property\");\n }\n return isFunction(handler) ? handler as UrlRuleHandlerFn : val(handler);\n}\n","/** @module hooks */ /** */\nimport { Transition } from \"../transition/transition\";\nimport { UIRouter } from \"../router\";\nimport { TransitionService } from \"../transition/transitionService\";\n\nfunction addCoreResolvables(trans: Transition) {\n trans.addResolvable({ token: UIRouter, deps: [], resolveFn: () => trans.router, data: trans.router }, \"\");\n trans.addResolvable({ token: Transition, deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$transition$', deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$stateParams', deps: [], resolveFn: () => trans.params(), data: trans.params() }, \"\");\n\n trans.entering().forEach(state => {\n trans.addResolvable({ token: '$state$', deps: [], resolveFn: () => state, data: state }, state);\n });\n}\n\nexport const registerAddCoreResolvables = (transitionService: TransitionService) =>\n transitionService.onCreate({}, addCoreResolvables);\n","/** @module hooks */\n/** for typedoc */\nimport { TransitionStateHookFn } from '../transition/interface';\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { StateDeclaration } from '../state/interface';\nimport { StateObject } from '../state/stateObject';\n\n/**\n * A factory which creates an onEnter, onExit or onRetain transition hook function\n *\n * The returned function invokes the (for instance) state.onEnter hook when the\n * state is being entered.\n *\n * @hidden\n */\nfunction makeEnterExitRetainHook(hookName: string): TransitionStateHookFn {\n return (transition: Transition, state: StateDeclaration) => {\n let _state: StateObject = state.$$state();\n let hookFn: TransitionStateHookFn = _state[hookName];\n return hookFn(transition, state);\n }\n}\n\n/**\n * The [[TransitionStateHookFn]] for onExit\n *\n * When the state is being exited, the state's .onExit function is invoked.\n *\n * Registered using `transitionService.onExit({ exiting: (state) => !!state.onExit }, onExitHook);`\n *\n * See: [[IHookRegistry.onExit]]\n */\nconst onExitHook: TransitionStateHookFn = makeEnterExitRetainHook('onExit');\nexport const registerOnExitHook = (transitionService: TransitionService) =>\n transitionService.onExit({exiting: state => !!state.onExit}, onExitHook);\n\n/**\n * The [[TransitionStateHookFn]] for onRetain\n *\n * When the state was already entered, and is not being exited or re-entered, the state's .onRetain function is invoked.\n *\n * Registered using `transitionService.onRetain({ retained: (state) => !!state.onRetain }, onRetainHook);`\n *\n * See: [[IHookRegistry.onRetain]]\n */\nconst onRetainHook: TransitionStateHookFn = makeEnterExitRetainHook('onRetain');\nexport const registerOnRetainHook = (transitionService: TransitionService) =>\n transitionService.onRetain({retained: state => !!state.onRetain}, onRetainHook);\n\n/**\n * The [[TransitionStateHookFn]] for onEnter\n *\n * When the state is being entered, the state's .onEnter function is invoked.\n *\n * Registered using `transitionService.onEnter({ entering: (state) => !!state.onEnter }, onEnterHook);`\n *\n * See: [[IHookRegistry.onEnter]]\n */\nconst onEnterHook: TransitionStateHookFn = makeEnterExitRetainHook('onEnter');\nexport const registerOnEnterHook = (transitionService: TransitionService) =>\n transitionService.onEnter({entering: state => !!state.onEnter}, onEnterHook);\n\n","/** @module hooks */ /** */\nimport {Transition} from \"../transition/transition\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {StateDeclaration, LazyLoadResult} from \"../state/interface\";\nimport {services} from \"../common/coreservices\";\nimport { StateRule } from \"../url/interface\";\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => System.import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n let router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n let orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n let $url = router.urlService;\n let result = $url.match($url.parts());\n let rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === \"STATE\") {\n let state = (rule as StateRule).state;\n let params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n let promises = transition.entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: (state) => !!state.lazyLoad }, lazyLoadHook);\n\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise {\n let lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = (result) => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = (err) => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] =\n services.$q.when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(state => transition.router.stateRegistry.register(state));\n }\n return result;\n }\n\n return promise;\n}\n","/** @module hooks */ /** */\n\nimport { trace } from '../common/trace';\nimport { Rejection } from '../transition/rejectFactory';\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that skips a transition if it should be ignored\n *\n * This hook is invoked at the end of the onBefore phase.\n *\n * If the transition should be ignored (because no parameter or states changed)\n * then the transition is ignored and not processed.\n */\nfunction ignoredHook(trans: Transition) {\n const ignoredReason = trans._ignoredReason();\n if (!ignoredReason) return;\n\n trace.traceTransitionIgnored(trans);\n\n const pending = trans.router.globals.transition;\n\n // The user clicked a link going back to the *current state* ('A')\n // However, there is also a pending transition in flight (to 'B')\n // Abort the transition to 'B' because the user now wants to be back at 'A'.\n if (ignoredReason === 'SameAsCurrent' && pending) {\n pending.abort();\n }\n\n return Rejection.ignored().toPromise();\n}\n\nexport const registerIgnoredTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, ignoredHook, { priority: -9999 });\n","/** @module hooks */ /** */\n\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that rejects the Transition if it is invalid\n *\n * This hook is invoked at the end of the onBefore phase.\n * If the transition is invalid (for example, param values do not validate)\n * then the transition is rejected.\n */\nfunction invalidTransitionHook(trans: Transition) {\n if (!trans.valid()) {\n throw new Error(trans.error());\n }\n}\n\nexport const registerInvalidTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n LocationConfig, LocationServices, identity, unnestR, isArray, splitEqual, splitHash, splitQuery\n} from \"../common\";\nimport { UIRouter } from \"../router\";\n\nexport const keyValsToObjectR = (accum, [key, val]) => {\n if (!accum.hasOwnProperty(key)) {\n accum[key] = val;\n } else if (isArray(accum[key])) {\n accum[key].push(val);\n } else {\n accum[key] = [accum[key], val]\n }\n return accum;\n};\n\nexport const getParams = (queryString: string): any =>\n queryString.split(\"&\").filter(identity).map(splitEqual).reduce(keyValsToObjectR, {});\n\nexport function parseUrl(url: string) {\n const orEmptyString = x => x || \"\";\n let [beforehash, hash] = splitHash(url).map(orEmptyString);\n let [path, search] = splitQuery(beforehash).map(orEmptyString);\n\n return { path, search, hash, url };\n}\n\nexport const buildUrl = (loc: LocationServices) => {\n let path = loc.path();\n let searchObject = loc.search();\n let hash = loc.hash();\n\n let search = Object.keys(searchObject).map(key => {\n let param = searchObject[key];\n let vals = isArray(param) ? param : [param];\n return vals.map(val => key + \"=\" + val);\n }).reduce(unnestR, []).join(\"&\");\n\n return path + (search ? \"?\" + search : \"\") + (hash ? \"#\" + hash : \"\");\n};\n\nexport function locationPluginFactory(\n name: string,\n isHtml5: boolean,\n serviceClass: { new(router?: UIRouter): LocationServices },\n configurationClass: { new(router?: UIRouter, isHtml5?: boolean): LocationConfig }\n) {\n return function(router: UIRouter) {\n let service = router.locationService = new serviceClass(router);\n let configuration = router.locationConfig = new configurationClass(router, isHtml5);\n\n function dispose(router: UIRouter) {\n router.dispose(service);\n router.dispose(configuration);\n }\n\n return { name, service, configuration, dispose };\n };\n}\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BrowserLocationConfig } from \"./browserLocationConfig\";\nimport { HashLocationService } from \"./hashLocationService\";\nimport { locationPluginFactory } from \"./utils\";\nimport { LocationPlugin, ServicesPlugin } from \"./interface\";\nimport { UIRouter } from \"../router\";\nimport { PushStateLocationService } from \"./pushStateLocationService\";\nimport { MemoryLocationService } from \"./memoryLocationService\";\nimport { MemoryLocationConfig } from \"./memoryLocationConfig\";\nimport { $injector } from \"./injector\";\nimport { $q } from \"./q\";\nimport { services } from \"../common/coreservices\";\n\nexport function servicesPlugin(router: UIRouter): ServicesPlugin {\n services.$injector = $injector;\n services.$q = $q;\n\n return { name: \"vanilla.services\", $q, $injector, dispose: () => null };\n}\n\n/** A `UIRouterPlugin` uses the browser hash to get/set the current location */\nexport const hashLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory('vanilla.hashBangLocation', false, HashLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location using the browser's `location` and `history` apis */\nexport const pushStateLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.pushStateLocation\", true, PushStateLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location from an in-memory object */\nexport const memoryLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.memoryLocation\", false, MemoryLocationService, MemoryLocationConfig);\n","/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n","/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n","/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n","/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the
    directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n","/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n","/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n","/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n","/**\n * @coreapi\n * @module core\n */\n/** \n * Matches state names using glob-like pattern strings.\n *\n * Globs can be used in specific APIs including:\n *\n * - [[StateService.is]]\n * - [[StateService.includes]]\n * - The first argument to Hook Registration functions like [[TransitionService.onStart]]\n * - [[HookMatchCriteria]] and [[HookMatchCriterion]]\n *\n * A `Glob` string is a pattern which matches state names.\n * Nested state names are split into segments (separated by a dot) when processing.\n * The state named `foo.bar.baz` is split into three segments ['foo', 'bar', 'baz']\n *\n * Globs work according to the following rules:\n *\n * ### Exact match:\n *\n * The glob `'A.B'` matches the state named exactly `'A.B'`.\n *\n * | Glob |Matches states named|Does not match state named|\n * |:------------|:--------------------|:---------------------|\n * | `'A'` | `'A'` | `'B'` , `'A.C'` |\n * | `'A.B'` | `'A.B'` | `'A'` , `'A.B.C'` |\n * | `'foo'` | `'foo'` | `'FOO'` , `'foo.bar'`|\n *\n * ### Single star (`*`)\n *\n * A single star (`*`) is a wildcard that matches exactly one segment.\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:---------------------|:--------------------------|\n * | `'*'` | `'A'` , `'Z'` | `'A.B'` , `'Z.Y.X'` |\n * | `'A.*'` | `'A.B'` , `'A.C'` | `'A'` , `'A.B.C'` |\n * | `'A.*.*'` | `'A.B.C'` , `'A.X.Y'`| `'A'`, `'A.B'` , `'Z.Y.X'`|\n *\n * ### Double star (`**`)\n *\n * A double star (`'**'`) is a wildcard that matches *zero or more segments*\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:----------------------------------------------|:----------------------------------|\n * | `'**'` | `'A'` , `'A.B'`, `'Z.Y.X'` | (matches all states) |\n * | `'A.**'` | `'A'` , `'A.B'` , `'A.C.X'` | `'Z.Y.X'` |\n * | `'**.X'` | `'X'` , `'A.X'` , `'Z.Y.X'` | `'A'` , `'A.login.Z'` |\n * | `'A.**.X'` | `'A.X'` , `'A.B.X'` , `'A.B.C.X'` | `'A'` , `'A.B.C'` |\n *\n */\nexport class Glob {\n text: string;\n glob: Array;\n regexp: RegExp;\n\n constructor(text: string) {\n this.text = text;\n this.glob = text.split('.');\n\n let regexpString = this.text.split('.')\n .map(seg => {\n if (seg === '**') return '(?:|(?:\\\\.[^.]*)*)';\n if (seg === '*') return '\\\\.[^.]*';\n return '\\\\.' + seg;\n }).join('');\n\n this.regexp = new RegExp(\"^\" + regexpString + \"$\");\n }\n\n matches(name: string) {\n return this.regexp.test('.' + name);\n }\n\n /** Returns true if the string has glob-like characters in it */\n static is(text: string) {\n return !!/[!,*]+/.exec(text);\n }\n\n /** Returns a glob from the string, or null if the string isn't Glob-like */\n static fromString(text: string) {\n return Glob.is(text) ? new Glob(text) : null;\n }\n}\n","/**\n * @coreapi\n * @module state\n */\n/** for typedoc */\nimport { StateDeclaration, _ViewDeclaration, _StateDeclaration, LazyLoadResult } from \"./interface\";\nimport { defaults, values, find, inherit } from \"../common/common\";\nimport { propEq } from \"../common/hof\";\nimport { Param } from \"../params/param\";\nimport { UrlMatcher } from \"../url/urlMatcher\";\nimport { Resolvable } from \"../resolve/resolvable\";\nimport { TransitionStateHookFn } from \"../transition/interface\";\nimport { TargetState } from \"./targetState\";\nimport { Transition } from \"../transition/transition\";\nimport { Glob } from \"../common/glob\";\nimport { isObject, isFunction } from \"../common/predicates\";\n\n/**\n * Internal representation of a UI-Router state.\n *\n * Instances of this class are created when a [[StateDeclaration]] is registered with the [[StateRegistry]].\n *\n * A registered [[StateDeclaration]] is augmented with a getter ([[StateDeclaration.$$state]]) which returns the corresponding [[StateObject]] object.\n *\n * This class prototypally inherits from the corresponding [[StateDeclaration]].\n * Each of its own properties (i.e., `hasOwnProperty`) are built using builders from the [[StateBuilder]].\n */\nexport class StateObject {\n /** The parent [[StateObject]] */\n public parent: StateObject;\n\n /** The name used to register the state */\n public name: string;\n\n /** Prototypally inherits from [[StateDeclaration.abstract]] */\n public abstract: boolean;\n\n /** Prototypally inherits from [[StateDeclaration.resolve]] */\n public resolve: ({ [key: string]: (string|any[]|Function) }|any[]);\n\n /** A list of [[Resolvable]] objects. The internal representation of [[resolve]]. */\n public resolvables: Resolvable[];\n\n /** Prototypally inherits from [[StateDeclaration.resolvePolicy]] */\n public resolvePolicy: any;\n\n /** A compiled URLMatcher which detects when the state's URL is matched */\n public url: UrlMatcher;\n\n /** The parameters for the state, built from the URL and [[StateDeclaration.params]] */\n public params: { [key: string]: Param };\n\n /**\n * The views for the state.\n * Note: `@uirouter/core` does not register a builder for views.\n * The framework specific code should register a `views` builder.\n */\n public views: { [key: string]: _ViewDeclaration; };\n\n /**\n * The original [[StateDeclaration]] used to build this [[StateObject]].\n * Note: `this` object also prototypally inherits from the `self` declaration object.\n */\n public self: StateDeclaration;\n\n /** The nearest parent [[StateObject]] which has a URL */\n public navigable: StateObject;\n\n /** The parent [[StateObject]] objects from this state up to the root */\n public path: StateObject[];\n\n /**\n * Prototypally inherits from [[StateDeclaration.data]]\n * Note: This is the only field on the [[StateDeclaration]] which is mutated.\n * The definition object's `data` field is replaced with a new object\n * which prototypally inherits from the parent state definition's `data` field.\n */\n public data: any;\n\n /** \n * An object containing the parent States' names as keys and \n * true as their values.\n */\n public includes: { [name: string]: boolean };\n\n /** Prototypally inherits from [[StateDeclaration.onExit]] */\n public onExit: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onRetain]] */\n public onRetain: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onEnter]] */\n public onEnter: TransitionStateHookFn;\n\n /** Prototypally inherits from [[StateDeclaration.lazyLoad]] */\n public lazyLoad: (transition: Transition, state: StateDeclaration) => Promise;\n\n /** Prototypally inherits from [[StateDeclaration.redirectTo]] */\n redirectTo: (\n string |\n (($transition$: Transition) => TargetState) |\n { state: (string|StateDeclaration), params: { [key: string]: any }}\n );\n\n /** @hidden */\n __stateObjectCache: {\n /** Might be null */\n nameGlob?: Glob\n };\n\n\n /** @deprecated use State.create() */\n constructor(config?: StateDeclaration) {\n return StateObject.create(config || {});\n }\n\n /**\n * Create a state object to put the private/internal implementation details onto.\n * The object's prototype chain looks like:\n * (Internal State Object) -> (Copy of State.prototype) -> (State Declaration object) -> (State Declaration's prototype...)\n *\n * @param stateDecl the user-supplied State Declaration\n * @returns {StateObject} an internal State object\n */\n static create(stateDecl: _StateDeclaration): StateObject {\n stateDecl = StateObject.isStateClass(stateDecl) ? new stateDecl() : stateDecl;\n\n let state = inherit(inherit(stateDecl, StateObject.prototype)) as StateObject;\n stateDecl.$$state = () => state;\n state.self = stateDecl;\n state.__stateObjectCache = {\n nameGlob: Glob.fromString(state.name) // might return null\n };\n return state;\n }\n\n /** Predicate which returns true if the object is an class with @State() decorator */\n static isStateClass = (stateDecl: _StateDeclaration): stateDecl is ({ new (): StateDeclaration }) =>\n isFunction(stateDecl) && stateDecl['__uiRouterState'] === true;\n\n /** Predicate which returns true if the object is an internal [[StateObject]] object */\n static isState = (obj: any): obj is StateObject =>\n isObject(obj['__stateObjectCache']);\n\n /**\n * Returns true if the provided parameter is the same state.\n *\n * Compares the identity of the state against the passed value, which is either an object\n * reference to the actual `State` instance, the original definition object passed to\n * `$stateProvider.state()`, or the fully-qualified name.\n *\n * @param ref Can be one of (a) a `State` instance, (b) an object that was passed\n * into `$stateProvider.state()`, (c) the fully-qualified name of a state as a string.\n * @returns Returns `true` if `ref` matches the current `State` instance.\n */\n is(ref: StateObject|StateDeclaration|string): boolean {\n return this === ref || this.self === ref || this.fqn() === ref;\n }\n\n /**\n * @deprecated this does not properly handle dot notation\n * @returns Returns a dot-separated name of the state.\n */\n fqn(): string {\n if (!this.parent || !(this.parent instanceof this.constructor)) return this.name;\n let name = this.parent.fqn();\n return name ? name + \".\" + this.name : this.name;\n }\n\n /**\n * Returns the root node of this state's tree.\n *\n * @returns The root of this state's tree.\n */\n root(): StateObject {\n return this.parent && this.parent.root() || this;\n }\n\n /**\n * Gets the state's `Param` objects\n *\n * Gets the list of [[Param]] objects owned by the state.\n * If `opts.inherit` is true, it also includes the ancestor states' [[Param]] objects.\n * If `opts.matchingKeys` exists, returns only `Param`s whose `id` is a key on the `matchingKeys` object\n *\n * @param opts options\n */\n parameters(opts?: { inherit?: boolean, matchingKeys?: any }): Param[] {\n opts = defaults(opts, { inherit: true, matchingKeys: null });\n let inherited = opts.inherit && this.parent && this.parent.parameters() || [];\n return inherited.concat(values(this.params))\n .filter(param => !opts.matchingKeys || opts.matchingKeys.hasOwnProperty(param.id));\n }\n\n /**\n * Returns a single [[Param]] that is owned by the state\n *\n * If `opts.inherit` is true, it also searches the ancestor states` [[Param]]s.\n * @param id the name of the [[Param]] to return\n * @param opts options\n */\n parameter(id: string, opts: { inherit?: boolean } = {}): Param {\n return (\n this.url && this.url.parameter(id, opts) ||\n find(values(this.params), propEq('id', id)) ||\n opts.inherit && this.parent && this.parent.parameter(id)\n );\n }\n\n toString() {\n return this.fqn();\n }\n}\n","/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @module common\n */\n/** for typedoc */\nimport {IInjectable, Obj} from \"./common\";\nimport { Disposable } from \"../interface\";\nimport { UrlParts } from \"../url/interface\";\n\nexport let notImplemented = (fnname: string) => () => {\n throw new Error(`${fnname}(): No coreservices implementation for UI-Router is loaded.`);\n};\n\nlet services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n strictDi?: boolean;\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\nexport interface LocationServices extends Disposable {\n /**\n * Gets the current url string\n *\n * The URL is normalized using the internal [[path]]/[[search]]/[[hash]] values.\n *\n * For example, the URL may be stored in the hash ([[HashLocationServices]]) or\n * have a base HREF prepended ([[PushStateLocationServices]]).\n *\n * The raw URL in the browser might be:\n *\n * ```\n * http://mysite.com/somepath/index.html#/internal/path/123?param1=foo#anchor\n * ```\n *\n * or\n *\n * ```\n * http://mysite.com/basepath/internal/path/123?param1=foo#anchor\n * ```\n *\n * then this method returns:\n *\n * ```\n * /internal/path/123?param1=foo#anchor\n * ```\n *\n *\n * #### Example:\n * ```js\n * locationServices.url(); // \"/some/path?query=value#anchor\"\n * ```\n *\n * @returns the current value of the url, as a string.\n */\n url(): string;\n\n /**\n * Updates the url, or gets the current url\n *\n * Updates the url, changing it to the value in `newurl`\n *\n * #### Example:\n * ```js\n * locationServices.url(\"/some/path?query=value#anchor\", true);\n * ```\n *\n * @param newurl The new value for the URL.\n * This url should reflect only the new internal [[path]], [[search]], and [[hash]] values.\n * It should not include the protocol, site, port, or base path of an absolute HREF.\n * @param replace When true, replaces the current history entry (instead of appending it) with this new url\n * @param state The history's state object, i.e., pushState (if the LocationServices implementation supports it)\n * @return the url (after potentially being processed)\n */\n url(newurl: string, replace?: boolean, state?: any): string;\n\n /**\n * Gets the path part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `/some/path`\n *\n * @return the path portion of the url\n */\n path(): string;\n\n /**\n * Gets the search part of the current url as an object\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `{ query: 'value' }`\n *\n * @return the search (querystring) portion of the url, as an object\n */\n search(): { [key: string]: any };\n\n /**\n * Gets the hash part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `anchor`\n *\n * @return the hash (anchor) portion of the url\n */\n hash(): string;\n\n /**\n * Registers a url change handler\n *\n * #### Example:\n * ```js\n * let deregisterFn = locationServices.onChange((evt) => console.log(\"url change\", evt));\n * ```\n *\n * @param callback a function that will be called when the url is changing\n * @return a function that de-registers the callback\n */\n onChange(callback: Function): Function;\n}\n\n/**\n * This service returns the location configuration\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n */\nexport interface LocationConfig extends Disposable {\n /**\n * Gets the port, e.g., `80`\n *\n * @return the port number\n */\n port(): number;\n /**\n * Gets the protocol, e.g., `http`\n *\n * @return the protocol\n */\n protocol(): string;\n /**\n * Gets the host, e.g., `localhost`\n *\n * @return the protocol\n */\n host(): string;\n /**\n * Gets the base Href, e.g., `http://localhost/approot/`\n *\n * @return the application's base href\n */\n baseHref(): string;\n /**\n * Returns true when running in pushstate mode\n *\n * @return true when running in pushstate mode\n */\n html5Mode(): boolean;\n /**\n * Gets the hashPrefix (when not running in pushstate mode)\n *\n * If the current url is `http://localhost/app#!/uirouter/path/#anchor`, it returns `!` which is the prefix for the \"hashbang\" portion.\n *\n * @return the hash prefix\n */\n hashPrefix(): string;\n /**\n * Sets the hashPrefix (when not running in pushstate mode)\n *\n * @return the new hash prefix\n */\n hashPrefix(newprefix: string): string;\n}\n\nexport {services};\n","/**\n * @module common\n */ /** for typedoc */\n\nexport class Queue {\n constructor(private _items: T[] = [], private _limit: number = null) { }\n\n enqueue(item: T) {\n let items = this._items;\n items.push(item);\n if (this._limit && items.length > this._limit) items.shift();\n return item;\n }\n\n dequeue(): T {\n if (this.size())\n return this._items.splice(0, 1)[0];\n }\n\n clear(): Array {\n let current = this._items;\n this._items = [];\n return current;\n }\n\n size(): number {\n return this._items.length;\n }\n\n remove(item: T) {\n let idx = this._items.indexOf(item);\n return idx > -1 && this._items.splice(idx, 1)[0];\n }\n\n peekTail(): T {\n return this._items[this._items.length - 1];\n }\n\n peekHead(): T {\n if (this.size())\n return this._items[0];\n }\n}\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\"use strict\";\nimport {extend, silentRejection} from \"../common/common\";\nimport {stringify} from \"../common/strings\";\nimport { is } from '../common/hof';\n\nexport enum RejectType {\n SUPERSEDED = 2, ABORTED = 3, INVALID = 4, IGNORED = 5, ERROR = 6\n}\n\n/** @hidden */ let id = 0;\n\nexport class Rejection {\n $id = id++;\n type: number;\n message: string;\n detail: any;\n redirected: boolean;\n\n constructor(type: number, message?: string, detail?: any) {\n this.type = type;\n this.message = message;\n this.detail = detail;\n }\n\n toString() {\n const detailString = (d: any) => \n d && d.toString !== Object.prototype.toString ? d.toString() : stringify(d);\n let detail = detailString(this.detail);\n let { $id, type, message } = this;\n return `Transition Rejection($id: ${$id} type: ${type}, message: ${message}, detail: ${detail})`;\n }\n\n toPromise(): Promise {\n return extend(silentRejection(this), { _transitionRejection: this });\n }\n\n /** Returns true if the obj is a rejected promise created from the `asPromise` factory */\n static isRejectionPromise(obj: any): boolean {\n return obj && (typeof obj.then === 'function') && is(Rejection)(obj._transitionRejection);\n }\n\n /** Returns a Rejection due to transition superseded */\n static superseded(detail?: any, options?: any): Rejection {\n let message = \"The transition has been superseded by a different transition\";\n let rejection = new Rejection(RejectType.SUPERSEDED, message, detail);\n if (options && options.redirected) {\n rejection.redirected = true;\n }\n return rejection;\n }\n\n /** Returns a Rejection due to redirected transition */\n static redirected(detail?: any): Rejection {\n return Rejection.superseded(detail, { redirected: true });\n }\n\n /** Returns a Rejection due to invalid transition */\n static invalid(detail?: any): Rejection {\n let message = \"This transition is invalid\";\n return new Rejection(RejectType.INVALID, message, detail);\n }\n\n /** Returns a Rejection due to ignored transition */\n static ignored(detail?: any): Rejection {\n let message = \"The transition was ignored\";\n return new Rejection(RejectType.IGNORED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static aborted(detail?: any): Rejection {\n let message = \"The transition has been aborted\";\n return new Rejection(RejectType.ABORTED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static errored(detail?: any): Rejection {\n let message = \"The transition errored\";\n return new Rejection(RejectType.ERROR, message, detail);\n }\n \n /**\n * Returns a Rejection\n *\n * Normalizes a value as a Rejection.\n * If the value is already a Rejection, returns it.\n * Otherwise, wraps and returns the value as a Rejection (Rejection type: ERROR).\n *\n * @returns `detail` if it is already a `Rejection`, else returns an ERROR Rejection.\n */\n static normalize(detail?: Rejection | Error | any): Rejection {\n return is(Rejection)(detail) ? detail : Rejection.errored(detail);\n }\n}\n","/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport {StateDeclaration} from \"../state/interface\";\nimport {Predicate} from \"../common/common\";\n\nimport {Transition} from \"./transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TargetState} from \"../state/targetState\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * The TransitionOptions object can be used to change the behavior of a transition.\n *\n * It is passed as the third argument to [[StateService.go]], [[StateService.transitionTo]].\n * It can also be used with a `uiSref`.\n */\nexport interface TransitionOptions {\n /**\n * This option changes how the Transition interacts with the browser's location bar (URL).\n *\n * - If `true`, it will update the url in the location bar.\n * - If `false`, it will not update the url in the location bar.\n * - If it is the string `\"replace\"`, it will update the url and also replace the last history record.\n *\n * @default `true`\n */\n location ?: (boolean|string);\n\n /**\n * When transitioning to relative path (e.g '`^`'), this option defines which state to be relative from.\n * @default `$state.current`\n */\n relative ?: (string|StateDeclaration|StateObject);\n\n /**\n * This option sets whether or not the transition's parameter values should be inherited from\n * the current parameter values.\n *\n * - If `true`, it will inherit parameter values from the current parameter values.\n * - If `false`, only the parameters which are provided to `transitionTo` will be used.\n *\n * @default `false`\n */\n inherit ?: boolean;\n\n /**\n * @deprecated\n */\n notify ?: boolean;\n\n /**\n * This option may be used to force states which are currently active to reload.\n *\n * During a normal transition, a state is \"retained\" if:\n * - It was previously active\n * - The state's parameter values have not changed\n * - All the parent states' parameter values have not changed\n *\n * Forcing a reload of a state will cause it to be exited and entered, which will:\n * - Refetch that state's resolve data\n * - Exit the state (onExit hook)\n * - Re-enter the state (onEnter hook)\n * - Re-render the views (controllers and templates)\n *\n * - When `true`, the destination state (and all parent states) will be reloaded.\n * - When it is a string and is the name of a state, or when it is a State object,\n * that state and any children states will be reloaded.\n *\n * @default `false`\n */\n reload ?: (boolean|string|StateDeclaration|StateObject);\n /**\n * You can define your own Transition Options inside this property and use them, e.g., from a Transition Hook\n */\n custom ?: any;\n /** @internalapi */\n reloadState ?: (StateObject);\n /** @internalapi\n * If this transition is a redirect, this property should be the original Transition (which was redirected to this one)\n */\n redirectedFrom?: Transition;\n /** @internalapi */\n current ?: () => Transition;\n /** @internalapi */\n source ?: \"sref\" | \"url\" | \"redirect\" | \"otherwise\" | \"unknown\";\n}\n\n/** @internalapi */\nexport interface TransitionHookOptions {\n current ?: () => Transition; //path?\n transition ?: Transition;\n hookType ?: string;\n target ?: any;\n traceData ?: any;\n bind ?: any;\n stateHook ?: boolean;\n}\n\n/**\n * TreeChanges encapsulates the various Paths that are involved in a Transition.\n *\n * Get a TreeChanges object using [[Transition.treeChanges]]\n *\n * A UI-Router Transition is from one Path in a State Tree to another Path. For a given Transition,\n * this object stores the \"to\" and \"from\" paths, as well as subsets of those: the \"retained\",\n * \"exiting\" and \"entering\" paths.\n *\n * Each path in TreeChanges is an array of [[PathNode]] objects. Each PathNode in the array corresponds to a portion\n * of a nested state.\n *\n * For example, if you had a nested state named `foo.bar.baz`, it would have three\n * portions, `foo, bar, baz`. If you transitioned **to** `foo.bar.baz` and inspected the [[TreeChanges.to]]\n * Path, you would find a node in the array for each portion: `foo`, `bar`, and `baz`.\n *\n * ---\n *\n * @todo show visual state tree\n */\nexport interface TreeChanges {\n /** @nodoc */\n [key: string]: PathNode[];\n\n /** The path of nodes in the state tree that the transition is coming *from* */\n from: PathNode[];\n\n /** The path of nodes in the state tree that the transition is going *to* */\n to: PathNode[];\n\n /**\n * The path of active nodes that the transition is retaining.\n *\n * These nodes are neither exited, nor entered.\n * Before and after the transition is successful, these nodes are active.\n */\n retained: PathNode[];\n\n /**\n * The path of previously active nodes that the transition is exiting.\n *\n * After the Transition is successful, these nodes are no longer active.\n *\n * Note that a state that is being reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n exiting: PathNode[];\n\n /**\n * The path of nodes that the transition is entering.\n *\n * After the Transition is successful, these nodes will be active.\n * Because they are entering, they have their resolves fetched, `onEnter` hooks run, and their views\n * (component(s) or controller(s)+template(s)) refreshed.\n *\n * Note that a state that is reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n entering: PathNode[];\n}\n\nexport type IHookRegistration = (matchCriteria: HookMatchCriteria, callback: HookFn, options?: HookRegOptions) => Function;\n\n/**\n * The signature for Transition Hooks.\n *\n * Transition hooks are callback functions that hook into the lifecycle of transitions.\n * As a transition runs, it reaches certain lifecycle events.\n * As each event occurs, the hooks which are registered for the event are called (in priority order).\n *\n * A transition hook may alter a Transition by returning a [[HookResult]].\n *\n * #### See:\n *\n * - [[IHookRegistry.onBefore]]\n * - [[IHookRegistry.onStart]]\n * - [[IHookRegistry.onFinish]]\n * - [[IHookRegistry.onSuccess]]\n * - [[IHookRegistry.onError]]\n *\n * @param transition the current [[Transition]]\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n *\n */\nexport interface TransitionHookFn {\n (transition: Transition) : HookResult;\n}\n\n/**\n * The signature for Transition State Hooks.\n *\n * A function which hooks into a lifecycle event for a specific state.\n *\n * Transition State Hooks are callback functions that hook into the lifecycle events of specific states during a transition.\n * As a transition runs, it may exit some states, retain (keep) states, and enter states.\n * As each lifecycle event occurs, the hooks which are registered for the event and that state are called (in priority order).\n *\n * #### See:\n *\n * - [[IHookRegistry.onExit]]\n * - [[IHookRegistry.onRetain]]\n * - [[IHookRegistry.onEnter]]\n *\n * @param transition the current [[Transition]]\n * @param state the [[StateObject]] that the hook is bound to\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n */\nexport interface TransitionStateHookFn {\n (transition: Transition, state: StateDeclaration) : HookResult;\n}\n\n/**\n * The signature for Transition onCreate Hooks.\n *\n * Transition onCreate Hooks are callbacks that allow customization or preprocessing of\n * a Transition before it is returned from [[TransitionService.create]]\n *\n * @param transition the [[Transition]] that was just created\n * @return a [[Transition]] which will then be returned from [[TransitionService.create]]\n */\nexport interface TransitionCreateHookFn {\n (transition: Transition): void;\n}\n\nexport type HookFn = (TransitionHookFn|TransitionStateHookFn|TransitionCreateHookFn);\n\n/**\n * The return value of a [[TransitionHookFn]] or [[TransitionStateHookFn]]\n *\n * When returned from a [[TransitionHookFn]] or [[TransitionStateHookFn]], these values alter the running [[Transition]]:\n *\n * - `false`: the transition will be cancelled.\n * - [[TargetState]]: the transition will be redirected to the new target state (see: [[StateService.target]])\n * - `Promise`: the transition will wait for the promise to resolve or reject\n * - If the promise is rejected (or resolves to `false`), the transition will be cancelled\n * - If the promise resolves to a [[TargetState]], the transition will be redirected\n * - If the promise resolves to anything else, the transition will resume\n * - Anything else: the transition will resume\n */\nexport type HookResult = (boolean | TargetState | void | Promise);\n\n/**\n * These options may be provided when registering a Transition Hook (such as `onStart`)\n */\nexport interface HookRegOptions {\n /**\n * Sets the priority of the registered hook\n *\n * Hooks of the same type (onBefore, onStart, etc) are invoked in priority order. A hook with a higher priority\n * is invoked before a hook with a lower priority.\n *\n * The default hook priority is 0\n */\n priority?: number;\n\n /**\n * Specifies what `this` is bound to during hook invocation.\n */\n bind?: any;\n\n /**\n * Limits the number of times that the hook will be invoked.\n * Once the hook has been invoked this many times, it is automatically deregistered.\n */\n invokeLimit?: number;\n}\n\n/**\n * This interface specifies the api for registering Transition Hooks. Both the\n * [[TransitionService]] and also the [[Transition]] object itself implement this interface.\n * Note: the Transition object only allows hooks to be registered before the Transition is started.\n */\nexport interface IHookRegistry {\n /**\n * Registers a [[TransitionHookFn]], called *before a transition starts*.\n *\n * Registers a transition lifecycle hook, which is invoked before a transition even begins.\n * This hook can be useful to implement logic which prevents a transition from even starting, such\n * as authentication, redirection\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onBefore` hooks are invoked *before a Transition starts*.\n * No resolves have been fetched yet.\n * Each `onBefore` hook is invoked synchronously, in the same call stack as [[StateService.transitionTo]].\n * The registered `onBefore` hooks are invoked in priority order.\n *\n * Note: during the `onBefore` phase, additional hooks can be added to the specific [[Transition]] instance.\n * These \"on-the-fly\" hooks only affect the currently running transition..\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * If any hook modifies the transition *synchronously* (by throwing, returning `false`, or returning\n * a [[TargetState]]), the remainder of the hooks are skipped.\n * If a hook returns a promise, the remainder of the `onBefore` hooks are still invoked synchronously.\n * All promises are resolved, and processed asynchronously before the `onStart` phase of the Transition.\n *\n * ### Examples\n *\n * #### Default Substate\n *\n * This example redirects any transition from 'home' to 'home.dashboard'. This is commonly referred to as a\n * \"default substate\".\n *\n * @example\n * ```js\n * // ng2\n * transitionService.onBefore({ to: 'home' }, (trans: Transition) =>\n * trans.router.stateService.target(\"home.dashboard\"));\n * ```\n *\n * #### Data Driven Default Substate\n *\n * This example provides data-driven default substate functionality. It matches on a transition to any state\n * which has `defaultSubstate: \"some.sub.state\"` defined. See: [[Transition.to]] which returns the \"to state\"\n * definition.\n *\n * @example\n * ```js\n * // ng1\n * // state declaration\n * {\n * name: 'home',\n * template: '
    ',\n * defaultSubstate: 'home.dashboard'\n * }\n *\n * var criteria = {\n * to: function(state) {\n * return state.defaultSubstate != null;\n * }\n * }\n *\n * $transitions.onBefore(criteria, function(trans: Transition) {\n * var substate = trans.to().defaultSubstate;\n * return trans.router.stateService.target(substate);\n * });\n * ```\n *\n *\n * #### Require authentication\n *\n * This example cancels a transition to a state which requires authentication, if the user is not currently authenticated.\n *\n * This example assumes a state tree where all states which require authentication are children of a parent `'requireauth'` state.\n * This example assumes `MyAuthService` synchronously returns a boolean from `isAuthenticated()`.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onBefore( { to: 'requireauth.**' }, function(trans) {\n * var myAuthService = trans.injector().get('MyAuthService');\n * // If isAuthenticated returns false, the transition is cancelled.\n * return myAuthService.isAuthenticated();\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @returns a function which deregisters the hook.\n */\n onBefore(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called when a transition starts.\n *\n * Registers a transition lifecycle hook, which is invoked as a transition starts running.\n * This hook can be useful to perform some asynchronous action before completing a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onStart` hooks are invoked asynchronously when the Transition starts running.\n * This happens after the `onBefore` phase is complete.\n * At this point, the Transition has not yet exited nor entered any states.\n * The registered `onStart` hooks are invoked in priority order.\n *\n * Note: A built-in `onStart` hook with high priority is used to fetch any eager resolve data.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Example\n *\n * #### Login during transition\n *\n * This example intercepts any transition to a state which requires authentication, when the user is\n * not currently authenticated. It allows the user to authenticate asynchronously, then resumes the\n * transition. If the user did not authenticate successfully, it redirects to the \"guest\" state, which\n * does not require authentication.\n *\n * This example assumes:\n * - a state tree where all states which require authentication are children of a parent `'auth'` state.\n * - `MyAuthService.isAuthenticated()` synchronously returns a boolean.\n * - `MyAuthService.authenticate()` presents a login dialog, and returns a promise which is resolved\n * or rejected, whether or not the login attempt was successful.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onStart( { to: 'auth.**' }, function(trans) {\n * var $state = trans.router.stateService;\n * var MyAuthService = trans.injector().get('MyAuthService');\n *\n * // If the user is not authenticated\n * if (!MyAuthService.isAuthenticated()) {\n *\n * // Then return a promise for a successful login.\n * // The transition will wait for this promise to settle\n *\n * return MyAuthService.authenticate().catch(function() {\n *\n * // If the authenticate() method failed for whatever reason,\n * // redirect to a 'guest' state which doesn't require auth.\n * return $state.target(\"guest\");\n * });\n * }\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onStart(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is entered.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being entered.\n *\n * Since this hook is run only when the specific state is being *entered*, it can be useful for\n * performing tasks when entering a submodule/feature area such as initializing a stateful service,\n * or for guarding access to a submodule/feature area.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onEnter` hooks generally specify `{ entering: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onEnter` hooks are invoked when the Transition is entering a state.\n * States are entered after the `onRetain` phase is complete.\n * If more than one state is being entered, the parent state is entered first.\n * The registered `onEnter` hooks for a state are invoked in priority order.\n *\n * Note: A built-in `onEnter` hook with high priority is used to fetch lazy resolve data for states being entered.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onEnter` hooks using the [[TransitionService]], you may define an `onEnter` hook\n * directly on a state declaration (see: [[StateDeclaration.onEnter]]).\n *\n *\n * ### Examples\n *\n * #### Audit Log\n *\n * This example uses a service to log that a user has entered the admin section of an app.\n * This assumes that there are substates of the \"admin\" state, such as \"admin.users\", \"admin.pages\", etc.\n * @example\n * ```\n *\n * $transitions.onEnter({ entering: 'admin' }, function(transition, state) {\n * var AuditService = trans.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * ```\n *\n * #### Audit Log (inside a state declaration)\n *\n * The `onEnter` inside this state declaration is syntactic sugar for the previous Audit Log example.\n * ```\n * {\n * name: 'admin',\n * component: 'admin',\n * onEnter: function($transition$, $state$) {\n * var AuditService = $transition$.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * }\n * ```\n *\n * Note: A state declaration's `onEnter` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onEnter(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is retained/kept.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) for\n * a specific state that was previously active will remain active (is not being entered nor exited).\n *\n * This hook is invoked when a state is \"retained\" or \"kept\".\n * It means the transition is coming *from* a substate of the retained state *to* a substate of the retained state.\n * This hook can be used to perform actions when the user moves from one substate to another, such as between steps in a wizard.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onRetain` hooks generally specify `{ retained: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onRetain` hooks are invoked after any `onExit` hooks have been fired.\n * If more than one state is retained, the child states' `onRetain` hooks are invoked first.\n * The registered `onRetain` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onRetain` hooks using the [[TransitionService]], you may define an `onRetain` hook\n * directly on a state declaration (see: [[StateDeclaration.onRetain]]).\n *\n * Note: A state declaration's `onRetain` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onRetain(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is exited.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being exited.\n *\n * Since this hook is run only when the specific state is being *exited*, it can be useful for\n * performing tasks when leaving a submodule/feature area such as cleaning up a stateful service,\n * or for preventing the user from leaving a state or submodule until some criteria is satisfied.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onExit` hooks generally specify `{ exiting: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onExit` hooks are invoked when the Transition is exiting a state.\n * States are exited after any `onStart` phase is complete.\n * If more than one state is being exited, the child states are exited first.\n * The registered `onExit` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onExit` hooks using the [[TransitionService]], you may define an `onExit` hook\n * directly on a state declaration (see: [[StateDeclaration.onExit]]).\n *\n * Note: A state declaration's `onExit` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onExit(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called *just before a transition finishes*.\n *\n * Registers a transition lifecycle hook, which is invoked just before a transition finishes.\n * This hook is a last chance to cancel or redirect a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onFinish` hooks are invoked after the `onEnter` phase is complete.\n * These hooks are invoked just before the transition is \"committed\".\n * Each hook is invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onFinish(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a successful transition completed.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition successfully completes.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onSuccess` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If the Transition is successful and its promise is resolved, then the `onSuccess` hooks are invoked.\n * Since these hooks are run after the transition is over, their return value is ignored.\n * The `onSuccess` hooks are invoked in priority order.\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onSuccess(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a transition has errored.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition has been rejected for any reason.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * The `onError` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If a Transition fails, its promise is rejected and the `onError` hooks are invoked.\n * The `onError` hooks are invoked in priority order.\n *\n * Since these hooks are run after the transition is over, their return value is ignored.\n *\n * A transition \"errors\" if it was started, but failed to complete (for any reason).\n * A *non-exhaustive list* of reasons a transition can error:\n *\n * - A transition was cancelled because a new transition started while it was still running (`Transition superseded`)\n * - A transition was cancelled by a Transition Hook returning false\n * - A transition was redirected by a Transition Hook returning a [[TargetState]]\n * - A Transition Hook or resolve function threw an error\n * - A Transition Hook returned a rejected promise\n * - A resolve function returned a rejected promise\n *\n * To check the failure reason, inspect the return value of [[Transition.error]].\n *\n * Note: `onError` should be used for targeted error handling, or error recovery.\n * For simple catch-all error reporting, use [[StateService.defaultErrorHandler]].\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onError(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Returns all the registered hooks of a given `hookName` type\n *\n * #### Example:\n * ```\n * $transitions.getHooks(\"onEnter\")\n * ```\n */\n getHooks(hookName: string): RegisteredHook[];\n\n /** @hidden place to store the hooks */\n _registeredHooks: { [key: string]: RegisteredHook[] };\n}\n\n/** A predicate type which tests if a [[StateObject]] passes some test. Returns a boolean. */\nexport type IStateMatch = Predicate;\n\n/**\n * This object is used to configure whether or not a Transition Hook is invoked for a particular transition,\n * based on the Transition's \"to state\" and \"from state\".\n *\n * Each property (`to`, `from`, `exiting`, `retained`, and `entering`) can be a state [[Glob]] string,\n * a boolean, or a function that takes a state and returns a boolean (see [[HookMatchCriterion]])\n *\n * All properties are optional. If any property is omitted, it is replaced with the value `true`, and always matches.\n * To match any transition, use an empty criteria object `{}`.\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from the `parent` state and going to the `parent.child` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.child'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any substate of `parent` and going directly to the `parent` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any substate of `mymodule`\n * var match = {\n * to: 'mymodule.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any state that has `data.authRequired`\n * // set to a truthy value.\n * var match = {\n * to: function(state) {\n * return state.data != null && state.data.authRequired === true;\n * }\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition that is exiting `parent.child`\n * var match = {\n * exiting: 'parent.child'\n * }\n * ```\n */\nexport interface HookMatchCriteria {\n [key: string]: HookMatchCriterion | undefined;\n\n /** A [[HookMatchCriterion]] to match the destination state */\n to?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match the original (from) state */\n from?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be exiting */\n exiting?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be retained */\n retained?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be entering */\n entering?: HookMatchCriterion;\n}\n\nexport interface IMatchingNodes {\n [key: string]: PathNode[];\n\n to: PathNode[];\n from: PathNode[];\n exiting: PathNode[];\n retained: PathNode[];\n entering: PathNode[];\n}\n\n/** @hidden */\nexport interface RegisteredHooks {\n [key: string]: RegisteredHook[];\n}\n\n/** @hidden */\nexport interface PathTypes {\n [key: string]: PathType;\n\n to: PathType;\n from: PathType;\n exiting: PathType;\n retained: PathType;\n entering: PathType;\n}\n\n/** @hidden */\nexport interface PathType {\n name: string;\n scope: TransitionHookScope;\n}\n\n/**\n * Hook Criterion used to match a transition.\n *\n * A [[Glob]] string that matches the name of a state.\n *\n * Or, a function with the signature `function(state) { return matches; }`\n * which should return a boolean to indicate if a state matches.\n *\n * Or, `true` to always match\n */\nexport type HookMatchCriterion = (string|IStateMatch|boolean)\n\nexport enum TransitionHookPhase { CREATE, BEFORE, RUN, SUCCESS, ERROR }\nexport enum TransitionHookScope { TRANSITION, STATE }\n","/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateDeclaration, StateOrName, TargetStateDef } from \"./interface\";\nimport { TransitionOptions } from \"../transition/interface\";\nimport { StateObject } from \"./stateObject\";\nimport { isString } from \"../common/predicates\";\nimport { stringify } from '../common/strings';\nimport { extend } from '../common';\nimport { StateRegistry } from './stateRegistry';\nimport { RawParams } from '../params';\n\n/**\n * Encapsulate the target (destination) state/params/options of a [[Transition]].\n *\n * This class is frequently used to redirect a transition to a new destination.\n *\n * See:\n *\n * - [[HookResult]]\n * - [[TransitionHookFn]]\n * - [[TransitionService.onStart]]\n *\n * To create a `TargetState`, use [[StateService.target]].\n *\n * ---\n *\n * This class wraps:\n *\n * 1) an identifier for a state\n * 2) a set of parameters\n * 3) and transition options\n * 4) the registered state object (the [[StateDeclaration]])\n *\n * Many UI-Router APIs such as [[StateService.go]] take a [[StateOrName]] argument which can\n * either be a *state object* (a [[StateDeclaration]] or [[StateObject]]) or a *state name* (a string).\n * The `TargetState` class normalizes those options.\n *\n * A `TargetState` may be valid (the state being targeted exists in the registry)\n * or invalid (the state being targeted is not registered).\n */\nexport class TargetState {\n private _definition: StateObject;\n private _params: RawParams;\n private _options: TransitionOptions;\n\n /**\n * The TargetState constructor\n *\n * Note: Do not construct a `TargetState` manually.\n * To create a `TargetState`, use the [[StateService.target]] factory method.\n *\n * @param _stateRegistry The StateRegistry to use to look up the _definition\n * @param _identifier An identifier for a state.\n * Either a fully-qualified state name, or the object used to define the state.\n * @param _params Parameters for the target state\n * @param _options Transition options.\n *\n * @internalapi\n */\n constructor(\n private _stateRegistry: StateRegistry,\n private _identifier: StateOrName,\n _params?: RawParams,\n _options?: TransitionOptions,\n ) {\n this._identifier = _identifier;\n this._params = extend({}, _params || {});\n this._options = extend({}, _options || {});\n this._definition = _stateRegistry.matcher.find(_identifier, this._options.relative);\n }\n\n /** The name of the state this object targets */\n name(): string {\n return this._definition && this._definition.name || this._identifier;\n }\n\n /** The identifier used when creating this TargetState */\n identifier(): StateOrName {\n return this._identifier;\n }\n\n /** The target parameter values */\n params(): RawParams {\n return this._params;\n }\n\n /** The internal state object (if it was found) */\n $state(): StateObject {\n return this._definition;\n }\n\n /** The internal state declaration (if it was found) */\n state(): StateDeclaration {\n return this._definition && this._definition.self;\n }\n\n /** The target options */\n options() {\n return this._options;\n }\n\n /** True if the target state was found */\n exists(): boolean {\n return !!(this._definition && this._definition.self);\n }\n\n /** True if the object is valid */\n valid(): boolean {\n return !this.error();\n }\n\n /** If the object is invalid, returns the reason why */\n error(): string {\n let base = this.options().relative;\n if (!this._definition && !!base) {\n let stateName = base.name ? base.name : base;\n return `Could not resolve '${this.name()}' from state '${stateName}'`;\n }\n if (!this._definition)\n return `No such state '${this.name()}'`;\n if (!this._definition.self)\n return `State '${this.name()}' has an invalid definition`;\n }\n\n toString() {\n return `'${this.name()}'${stringify(this.params())}`;\n }\n\n /** Returns true if the object has a state property that might be a state or state name */\n static isDef = (obj): obj is TargetStateDef =>\n obj && obj.state && (isString(obj.state) || isString(obj.state.name));\n\n /**\n * Returns a copy of this TargetState which targets a different state.\n * The new TargetState has the same parameter values and transition options.\n *\n * @param state The new state that should be targeted\n */\n withState(state: StateOrName): TargetState {\n return new TargetState(this._stateRegistry, state, this._params, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified parameter values.\n *\n * @param params the new parameter values to use\n * @param replace When false (default) the new parameter values will be merged with the current values.\n * When true the parameter values will be used instead of the current values.\n */\n withParams(params: RawParams, replace = false): TargetState {\n const newParams: RawParams = replace ? params : extend({}, this._params, params);\n return new TargetState(this._stateRegistry, this._identifier, newParams, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified Transition Options.\n *\n * @param options the new options to use\n * @param replace When false (default) the new options will be merged with the current options.\n * When true the options will be used instead of the current options.\n */\n withOptions(options: TransitionOptions, replace = false): TargetState {\n const newOpts = replace ? options : extend({}, this._options, options);\n return new TargetState(this._stateRegistry, this._identifier, this._params, newOpts);\n }\n}\n","/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { TransitionHookOptions, HookResult, TransitionHookPhase } from './interface';\nimport { defaults, noop, silentRejection } from '../common/common';\nimport { fnToString, maxLength } from '../common/strings';\nimport { isPromise } from '../common/predicates';\nimport { is, parse } from '../common/hof';\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { Rejection } from './rejectFactory';\nimport { TargetState } from '../state/targetState';\nimport { Transition } from './transition';\nimport { TransitionEventType } from './transitionEventType';\nimport { RegisteredHook } from './hookRegistry';\nimport { StateDeclaration } from '../state/interface';\n\nlet defaultOptions: TransitionHookOptions = {\n current: noop,\n transition: null,\n traceData: {},\n bind: null,\n};\n\nexport type GetResultHandler = (hook: TransitionHook) => ResultHandler;\nexport type GetErrorHandler = (hook: TransitionHook) => ErrorHandler;\n\nexport type ResultHandler = (result: HookResult) => Promise;\nexport type ErrorHandler = (error: any) => Promise;\n\n/** @hidden */\nexport class TransitionHook {\n type: TransitionEventType;\n constructor(private transition: Transition,\n private stateContext: StateDeclaration,\n private registeredHook: RegisteredHook,\n private options: TransitionHookOptions) {\n this.options = defaults(options, defaultOptions);\n this.type = registeredHook.eventType;\n }\n\n /**\n * These GetResultHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetResultHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static HANDLE_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) =>\n hook.handleHookResult(result);\n\n /**\n * If the result is a promise rejection, log it.\n * Otherwise, ignore the result.\n */\n static LOG_REJECTED_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) => {\n isPromise(result) && result.catch(err =>\n hook.logError(Rejection.normalize(err)));\n return undefined;\n }\n\n /**\n * These GetErrorHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetErrorHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static LOG_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n hook.logError(error);\n\n static REJECT_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n silentRejection(error);\n\n static THROW_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) => {\n throw error;\n }\n\n private isSuperseded = () =>\n this.type.hookPhase === TransitionHookPhase.RUN && !this.options.transition.isActive();\n\n logError(err): any {\n this.transition.router.stateService.defaultErrorHandler()(err);\n }\n\n invokeHook(): Promise | void {\n let hook = this.registeredHook;\n if (hook._deregistered) return;\n\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n let options = this.options;\n trace.traceHookInvocation(this, this.transition, options);\n\n const invokeCallback = () =>\n hook.callback.call(options.bind, this.transition, this.stateContext);\n\n const normalizeErr = err =>\n Rejection.normalize(err).toPromise();\n\n const handleError = err =>\n hook.eventType.getErrorHandler(this)(err);\n\n const handleResult = result =>\n hook.eventType.getResultHandler(this)(result);\n\n try {\n let result = invokeCallback();\n\n if (!this.type.synchronous && isPromise(result)) {\n return result.catch(normalizeErr)\n .then(handleResult, handleError);\n } else {\n return handleResult(result);\n }\n } catch (err) {\n // If callback throws (synchronously)\n return handleError(Rejection.normalize(err));\n } finally {\n if (hook.invokeLimit && ++hook.invokeCount >= hook.invokeLimit) {\n hook.deregister();\n }\n }\n }\n\n /**\n * This method handles the return value of a Transition Hook.\n *\n * A hook can return false (cancel), a TargetState (redirect),\n * or a promise (which may later resolve to false or a redirect)\n *\n * This also handles \"transition superseded\" -- when a new transition\n * was started while the hook was still running\n */\n handleHookResult(result: HookResult): Promise {\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n // Hook returned a promise\n if (isPromise(result)) {\n // Wait for the promise, then reprocess with the resulting value\n return result.then(val => this.handleHookResult(val));\n }\n\n trace.traceHookResult(result, this.transition, this.options);\n\n // Hook returned false\n if (result === false) {\n // Abort this Transition\n return Rejection.aborted(\"Hook aborted transition\").toPromise();\n }\n\n const isTargetState = is(TargetState);\n // hook returned a TargetState\n if (isTargetState(result)) {\n // Halt the current Transition and redirect (a new Transition) to the TargetState.\n return Rejection.redirected(result).toPromise();\n }\n }\n\n\n /**\n * Return a Rejection promise if the transition is no longer current due\n * to a stopped router (disposed), or a new transition has started and superseded this one.\n */\n private getNotCurrentRejection() {\n let router = this.transition.router;\n\n // The router is stopped\n if (router._disposed) {\n return Rejection.aborted(`UIRouter instance #${router.$id} has been stopped (disposed)`).toPromise();\n }\n\n if (this.transition._aborted) {\n return Rejection.aborted().toPromise();\n }\n\n // This transition is no longer current.\n // Another transition started while this hook was still running.\n if (this.isSuperseded()) {\n // Abort this transition\n return Rejection.superseded(this.options.current()).toPromise();\n }\n }\n\n toString() {\n let { options, registeredHook } = this;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = fnToString(registeredHook.callback);\n return `${event} context: ${context}, ${maxLength(200, name)}`;\n }\n\n /**\n * Chains together an array of TransitionHooks.\n *\n * Given a list of [[TransitionHook]] objects, chains them together.\n * Each hook is invoked after the previous one completes.\n *\n * #### Example:\n * ```js\n * var hooks: TransitionHook[] = getHooks();\n * let promise: Promise = TransitionHook.chain(hooks);\n *\n * promise.then(handleSuccess, handleError);\n * ```\n *\n * @param hooks the list of hooks to chain together\n * @param waitFor if provided, the chain is `.then()`'ed off this promise\n * @returns a `Promise` for sequentially invoking the hooks (in order)\n */\n static chain(hooks: TransitionHook[], waitFor?: Promise): Promise {\n // Chain the next hook off the previous\n const createHookChainR = (prev: Promise, nextHook: TransitionHook) =>\n prev.then(() => nextHook.invokeHook());\n return hooks.reduce(createHookChainR, waitFor || services.$q.when());\n }\n\n\n /**\n * Invokes all the provided TransitionHooks, in order.\n * Each hook's return value is checked.\n * If any hook returns a promise, then the rest of the hooks are chained off that promise, and the promise is returned.\n * If no hook returns a promise, then all hooks are processed synchronously.\n *\n * @param hooks the list of TransitionHooks to invoke\n * @param doneCallback a callback that is invoked after all the hooks have successfully completed\n *\n * @returns a promise for the async result, or the result of the callback\n */\n static invokeHooks(hooks: TransitionHook[], doneCallback: (result?: HookResult) => T): Promise | T {\n for (let idx = 0; idx < hooks.length; idx++) {\n let hookResult = hooks[idx].invokeHook();\n\n if (isPromise(hookResult)) {\n let remainingHooks = hooks.slice(idx + 1);\n\n return TransitionHook.chain(remainingHooks, hookResult)\n .then(doneCallback);\n }\n }\n\n return doneCallback();\n }\n\n /**\n * Run all TransitionHooks, ignoring their return value.\n */\n static runAllHooks(hooks: TransitionHook[]): void {\n hooks.forEach(hook => hook.invokeHook());\n }\n\n}\n","/** @module path */ /** for typedoc */\nimport {extend, applyPairs, find, allTrueR, pairs, arrayTuples} from \"../common/common\";\nimport {propEq} from \"../common/hof\";\nimport {StateObject} from \"../state/stateObject\";\nimport {RawParams} from \"../params/interface\";\nimport {Param} from \"../params/param\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {ViewConfig} from \"../view/interface\";\n\n/**\n * @internalapi\n *\n * A node in a [[TreeChanges]] path\n *\n * For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.\n * Each PathNode corresponds to a state being entered, exited, or retained.\n * The stateful information includes parameter values and resolve data.\n */\nexport class PathNode {\n /** The state being entered, exited, or retained */\n public state: StateObject;\n /** The parameters declared on the state */\n public paramSchema: Param[];\n /** The parameter values that belong to the state */\n public paramValues: { [key: string]: any };\n /** The individual (stateful) resolvable objects that belong to the state */\n public resolvables: Resolvable[];\n /** The state's declared view configuration objects */\n public views: ViewConfig[];\n\n /** Creates a copy of a PathNode */\n constructor(node: PathNode);\n /** Creates a new (empty) PathNode for a State */\n constructor(state: StateObject);\n constructor(stateOrNode: any) {\n if (stateOrNode instanceof PathNode) {\n let node: PathNode = stateOrNode;\n this.state = node.state;\n this.paramSchema = node.paramSchema.slice();\n this.paramValues = extend({}, node.paramValues);\n this.resolvables = node.resolvables.slice();\n this.views = node.views && node.views.slice();\n } else {\n let state: StateObject = stateOrNode;\n this.state = state;\n this.paramSchema = state.parameters({ inherit: false });\n this.paramValues = {};\n this.resolvables = state.resolvables.map(res => res.clone());\n }\n }\n\n /** Sets [[paramValues]] for the node, from the values of an object hash */\n applyRawParams(params: RawParams): PathNode {\n const getParamVal = (paramDef: Param) => [ paramDef.id, paramDef.value(params[paramDef.id]) ];\n this.paramValues = this.paramSchema.reduce((memo, pDef) => applyPairs(memo, getParamVal(pDef)), {});\n return this;\n }\n\n /** Gets a specific [[Param]] metadata that belongs to the node */\n parameter(name: string): Param {\n return find(this.paramSchema, propEq(\"id\", name));\n }\n\n /**\n * @returns true if the state and parameter values for another PathNode are\n * equal to the state and param values for this PathNode\n */\n equals(node: PathNode, paramsFn?: GetParamsFn): boolean {\n const diff = this.diff(node, paramsFn);\n return diff && diff.length === 0;\n }\n\n /**\n * Finds Params with different parameter values on another PathNode.\n *\n * Given another node (of the same state), finds the parameter values which differ.\n * Returns the [[Param]] (schema objects) whose parameter values differ.\n *\n * Given another node for a different state, returns `false`\n *\n * @param node The node to compare to\n * @param paramsFn A function that returns which parameters should be compared.\n * @returns The [[Param]]s which differ, or null if the two nodes are for different states\n */\n diff(node: PathNode, paramsFn?: GetParamsFn): Param[] | false {\n if (this.state !== node.state) return false;\n\n const params: Param[] = paramsFn ? paramsFn(this) : this.paramSchema;\n return Param.changed(params, this.paramValues, node.paramValues);\n }\n\n /** Returns a clone of the PathNode */\n static clone(node: PathNode) {\n return new PathNode(node);\n }\n}\n\n/** @hidden */\nexport type GetParamsFn = (pathNode: PathNode) => Param[];","/** @module path */ /** for typedoc */\n\nimport {\n extend, find, pick, omit, tail, mergeR, values, unnestR, Predicate, inArray, arrayTuples,\n} from \"../common/common\";\nimport {prop, propEq, not} from \"../common/hof\";\n\nimport {RawParams} from \"../params/interface\";\nimport {TreeChanges} from \"../transition/interface\";\nimport {ViewConfig} from \"../view/interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nimport {StateObject} from \"../state/stateObject\";\nimport {TargetState} from \"../state/targetState\";\nimport {GetParamsFn, PathNode} from \"./pathNode\";\nimport {ViewService} from \"../view/view\";\nimport { Param } from '../params/param';\nimport { StateRegistry } from '../state';\n\n/**\n * This class contains functions which convert TargetStates, Nodes and paths from one type to another.\n */\nexport class PathUtils {\n\n constructor() { }\n\n /** Given a PathNode[], create an TargetState */\n static makeTargetState(registry: StateRegistry, path: PathNode[]): TargetState {\n let state = tail(path).state;\n return new TargetState(registry, state, path.map(prop(\"paramValues\")).reduce(mergeR, {}), {});\n }\n\n static buildPath(targetState: TargetState) {\n let toParams = targetState.params();\n return targetState.$state().path.map(state => new PathNode(state).applyRawParams(toParams));\n }\n\n /** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */\n static buildToPath(fromPath: PathNode[], targetState: TargetState): PathNode[] {\n let toPath: PathNode[] = PathUtils.buildPath(targetState);\n if (targetState.options().inherit) {\n return PathUtils.inheritParams(fromPath, toPath, Object.keys(targetState.params()));\n }\n return toPath;\n }\n\n /**\n * Creates ViewConfig objects and adds to nodes.\n *\n * On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state\n */\n static applyViewConfigs($view: ViewService, path: PathNode[], states: StateObject[]) {\n // Only apply the viewConfigs to the nodes for the given states\n path.filter(node => inArray(states, node.state)).forEach(node => {\n let viewDecls: _ViewDeclaration[] = values(node.state.views || {});\n let subPath = PathUtils.subPath(path, n => n === node);\n let viewConfigs: ViewConfig[][] = viewDecls.map(view => $view.createViewConfig(subPath, view));\n node.views = viewConfigs.reduce(unnestR, []);\n });\n }\n\n /**\n * Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath\n *\n * For a parameter in a node to be inherited from the from path:\n * - The toPath's node must have a matching node in the fromPath (by state).\n * - The parameter name must not be found in the toKeys parameter array.\n *\n * Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some\n * caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,\n * it is not inherited from the fromPath.\n */\n static inheritParams(fromPath: PathNode[], toPath: PathNode[], toKeys: string[] = []): PathNode[] {\n function nodeParamVals(path: PathNode[], state: StateObject): RawParams {\n let node: PathNode = find(path, propEq('state', state));\n return extend({}, node && node.paramValues);\n }\n\n let noInherit = fromPath.map(node => node.paramSchema)\n .reduce(unnestR, [])\n .filter(param => !param.inherit)\n .map(prop('id'));\n\n /**\n * Given an [[PathNode]] \"toNode\", return a new [[PathNode]] with param values inherited from the\n * matching node in fromPath. Only inherit keys that aren't found in \"toKeys\" from the node in \"fromPath\"\"\n */\n function makeInheritedParamsNode(toNode: PathNode): PathNode {\n // All param values for the node (may include default key/vals, when key was not found in toParams)\n let toParamVals = extend({}, toNode && toNode.paramValues);\n // limited to only those keys found in toParams\n let incomingParamVals = pick(toParamVals, toKeys);\n toParamVals = omit(toParamVals, toKeys);\n let fromParamVals = omit(nodeParamVals(fromPath, toNode.state) || {}, noInherit);\n // extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals\n let ownParamVals: RawParams = extend(toParamVals, fromParamVals, incomingParamVals);\n return new PathNode(toNode.state).applyRawParams(ownParamVals);\n }\n\n // The param keys specified by the incoming toParams\n return toPath.map(makeInheritedParamsNode);\n }\n\n static nonDynamicParams = (node: PathNode): Param[] =>\n node.state.parameters({ inherit: false })\n .filter(param => !param.dynamic);\n\n /**\n * Computes the tree changes (entering, exiting) between a fromPath and toPath.\n */\n static treeChanges(fromPath: PathNode[], toPath: PathNode[], reloadState: StateObject): TreeChanges {\n let keep = 0, max = Math.min(fromPath.length, toPath.length);\n\n const nodesMatch = (node1: PathNode, node2: PathNode) =>\n node1.equals(node2, PathUtils.nonDynamicParams);\n\n while (keep < max && fromPath[keep].state !== reloadState && nodesMatch(fromPath[keep], toPath[keep])) {\n keep++;\n }\n\n /** Given a retained node, return a new node which uses the to node's param values */\n function applyToParams(retainedNode: PathNode, idx: number): PathNode {\n let cloned = PathNode.clone(retainedNode);\n cloned.paramValues = toPath[idx].paramValues;\n return cloned;\n }\n\n let from: PathNode[], retained: PathNode[], exiting: PathNode[], entering: PathNode[], to: PathNode[];\n\n from = fromPath;\n retained = from.slice(0, keep);\n exiting = from.slice(keep);\n\n // Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped\n let retainedWithToParams = retained.map(applyToParams);\n entering = toPath.slice(keep);\n to = (retainedWithToParams).concat(entering);\n\n return { from, to, retained, exiting, entering };\n }\n\n /**\n * Returns a new path which is: the subpath of the first path which matches the second path.\n *\n * The new path starts from root and contains any nodes that match the nodes in the second path.\n * It stops before the first non-matching node.\n *\n * Nodes are compared using their state property and their parameter values.\n * If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.\n *\n * @param pathA the first path\n * @param pathB the second path\n * @param paramsFn a function which returns the parameters to consider when comparing\n *\n * @returns an array of PathNodes from the first path which match the nodes in the second path\n */\n static matching(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): PathNode[] {\n let done = false;\n let tuples: PathNode[][] = arrayTuples(pathA, pathB);\n return tuples.reduce((matching, [nodeA, nodeB]) => {\n done = done || !nodeA.equals(nodeB, paramsFn);\n return done ? matching : matching.concat(nodeA);\n }, []);\n }\n\n /**\n * Returns true if two paths are identical.\n *\n * @param pathA\n * @param pathB\n * @param paramsFn a function which returns the parameters to consider when comparing\n * @returns true if the the states and parameter values for both paths are identical\n */\n static equals(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): boolean {\n return pathA.length === pathB.length &&\n PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length;\n }\n\n /**\n * Return a subpath of a path, which stops at the first matching node\n *\n * Given an array of nodes, returns a subset of the array starting from the first node,\n * stopping when the first node matches the predicate.\n *\n * @param path a path of [[PathNode]]s\n * @param predicate a [[Predicate]] fn that matches [[PathNode]]s\n * @returns a subpath up to the matching node, or undefined if no match is found\n */\n static subPath(path: PathNode[], predicate: Predicate): PathNode[] {\n let node = find(path, predicate);\n let elementIdx = path.indexOf(node);\n return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);\n }\n\n /** Gets the raw parameter values from a path */\n static paramValues = (path: PathNode[]) =>\n path.reduce((acc, node) => extend(acc, node.paramValues), {});\n}\n","/**\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {extend, equals, inArray, identity} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {trace} from \"../common/trace\";\nimport {ResolvePolicy, ResolvableLiteral, resolvePolicies} from \"./interface\";\n\nimport {ResolveContext} from \"./resolveContext\";\nimport {stringify} from \"../common/strings\";\nimport {isFunction, isObject} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport { isNullOrUndefined } from '../common';\n\n\n// TODO: explicitly make this user configurable\nexport let defaultResolvePolicy: ResolvePolicy = {\n when: \"LAZY\",\n async: \"WAIT\"\n};\n\n/**\n * The basic building block for the resolve system.\n *\n * Resolvables encapsulate a state's resolve's resolveFn, the resolveFn's declared dependencies, the wrapped (.promise),\n * and the unwrapped-when-complete (.data) result of the resolveFn.\n *\n * Resolvable.get() either retrieves the Resolvable's existing promise, or else invokes resolve() (which invokes the\n * resolveFn) and returns the resulting promise.\n *\n * Resolvable.get() and Resolvable.resolve() both execute within a context path, which is passed as the first\n * parameter to those fns.\n */\nexport class Resolvable implements ResolvableLiteral {\n token: any;\n policy: ResolvePolicy;\n resolveFn: Function;\n deps: any[];\n\n data: any;\n resolved: boolean = false;\n promise: Promise = undefined;\n\n /** This constructor creates a Resolvable copy */\n constructor(resolvable: Resolvable)\n\n /** This constructor creates a new Resolvable from the plain old [[ResolvableLiteral]] javascript object */\n constructor(resolvable: ResolvableLiteral)\n\n /**\n * This constructor creates a new `Resolvable`\n *\n * #### Example:\n * ```js\n * var resolvable1 = new Resolvable('mytoken', http => http.get('foo.json').toPromise(), [Http]);\n *\n * var resolvable2 = new Resolvable(UserService, dep => new UserService(dep.data), [SomeDependency]);\n *\n * var resolvable1Clone = new Resolvable(resolvable1);\n * ```\n *\n * @param token The new resolvable's injection token, such as `\"userList\"` (a string) or `UserService` (a class).\n * When this token is used during injection, the resolved value will be injected.\n * @param resolveFn The function that returns the resolved value, or a promise for the resolved value\n * @param deps An array of dependencies, which will be injected into the `resolveFn`\n * @param policy the [[ResolvePolicy]] defines when and how the Resolvable is processed\n * @param data Pre-resolved data. If the resolve value is already known, it may be provided here.\n */\n constructor(token: any, resolveFn: Function, deps?: any[], policy?: ResolvePolicy, data?: any)\n constructor(arg1: any, resolveFn?: Function, deps?: any[], policy?: ResolvePolicy, data?: any) {\n if (arg1 instanceof Resolvable) {\n extend(this, arg1);\n } else if (isFunction(resolveFn)) {\n if (isNullOrUndefined(arg1)) throw new Error(\"new Resolvable(): token argument is required\");\n if (!isFunction(resolveFn)) throw new Error(\"new Resolvable(): resolveFn argument must be a function\");\n\n this.token = arg1;\n this.policy = policy;\n this.resolveFn = resolveFn;\n this.deps = deps || [];\n\n this.data = data;\n this.resolved = data !== undefined;\n this.promise = this.resolved ? services.$q.when(this.data) : undefined;\n } else if (isObject(arg1) && arg1.token && isFunction(arg1.resolveFn)) {\n let literal = arg1;\n return new Resolvable(literal.token, literal.resolveFn, literal.deps, literal.policy, literal.data);\n }\n }\n\n getPolicy(state: StateObject): ResolvePolicy {\n let thisPolicy = this.policy || {};\n let statePolicy = state && state.resolvePolicy || {};\n return {\n when: thisPolicy.when || statePolicy.when || defaultResolvePolicy.when,\n async: thisPolicy.async || statePolicy.async || defaultResolvePolicy.async,\n };\n }\n\n /**\n * Asynchronously resolve this Resolvable's data\n *\n * Given a ResolveContext that this Resolvable is found in:\n * Wait for this Resolvable's dependencies, then invoke this Resolvable's function\n * and update the Resolvable's state\n */\n resolve(resolveContext: ResolveContext, trans?: Transition) {\n let $q = services.$q;\n\n // Gets all dependencies from ResolveContext and wait for them to be resolved\n const getResolvableDependencies = () =>\n $q.all(resolveContext.getDependencies(this).map(resolvable =>\n resolvable.get(resolveContext, trans))) as Promise;\n\n // Invokes the resolve function passing the resolved dependencies as arguments\n const invokeResolveFn = (resolvedDeps: any[]) =>\n this.resolveFn.apply(null, resolvedDeps);\n\n /**\n * For RXWAIT policy:\n *\n * Given an observable returned from a resolve function:\n * - enables .cache() mode (this allows multicast subscribers)\n * - then calls toPromise() (this triggers subscribe() and thus fetches)\n * - Waits for the promise, then return the cached observable (not the first emitted value).\n */\n const waitForRx = (observable$: any) => {\n let cached = observable$.cache(1);\n return cached.take(1).toPromise().then(() => cached);\n };\n\n // If the resolve policy is RXWAIT, wait for the observable to emit something. otherwise pass through.\n let node: PathNode = resolveContext.findNode(this);\n let state: StateObject = node && node.state;\n let maybeWaitForRx = this.getPolicy(state).async === \"RXWAIT\" ? waitForRx : identity;\n\n // After the final value has been resolved, update the state of the Resolvable\n const applyResolvedValue = (resolvedValue: any) => {\n this.data = resolvedValue;\n this.resolved = true;\n trace.traceResolvableResolved(this, trans);\n return this.data;\n };\n\n // Sets the promise property first, then getsResolvableDependencies in the context of the promise chain. Always waits one tick.\n return this.promise = $q.when()\n .then(getResolvableDependencies)\n .then(invokeResolveFn)\n .then(maybeWaitForRx)\n .then(applyResolvedValue);\n }\n\n /**\n * Gets a promise for this Resolvable's data.\n *\n * Fetches the data and returns a promise.\n * Returns the existing promise if it has already been fetched once.\n */\n get(resolveContext: ResolveContext, trans?: Transition): Promise {\n return this.promise || this.resolve(resolveContext, trans);\n }\n\n toString() {\n return `Resolvable(token: ${stringify(this.token)}, requires: [${this.deps.map(stringify)}])`;\n }\n\n clone(): Resolvable {\n return new Resolvable(this);\n }\n \n static fromData = (token: any, data: any) => \n new Resolvable(token, () => data, null, null, data);\n}\n","/**\n * # The Resolve subsystem\n *\n * This subsystem is an asynchronous, hierarchical Dependency Injection system.\n *\n * Typically, resolve is configured on a state using a [[StateDeclaration.resolve]] declaration.\n *\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {Resolvable} from \"./resolvable\";\n\n/**\n * An interface which is similar to an Angular 2 `Provider`\n */\nexport interface ProviderLike {\n provide: any,\n useClass?: any,\n useFactory?: Function,\n useValue?: any,\n useExisting?: any,\n deps?: any[]\n}\n\n/**\n * A plain object used to describe a [[Resolvable]]\n *\n * These objects may be used in the [[StateDeclaration.resolve]] array to declare\n * async data that the state or substates require.\n *\n * #### Example:\n * ```js\n *\n * var state = {\n * name: 'main',\n * resolve: [\n * { token: 'myData', deps: [MyDataApi], resolveFn: (myDataApi) => myDataApi.getData() },\n * ],\n * }\n * ```\n */\nexport interface ResolvableLiteral {\n /**\n * A Dependency Injection token\n *\n * This Resolvable's DI token.\n * The Resolvable will be injectable elsewhere using the token.\n */\n token: any;\n\n /**\n * A function which fetches the Resolvable's data\n *\n * A function which returns one of:\n *\n * - The resolved value (synchronously)\n * - A promise for the resolved value\n * - An Observable of the resolved value(s)\n *\n * This function will be provided the dependencies listed in [[deps]] as its arguments.\n * The resolve system will asynchronously fetch the dependencies before invoking this function.\n */\n resolveFn: Function;\n\n /**\n * Defines the Resolve Policy\n *\n * A policy that defines when to invoke the resolve,\n * and whether to wait for async and unwrap the data\n */\n policy?: ResolvePolicy;\n\n /**\n * The Dependency Injection tokens\n *\n * This is an array of Dependency Injection tokens for the dependencies of the [[resolveFn]].\n *\n * The DI tokens are references to other `Resolvables`, or to other\n * services from the native DI system.\n */\n deps?: any[];\n\n /** Pre-resolved data. */\n data?: any\n}\n\n/**\n * Defines how a resolve is processed during a transition\n *\n * This object is the [[StateDeclaration.resolvePolicy]] property.\n *\n * #### Example:\n * ```js\n * // Fetched when the resolve's state is being entered.\n * // Wait for the promise to resolve.\n * var policy1 = { when: \"LAZY\", async: \"WAIT\" }\n *\n * // Fetched when the Transition is starting.\n * // Do not wait for the returned promise to resolve.\n * // Inject the raw promise/value\n * var policy2 = { when: \"EAGER\", async: \"NOWAIT\" }\n * ```\n *\n * The policy for a given Resolvable is merged from three sources (highest priority first):\n *\n * - 1) Individual resolve definition\n * - 2) State definition\n * - 3) Global default\n *\n * #### Example:\n * ```js\n * // Wait for an Observable to emit one item.\n * // Since `wait` is not specified, it uses the `wait`\n * // policy defined on the state, or the global default\n * // if no `wait` policy is defined on the state\n * var myResolvablePolicy = { async: \"RXWAIT\" }\n * ```\n */\nexport interface ResolvePolicy {\n /**\n * Defines when a Resolvable is resolved (fetched) during a transition\n *\n * - `LAZY` (default)\n * - Resolved as the resolve's state is being entered\n * - `EAGER`\n * - Resolved as the transition is starting\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched when each state is entered.\n * All of `main` resolves are processed before fetching `main.home` resolves.\n * ```js\n * var state = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n *\n * var state = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n * ```\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched at the same time when the transition starts.\n * This happens earlier in the lifecycle than when states are entered.\n * All of the `main` and `main.home` resolves are fetched as soon as possible.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n *\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n * ```\n */\n when?: PolicyWhen;\n\n /**\n * Determines the unwrapping behavior of asynchronous resolve values.\n *\n * - `WAIT` (default)\n * - If a promise is returned from the resolveFn, wait for the promise before proceeding\n * - The unwrapped value from the promise\n * - `NOWAIT`\n * - If a promise is returned from the resolve, do not wait for the promise.\n * - Any other value returned is wrapped in a promise.\n * - The promise will not be unwrapped.\n * - The promise itself will be provided when the resolve is injected or bound elsewhere.\n * - `RXWAIT`\n * - When an Observable is returned from the resolveFn, wait until the Observable emits at least one item.\n * - The Observable item will not be unwrapped.\n * - The Observable stream itself will be provided when the resolve is injected or bound elsewhere.\n *\n * #### Example:\n * The `Transition` will not wait for the resolve promise(s) from `main` to settle before continuing.\n * Resolves for `main` will be provided to components wrapped in a `Promise`.\n *\n * The `Transition` will wait for the `main.home` resolve promises.\n * Resolved values will be unwrapped before being provided to components.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { async: 'NOWAIT' },\n * }\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { async: 'WAIT' }, // default\n * }\n * ```\n */\n async?: PolicyAsync;\n}\n\nexport type PolicyWhen = \"LAZY\" | \"EAGER\" ;\nexport type PolicyAsync = \"WAIT\" | \"NOWAIT\" | \"RXWAIT\" ;\n\n/** @internalapi */\nexport let resolvePolicies = {\n when: {\n LAZY: \"LAZY\",\n EAGER: \"EAGER\"\n },\n async: {\n WAIT: \"WAIT\",\n NOWAIT: \"NOWAIT\",\n RXWAIT: \"RXWAIT\"\n }\n};\n","/** @module resolve */\n/** for typedoc */\nimport { find, tail, uniqR, unnestR, inArray } from \"../common/common\";\nimport { propEq, not } from \"../common/hof\";\nimport { trace } from \"../common/trace\";\nimport { services, $InjectorLike } from \"../common/coreservices\";\nimport { resolvePolicies, PolicyWhen, ResolvePolicy } from \"./interface\";\nimport { PathNode } from \"../path/pathNode\";\nimport { Resolvable } from \"./resolvable\";\nimport { StateObject } from \"../state/stateObject\";\nimport { PathUtils } from \"../path/pathFactory\";\nimport { stringify } from \"../common/strings\";\nimport { Transition } from \"../transition/transition\";\nimport { UIInjector } from \"../interface\";\nimport { isUndefined } from '../common';\n\nconst whens = resolvePolicies.when;\nconst ALL_WHENS = [whens.EAGER, whens.LAZY];\nconst EAGER_WHENS = [whens.EAGER];\n\nexport const NATIVE_INJECTOR_TOKEN: string = \"Native Injector\";\n\n/**\n * Encapsulates Dependency Injection for a path of nodes\n *\n * UI-Router states are organized as a tree.\n * A nested state has a path of ancestors to the root of the tree.\n * When a state is being activated, each element in the path is wrapped as a [[PathNode]].\n * A `PathNode` is a stateful object that holds things like parameters and resolvables for the state being activated.\n *\n * The ResolveContext closes over the [[PathNode]]s, and provides DI for the last node in the path.\n */\nexport class ResolveContext {\n _injector: UIInjector;\n\n constructor(private _path: PathNode[]) { }\n\n /** Gets all the tokens found in the resolve context, de-duplicated */\n getTokens(): any[] {\n return this._path.reduce((acc, node) => acc.concat(node.resolvables.map(r => r.token)), []).reduce(uniqR, []);\n }\n\n /**\n * Gets the Resolvable that matches the token\n *\n * Gets the last Resolvable that matches the token in this context, or undefined.\n * Throws an error if it doesn't exist in the ResolveContext\n */\n getResolvable(token: any): Resolvable {\n let matching = this._path.map(node => node.resolvables)\n .reduce(unnestR, [])\n .filter((r: Resolvable) => r.token === token);\n return tail(matching);\n }\n\n /** Returns the [[ResolvePolicy]] for the given [[Resolvable]] */\n getPolicy(resolvable: Resolvable): ResolvePolicy {\n let node = this.findNode(resolvable);\n return resolvable.getPolicy(node.state);\n }\n\n /**\n * Returns a ResolveContext that includes a portion of this one\n *\n * Given a state, this method creates a new ResolveContext from this one.\n * The new context starts at the first node (root) and stops at the node for the `state` parameter.\n *\n * #### Why\n *\n * When a transition is created, the nodes in the \"To Path\" are injected from a ResolveContext.\n * A ResolveContext closes over a path of [[PathNode]]s and processes the resolvables.\n * The \"To State\" can inject values from its own resolvables, as well as those from all its ancestor state's (node's).\n * This method is used to create a narrower context when injecting ancestor nodes.\n *\n * @example\n * `let ABCD = new ResolveContext([A, B, C, D]);`\n *\n * Given a path `[A, B, C, D]`, where `A`, `B`, `C` and `D` are nodes for states `a`, `b`, `c`, `d`:\n * When injecting `D`, `D` should have access to all resolvables from `A`, `B`, `C`, `D`.\n * However, `B` should only be able to access resolvables from `A`, `B`.\n *\n * When resolving for the `B` node, first take the full \"To Path\" Context `[A,B,C,D]` and limit to the subpath `[A,B]`.\n * `let AB = ABCD.subcontext(a)`\n */\n subContext(state: StateObject): ResolveContext {\n return new ResolveContext(PathUtils.subPath(this._path, node => node.state === state));\n }\n\n /**\n * Adds Resolvables to the node that matches the state\n *\n * This adds a [[Resolvable]] (generally one created on the fly; not declared on a [[StateDeclaration.resolve]] block).\n * The resolvable is added to the node matching the `state` parameter.\n *\n * These new resolvables are not automatically fetched.\n * The calling code should either fetch them, fetch something that depends on them,\n * or rely on [[resolvePath]] being called when some state is being entered.\n *\n * Note: each resolvable's [[ResolvePolicy]] is merged with the state's policy, and the global default.\n *\n * @param newResolvables the new Resolvables\n * @param state Used to find the node to put the resolvable on\n */\n addResolvables(newResolvables: Resolvable[], state: StateObject) {\n let node = find(this._path, propEq('state', state));\n let keys = newResolvables.map(r => r.token);\n node.resolvables = node.resolvables.filter(r => keys.indexOf(r.token) === -1).concat(newResolvables);\n }\n\n /**\n * Returns a promise for an array of resolved path Element promises\n *\n * @param when\n * @param trans\n * @returns {Promise|any}\n */\n resolvePath(when: PolicyWhen = \"LAZY\", trans?: Transition): Promise<{ token: any, value: any }[]> {\n // This option determines which 'when' policy Resolvables we are about to fetch.\n let whenOption: string = inArray(ALL_WHENS, when) ? when : \"LAZY\";\n // If the caller specified EAGER, only the EAGER Resolvables are fetched.\n // if the caller specified LAZY, both EAGER and LAZY Resolvables are fetched.`\n let matchedWhens = whenOption === resolvePolicies.when.EAGER ? EAGER_WHENS : ALL_WHENS;\n\n // get the subpath to the state argument, if provided\n trace.traceResolvePath(this._path, when, trans);\n\n const matchesPolicy = (acceptedVals: string[], whenOrAsync: \"when\"|\"async\") =>\n (resolvable: Resolvable) =>\n inArray(acceptedVals, this.getPolicy(resolvable)[whenOrAsync]);\n\n // Trigger all the (matching) Resolvables in the path\n // Reduce all the \"WAIT\" Resolvables into an array\n let promises: Promise[] = this._path.reduce((acc, node) => {\n let nodeResolvables = node.resolvables.filter(matchesPolicy(matchedWhens, 'when'));\n let nowait = nodeResolvables.filter(matchesPolicy(['NOWAIT'], 'async'));\n let wait = nodeResolvables.filter(not(matchesPolicy(['NOWAIT'], 'async')));\n\n // For the matching Resolvables, start their async fetch process.\n let subContext = this.subContext(node.state);\n let getResult = (r: Resolvable) => r.get(subContext, trans)\n // Return a tuple that includes the Resolvable's token\n .then(value => ({ token: r.token, value: value }));\n nowait.forEach(getResult);\n return acc.concat(wait.map(getResult));\n }, []);\n\n // Wait for all the \"WAIT\" resolvables\n return services.$q.all(promises);\n }\n\n injector(): UIInjector {\n return this._injector || (this._injector = new UIInjectorImpl(this));\n }\n\n findNode(resolvable: Resolvable): PathNode {\n return find(this._path, (node: PathNode) => inArray(node.resolvables, resolvable));\n }\n\n /**\n * Gets the async dependencies of a Resolvable\n *\n * Given a Resolvable, returns its dependencies as a Resolvable[]\n */\n getDependencies(resolvable: Resolvable): Resolvable[] {\n let node = this.findNode(resolvable);\n // Find which other resolvables are \"visible\" to the `resolvable` argument\n // subpath stopping at resolvable's node, or the whole path (if the resolvable isn't in the path)\n let subPath: PathNode[] = PathUtils.subPath(this._path, x => x === node) || this._path;\n let availableResolvables: Resolvable[] = subPath\n .reduce((acc, _node) => acc.concat(_node.resolvables), []) //all of subpath's resolvables\n .filter(res => res !== resolvable); // filter out the `resolvable` argument\n\n const getDependency = (token: any) => {\n let matching = availableResolvables.filter(r => r.token === token);\n if (matching.length) return tail(matching);\n\n let fromInjector = this.injector().getNative(token);\n if (isUndefined(fromInjector)) {\n throw new Error(\"Could not find Dependency Injection token: \" + stringify(token));\n }\n\n return new Resolvable(token, () => fromInjector, [], fromInjector);\n };\n\n return resolvable.deps.map(getDependency);\n }\n}\n\nclass UIInjectorImpl implements UIInjector {\n native: $InjectorLike;\n\n constructor(public context: ResolveContext) {\n this.native = this.get(NATIVE_INJECTOR_TOKEN) || services.$injector;\n }\n\n get(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) {\n if (this.context.getPolicy(resolvable).async === 'NOWAIT') {\n return resolvable.get(this.context);\n }\n\n if (!resolvable.resolved) {\n throw new Error(\"Resolvable async .get() not complete:\" + stringify(resolvable.token))\n }\n return resolvable.data;\n }\n\n return this.getNative(token);\n }\n\n getAsync(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) return resolvable.get(this.context);\n return services.$q.when(this.native.get(token));\n }\n\n getNative(token: any) {\n return this.native && this.native.get(token);\n }\n}\n","/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { stringify } from '../common/strings';\nimport { map, find, extend, mergeR, tail, omit, arrayTuples, unnestR, identity, anyTrueR } from '../common/common';\nimport {isObject, isUndefined} from '../common/predicates';\nimport { prop, propEq, val, not, is } from '../common/hof';\nimport { StateDeclaration, StateOrName } from '../state/interface';\nimport {\n TransitionOptions, TreeChanges, IHookRegistry, TransitionHookPhase, RegisteredHooks, HookRegOptions,\n HookMatchCriteria, TransitionStateHookFn, TransitionHookFn,\n} from './interface'; // has or is using\nimport { TransitionHook } from './transitionHook';\nimport { matchState, makeEvent, RegisteredHook } from './hookRegistry';\nimport { HookBuilder } from './hookBuilder';\nimport { PathNode } from '../path/pathNode';\nimport { PathUtils } from '../path/pathFactory';\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { RawParams } from '../params/interface';\nimport { ResolvableLiteral } from '../resolve/interface';\n\n/** @hidden */\nconst stateSelf: (_state: StateObject) => StateDeclaration = prop(\"self\");\n\n/**\n * Represents a transition between two states.\n *\n * When navigating to a state, we are transitioning **from** the current state **to** the new state.\n *\n * This object contains all contextual information about the to/from states, parameters, resolves.\n * It has information about all states being entered and exited as a result of the transition.\n */\nexport class Transition implements IHookRegistry {\n\n /** @hidden */\n static diToken = Transition;\n\n /**\n * A unique identifier for the transition.\n *\n * This is an auto incrementing integer, starting from `0`.\n */\n $id: number;\n\n /**\n * A reference to the [[UIRouter]] instance\n *\n * This reference can be used to access the router services, such as the [[StateService]]\n */\n router: UIRouter;\n\n /** @hidden */\n private _deferred = services.$q.defer();\n /**\n * This promise is resolved or rejected based on the outcome of the Transition.\n *\n * When the transition is successful, the promise is resolved\n * When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error\n */\n promise: Promise = this._deferred.promise;\n /**\n * A boolean which indicates if the transition was successful\n *\n * After a successful transition, this value is set to true.\n * After an unsuccessful transition, this value is set to false.\n *\n * The value will be undefined if the transition is not complete\n */\n success: boolean;\n /** @hidden */\n _aborted: boolean;\n /** @hidden */\n private _error: any;\n\n /** @hidden Holds the hook registration functions such as those passed to Transition.onStart() */\n _registeredHooks: RegisteredHooks = { };\n\n /** @hidden */\n private _options: TransitionOptions;\n /** @hidden */\n private _treeChanges: TreeChanges;\n /** @hidden */\n private _targetState: TargetState;\n /** @hidden */\n private _hookBuilder = new HookBuilder(this);\n\n\n /** @hidden */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n\n /** @hidden\n * Creates the transition-level hook registration functions\n * (which can then be used to register hooks)\n */\n private createTransitionHookRegFns() {\n this.router.transitionService._pluginapi._getEvents()\n .filter(type => type.hookPhase !== TransitionHookPhase.CREATE)\n .forEach(type => makeEvent(this, this.router.transitionService, type));\n }\n\n /** @internalapi */\n getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /**\n * Creates a new Transition object.\n *\n * If the target state is not valid, an error is thrown.\n *\n * @internalapi\n *\n * @param fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`\n * encapsulates the \"from state\".\n * @param targetState The target state and parameters being transitioned to (also, the transition options)\n * @param router The [[UIRouter]] instance\n */\n constructor(fromPath: PathNode[], targetState: TargetState, router: UIRouter) {\n this.router = router;\n this._targetState = targetState;\n\n if (!targetState.valid()) {\n throw new Error(targetState.error());\n }\n\n // current() is assumed to come from targetState.options, but provide a naive implementation otherwise.\n this._options = extend({ current: val(this) }, targetState.options());\n this.$id = router.transitionService._transitionCount++;\n let toPath = PathUtils.buildToPath(fromPath, targetState);\n this._treeChanges = PathUtils.treeChanges(fromPath, toPath, this._options.reloadState);\n this.createTransitionHookRegFns();\n\n let onCreateHooks = this._hookBuilder.buildHooksForPhase(TransitionHookPhase.CREATE);\n TransitionHook.invokeHooks(onCreateHooks, () => null);\n\n this.applyViewConfigs(router);\n }\n\n private applyViewConfigs(router: UIRouter) {\n let enteringStates = this._treeChanges.entering.map(node => node.state);\n PathUtils.applyViewConfigs(router.transitionService.$view, this._treeChanges.to, enteringStates);\n }\n\n /**\n * @internalapi\n *\n * @returns the internal from [State] object\n */\n $from() {\n return tail(this._treeChanges.from).state;\n }\n\n /**\n * @internalapi\n *\n * @returns the internal to [State] object\n */\n $to() {\n return tail(this._treeChanges.to).state;\n }\n\n /**\n * Returns the \"from state\"\n *\n * Returns the state that the transition is coming *from*.\n *\n * @returns The state declaration object for the Transition's (\"from state\").\n */\n from(): StateDeclaration {\n return this.$from().self;\n }\n\n /**\n * Returns the \"to state\"\n *\n * Returns the state that the transition is going *to*.\n *\n * @returns The state declaration object for the Transition's target state (\"to state\").\n */\n to(): StateDeclaration {\n return this.$to().self;\n }\n\n /**\n * Gets the Target State\n *\n * A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.\n *\n * @returns the [[TargetState]] of this Transition\n */\n targetState() {\n return this._targetState;\n }\n\n /**\n * Determines whether two transitions are equivalent.\n * @deprecated\n */\n is(compare: (Transition|{to?: any, from?: any})): boolean {\n if (compare instanceof Transition) {\n // TODO: Also compare parameters\n return this.is({ to: compare.$to().name, from: compare.$from().name });\n }\n return !(\n (compare.to && !matchState(this.$to(), compare.to)) ||\n (compare.from && !matchState(this.$from(), compare.from))\n );\n }\n\n /**\n * Gets transition parameter values\n *\n * Returns the parameter values for a transition as key/value pairs.\n * This object is immutable.\n *\n * By default, returns the new parameter values (for the \"to state\").\n * To return the previous parameter values, supply `'from'` as the `pathname` argument.\n *\n * @param pathname the name of the treeChanges path to get parameter values for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n *\n * @returns transition parameter values for the desired path.\n */\n params(pathname?: string): any;\n params(pathname?: string): T;\n params(pathname: string = \"to\") {\n return Object.freeze(this._treeChanges[pathname].map(prop(\"paramValues\")).reduce(mergeR, {}));\n }\n\n\n /**\n * Creates a [[UIInjector]] Dependency Injector\n *\n * Returns a Dependency Injector for the Transition's target state (to state).\n * The injector provides resolve values which the target state has access to.\n *\n * The `UIInjector` can also provide values from the native root/global injector (ng1/ng2).\n *\n * #### Example:\n * ```js\n * .onEnter({ entering: 'myState' }, trans => {\n * var myResolveValue = trans.injector().get('myResolve');\n * // Inject a global service from the global/native injector (if it exists)\n * var MyService = trans.injector().get('MyService');\n * })\n * ```\n *\n * In some cases (such as `onBefore`), you may need access to some resolve data but it has not yet been fetched.\n * You can use [[UIInjector.getAsync]] to get a promise for the data.\n * #### Example:\n * ```js\n * .onBefore({}, trans => {\n * return trans.injector().getAsync('myResolve').then(myResolveValue =>\n * return myResolveValue !== 'ABORT';\n * });\n * });\n * ```\n *\n * If a `state` is provided, the injector that is returned will be limited to resolve values that the provided state has access to.\n * This can be useful if both a parent state `foo` and a child state `foo.bar` have both defined a resolve such as `data`.\n * #### Example:\n * ```js\n * .onEnter({ to: 'foo.bar' }, trans => {\n * // returns result of `foo` state's `data` resolve\n * // even though `foo.bar` also has a `data` resolve\n * var fooData = trans.injector('foo').get('data');\n * });\n * ```\n *\n * If you need resolve data from the exiting states, pass `'from'` as `pathName`.\n * The resolve data from the `from` path will be returned.\n * #### Example:\n * ```js\n * .onExit({ exiting: 'foo.bar' }, trans => {\n * // Gets the resolve value of `data` from the exiting state.\n * var fooData = trans.injector(null, 'foo.bar').get('data');\n * });\n * ```\n *\n *\n * @param state Limits the resolves provided to only the resolves the provided state has access to.\n * @param pathName Default: `'to'`: Chooses the path for which to create the injector. Use this to access resolves for `exiting` states.\n *\n * @returns a [[UIInjector]]\n */\n injector(state?: StateOrName, pathName = \"to\"): UIInjector {\n let path: PathNode[] = this._treeChanges[pathName];\n if (state) path = PathUtils.subPath(path, node => node.state === state || node.state.name === state);\n return new ResolveContext(path).injector();\n }\n\n /**\n * Gets all available resolve tokens (keys)\n *\n * This method can be used in conjunction with [[injector]] to inspect the resolve values\n * available to the Transition.\n *\n * This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states\n * in the Transition's [[TreeChanges.to]] path.\n *\n * #### Example:\n * This example logs all resolve values\n * ```js\n * let tokens = trans.getResolveTokens();\n * tokens.forEach(token => console.log(token + \" = \" + trans.injector().get(token)));\n * ```\n *\n * #### Example:\n * This example creates promises for each resolve value.\n * This triggers fetches of resolves (if any have not yet been fetched).\n * When all promises have all settled, it logs the resolve values.\n * ```js\n * let tokens = trans.getResolveTokens();\n * let promise = tokens.map(token => trans.injector().getAsync(token));\n * Promise.all(promises).then(values => console.log(\"Resolved values: \" + values));\n * ```\n *\n * Note: Angular 1 users whould use `$q.all()`\n *\n * @param pathname resolve context's path name (e.g., `to` or `from`)\n *\n * @returns an array of resolve tokens (keys)\n */\n getResolveTokens(pathname: string = \"to\"): any[] {\n return new ResolveContext(this._treeChanges[pathname]).getTokens();\n }\n\n /**\n * Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.\n *\n * #### Example:\n * ```js\n * transitionService.onBefore({}, transition => {\n * transition.addResolvable({\n * token: 'myResolve',\n * deps: ['MyService'],\n * resolveFn: myService => myService.getData()\n * });\n * });\n * ```\n *\n * @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])\n * @param state the state in the \"to path\" which should receive the new resolve (otherwise, the root state)\n */\n addResolvable(resolvable: Resolvable|ResolvableLiteral, state: StateOrName = \"\"): void {\n resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);\n\n let stateName: string = (typeof state === \"string\") ? state : state.name;\n let topath = this._treeChanges.to;\n let targetNode = find(topath, node => node.state.name === stateName);\n let resolveContext: ResolveContext = new ResolveContext(topath);\n resolveContext.addResolvables([resolvable as Resolvable], targetNode.state);\n }\n\n /**\n * Gets the transition from which this transition was redirected.\n *\n * If the current transition is a redirect, this method returns the transition that was redirected.\n *\n * #### Example:\n * ```js\n * let transitionA = $state.go('A').transition\n * transitionA.onStart({}, () => $state.target('B'));\n * $transitions.onSuccess({ to: 'B' }, (trans) => {\n * trans.to().name === 'B'; // true\n * trans.redirectedFrom() === transitionA; // true\n * });\n * ```\n *\n * @returns The previous Transition, or null if this Transition is not the result of a redirection\n */\n redirectedFrom(): Transition {\n return this._options.redirectedFrom || null;\n }\n\n /**\n * Gets the original transition in a redirect chain\n *\n * A transition might belong to a long chain of multiple redirects.\n * This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.\n *\n * #### Example:\n * ```js\n * // states\n * registry.register({ name: 'A', redirectTo: 'B' });\n * registry.register({ name: 'B', redirectTo: 'C' });\n * registry.register({ name: 'C', redirectTo: 'D' });\n * registry.register({ name: 'D' });\n *\n * let transitionA = $state.go('A').transition\n *\n * $transitions.onSuccess({ to: 'D' }, (trans) => {\n * trans.to().name === 'D'; // true\n * trans.redirectedFrom().to().name === 'C'; // true\n * trans.originalTransition() === transitionA; // true\n * trans.originalTransition().to().name === 'A'; // true\n * });\n * ```\n *\n * @returns The original Transition that started a redirect chain\n */\n originalTransition(): Transition {\n let rf = this.redirectedFrom();\n return (rf && rf.originalTransition()) || this;\n }\n\n /**\n * Get the transition options\n *\n * @returns the options for this Transition.\n */\n options(): TransitionOptions {\n return this._options;\n }\n\n /**\n * Gets the states being entered.\n *\n * @returns an array of states that will be entered during this transition.\n */\n entering(): StateDeclaration[] {\n return map(this._treeChanges.entering, prop('state')).map(stateSelf);\n }\n\n /**\n * Gets the states being exited.\n *\n * @returns an array of states that will be exited during this transition.\n */\n exiting(): StateDeclaration[] {\n return map(this._treeChanges.exiting, prop('state')).map(stateSelf).reverse();\n }\n\n /**\n * Gets the states being retained.\n *\n * @returns an array of states that are already entered from a previous Transition, that will not be\n * exited during this Transition\n */\n retained(): StateDeclaration[] {\n return map(this._treeChanges.retained, prop('state')).map(stateSelf);\n }\n\n /**\n * Get the [[ViewConfig]]s associated with this Transition\n *\n * Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.\n * This method fetches the `ViewConfigs` for a given path in the Transition (e.g., \"to\" or \"entering\").\n *\n * @param pathname the name of the path to fetch views for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n * @param state If provided, only returns the `ViewConfig`s for a single state in the path\n *\n * @returns a list of ViewConfig objects for the given path.\n */\n views(pathname: string = \"entering\", state?: StateObject): ViewConfig[] {\n let path = this._treeChanges[pathname];\n path = !state ? path : path.filter(propEq('state', state));\n return path.map(prop(\"views\")).filter(identity).reduce(unnestR, []);\n }\n\n /**\n * Return the transition's tree changes\n *\n * A transition goes from one state/parameters to another state/parameters.\n * During a transition, states are entered and/or exited.\n *\n * This function returns various branches (paths) which represent the changes to the\n * active state tree that are caused by the transition.\n *\n * @param pathname The name of the tree changes path to get:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n */\n treeChanges(pathname: string): PathNode[];\n treeChanges(): TreeChanges;\n treeChanges(pathname?: string) {\n return pathname ? this._treeChanges[pathname] : this._treeChanges;\n }\n\n /**\n * Creates a new transition that is a redirection of the current one.\n *\n * This transition can be returned from a [[TransitionService]] hook to\n * redirect a transition to a new state and/or set of parameters.\n *\n * @internalapi\n *\n * @returns Returns a new [[Transition]] instance.\n */\n redirect(targetState: TargetState): Transition {\n let redirects = 1, trans: Transition = this;\n while ((trans = trans.redirectedFrom()) != null) {\n if (++redirects > 20) throw new Error(`Too many consecutive Transition redirects (20+)`);\n }\n\n let redirectOpts: TransitionOptions = { redirectedFrom: this, source: \"redirect\" };\n // If the original transition was caused by URL sync, then use { location: 'replace' }\n // on the new transition (unless the target state explicitly specifies location: false).\n // This causes the original url to be replaced with the url for the redirect target\n // so the original url disappears from the browser history.\n if (this.options().source === 'url' && targetState.options().location !== false) {\n redirectOpts.location = 'replace';\n }\n\n let newOptions = extend({}, this.options(), targetState.options(), redirectOpts);\n targetState = targetState.withOptions(newOptions, true);\n\n let newTransition = this.router.transitionService.create(this._treeChanges.from, targetState);\n let originalEnteringNodes = this._treeChanges.entering;\n let redirectEnteringNodes = newTransition._treeChanges.entering;\n\n // --- Re-use resolve data from original transition ---\n // When redirecting from a parent state to a child state where the parent parameter values haven't changed\n // (because of the redirect), the resolves fetched by the original transition are still valid in the\n // redirected transition.\n //\n // This allows you to define a redirect on a parent state which depends on an async resolve value.\n // You can wait for the resolve, then redirect to a child state based on the result.\n // The redirected transition does not have to re-fetch the resolve.\n // ---------------------------------------------------------\n\n const nodeIsReloading = (reloadState: StateObject) => (node: PathNode) => {\n return reloadState && node.state.includes[reloadState.name];\n };\n\n // Find any \"entering\" nodes in the redirect path that match the original path and aren't being reloaded\n let matchingEnteringNodes: PathNode[] = PathUtils.matching(redirectEnteringNodes, originalEnteringNodes, PathUtils.nonDynamicParams)\n .filter(not(nodeIsReloading(targetState.options().reloadState)));\n\n // Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.\n matchingEnteringNodes.forEach((node, idx) => {\n node.resolvables = originalEnteringNodes[idx].resolvables;\n });\n\n return newTransition;\n }\n\n /** @hidden If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */\n private _changedParams(): Param[] {\n let tc = this._treeChanges;\n\n /** Return undefined if it's not a \"dynamic\" transition, for the following reasons */\n // If user explicitly wants a reload\n if (this._options.reload) return undefined;\n // If any states are exiting or entering\n if (tc.exiting.length || tc.entering.length) return undefined;\n // If to/from path lengths differ\n if (tc.to.length !== tc.from.length) return undefined;\n // If the to/from paths are different\n let pathsDiffer: boolean = arrayTuples(tc.to, tc.from)\n .map(tuple => tuple[0].state !== tuple[1].state)\n .reduce(anyTrueR, false);\n if (pathsDiffer) return undefined;\n\n // Find any parameter values that differ\n let nodeSchemas: Param[][] = tc.to.map((node: PathNode) => node.paramSchema);\n let [toValues, fromValues] = [tc.to, tc.from].map(path => path.map(x => x.paramValues));\n let tuples = arrayTuples(nodeSchemas, toValues, fromValues);\n\n return tuples.map(([schema, toVals, fromVals]) => Param.changed(schema, toVals, fromVals)).reduce(unnestR, []);\n }\n\n /**\n * Returns true if the transition is dynamic.\n *\n * A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.\n *\n * @returns true if the Transition is dynamic\n */\n dynamic(): boolean {\n let changes = this._changedParams();\n return !changes ? false : changes.map(x => x.dynamic).reduce(anyTrueR, false);\n }\n\n /**\n * Returns true if the transition is ignored.\n *\n * A transition is ignored if no states are entered nor exited, and no parameter values have changed.\n *\n * @returns true if the Transition is ignored.\n */\n ignored(): boolean {\n return !!this._ignoredReason();\n }\n\n /** @hidden */\n _ignoredReason(): \"SameAsCurrent\"|\"SameAsPending\"|undefined {\n const pending = this.router.globals.transition;\n const reloadState = this._options.reloadState;\n\n const same = (pathA, pathB) => {\n if (pathA.length !== pathB.length) return false;\n const matching = PathUtils.matching(pathA, pathB);\n return pathA.length === matching.filter(node => !reloadState || !node.state.includes[reloadState.name]).length;\n };\n\n let newTC = this.treeChanges();\n let pendTC = pending && pending.treeChanges();\n\n if (pendTC && same(pendTC.to, newTC.to) && same(pendTC.exiting, newTC.exiting)) return \"SameAsPending\";\n if (newTC.exiting.length === 0 && newTC.entering.length === 0 && same(newTC.from, newTC.to)) return \"SameAsCurrent\";\n }\n\n /**\n * Runs the transition\n *\n * This method is generally called from the [[StateService.transitionTo]]\n *\n * @internalapi\n *\n * @returns a promise for a successful transition.\n */\n run(): Promise {\n let runAllHooks = TransitionHook.runAllHooks;\n\n // Gets transition hooks array for the given phase\n const getHooksFor = (phase: TransitionHookPhase) =>\n this._hookBuilder.buildHooksForPhase(phase);\n\n // When the chain is complete, then resolve or reject the deferred\n const transitionSuccess = () => {\n trace.traceSuccess(this.$to(), this);\n this.success = true;\n this._deferred.resolve(this.to());\n runAllHooks(getHooksFor(TransitionHookPhase.SUCCESS));\n };\n\n const transitionError = (reason: any) => {\n trace.traceError(reason, this);\n this.success = false;\n this._deferred.reject(reason);\n this._error = reason;\n runAllHooks(getHooksFor(TransitionHookPhase.ERROR));\n };\n\n const runTransition = () => {\n // Wait to build the RUN hook chain until the BEFORE hooks are done\n // This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.\n let allRunHooks = getHooksFor(TransitionHookPhase.RUN);\n let done = () => services.$q.when(undefined);\n return TransitionHook.invokeHooks(allRunHooks, done);\n };\n\n const startTransition = () => {\n let globals = this.router.globals;\n\n globals.lastStartedTransitionId = this.$id;\n globals.transition = this;\n globals.transitionHistory.enqueue(this);\n\n trace.traceTransitionStart(this);\n\n return services.$q.when(undefined);\n };\n\n let allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);\n TransitionHook.invokeHooks(allBeforeHooks, startTransition)\n .then(runTransition)\n .then(transitionSuccess, transitionError);\n\n return this.promise;\n }\n\n /** Checks if this transition is currently active/running. */\n isActive = () =>\n this.router.globals.transition === this;\n\n /**\n * Checks if the Transition is valid\n *\n * @returns true if the Transition is valid\n */\n valid() {\n return !this.error() || this.success !== undefined;\n }\n\n /**\n * Aborts this transition\n *\n * Imperative API to abort a Transition.\n * This only applies to Transitions that are not yet complete.\n */\n abort() {\n // Do not set flag if the transition is already complete\n if (isUndefined(this.success)) {\n this._aborted = true;\n }\n }\n\n /**\n * The Transition error reason.\n *\n * If the transition is invalid (and could not be run), returns the reason the transition is invalid.\n * If the transition was valid and ran, but was not successful, returns the reason the transition failed.\n *\n * @returns an error message explaining why the transition is invalid, or the reason the transition failed.\n */\n error() {\n let state: StateObject = this.$to();\n\n if (state.self.abstract)\n return `Cannot transition to abstract state '${state.name}'`;\n\n const paramDefs = state.parameters(), values = this.params();\n const invalidParams = paramDefs.filter(param => !param.validates(values[param.id]));\n if (invalidParams.length) {\n return `Param values not valid for state '${state.name}'. Invalid params: [ ${invalidParams.map(param => param.id).join(', ')} ]`;\n }\n\n if (this.success === false)\n return this._error;\n }\n\n /**\n * A string representation of the Transition\n *\n * @returns A string representation of the Transition\n */\n toString () {\n let fromStateOrName = this.from();\n let toStateOrName = this.to();\n\n const avoidEmptyHash = (params: RawParams) =>\n (params[\"#\"] !== null && params[\"#\"] !== undefined) ? params : omit(params, [\"#\"]);\n\n // (X) means the to state is invalid.\n let id = this.$id,\n from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName,\n fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))),\n toValid = this.valid() ? \"\" : \"(X) \",\n to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName,\n toParams = stringify(avoidEmptyHash(this.params()));\n\n return `Transition#${id}( '${from}'${fromParams} -> ${toValid}'${to}'${toParams} )`;\n }\n}\n","/**\n * @coreapi\n * @module params\n */\n/** */\nimport { fromJson, toJson, identity, equals, inherit, map, extend, pick } from \"../common/common\";\nimport { isDefined, isNullOrUndefined } from \"../common/predicates\";\nimport { is } from \"../common/hof\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypeDefinition } from \"./interface\";\n\n/**\n * A registry for parameter types.\n *\n * This registry manages the built-in (and custom) parameter types.\n *\n * The built-in parameter types are:\n *\n * - [[string]]\n * - [[path]]\n * - [[query]]\n * - [[hash]]\n * - [[int]]\n * - [[bool]]\n * - [[date]]\n * - [[json]]\n * - [[any]]\n */\nexport class ParamTypes {\n /** @hidden */\n types: any;\n /** @hidden */\n enqueue: boolean = true;\n /** @hidden */\n typeQueue: any[] = [];\n\n /**\n * Built-in parameter type: `string`\n *\n * This parameter type coerces values to strings.\n * It matches anything (`new RegExp(\".*\")`) in the URL\n */\n static string: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `path`\n *\n * This parameter type is the default type for path parameters.\n * A path parameter is any parameter declared in the path portion of a url\n *\n * - `/foo/:param1/:param2`: two path parameters\n *\n * This parameter type behaves exactly like the [[string]] type with one exception.\n * When matching parameter values in the URL, the `path` type does not match forward slashes `/`.\n *\n * #### Angular 1 note:\n * In ng1, this type is overridden with one that pre-encodes slashes as `~2F` instead of `%2F`.\n * For more details about this angular 1 behavior, see: https://github.com/angular-ui/ui-router/issues/2598\n */\n static path: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `query`\n *\n * This parameter type is the default type for query/search parameters.\n * It behaves the same as the [[string]] parameter type.\n *\n * A query parameter is any parameter declared in the query/search portion of a url\n *\n * - `/bar?param2`: a query parameter\n */\n static query: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `hash`\n *\n * This parameter type is used for the `#` parameter (the hash)\n * It behaves the same as the [[string]] parameter type.\n * @coreapi\n */\n static hash: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `int`\n *\n * This parameter type serializes javascript integers (`number`s which represent an integer) to the URL.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'user',\n * url: '/user/{id:int}'\n * });\n * ```\n * ```js\n * $state.go('user', { id: 1298547 });\n * ```\n *\n * The URL will serialize to: `/user/1298547`.\n *\n * When the parameter value is read, it will be the `number` `1298547`, not the string `\"1298547\"`.\n */\n static int: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `bool`\n *\n * This parameter type serializes `true`/`false` as `1`/`0`\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'inbox',\n * url: '/inbox?{unread:bool}'\n * });\n * ```\n * ```js\n * $state.go('inbox', { unread: true });\n * ```\n *\n * The URL will serialize to: `/inbox?unread=1`.\n *\n * Conversely, if the url is `/inbox?unread=0`, the value of the `unread` parameter will be a `false`.\n */\n static bool: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `date`\n *\n * This parameter type can be used to serialize Javascript dates as parameter values.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'search',\n * url: '/search?{start:date}'\n * });\n * ```\n * ```js\n * $state.go('search', { start: new Date(2000, 0, 1) });\n * ```\n *\n * The URL will serialize to: `/search?start=2000-01-01`.\n *\n * Conversely, if the url is `/search?start=2016-12-25`, the value of the `start` parameter will be a `Date` object where:\n *\n * - `date.getFullYear() === 2016`\n * - `date.getMonth() === 11` (month is 0-based)\n * - `date.getDate() === 25`\n */\n static date: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `json`\n *\n * This parameter type can be used to serialize javascript objects into the URL using JSON serialization.\n *\n * #### Example:\n * This example serializes an plain javascript object to the URL\n * ```js\n * .state({\n * name: 'map',\n * url: '/map/{coords:json}'\n * });\n * ```\n * ```js\n * $state.go('map', { coords: { x: 10399.2, y: 49071 });\n * ```\n *\n * The URL will serialize to: `/map/%7B%22x%22%3A10399.2%2C%22y%22%3A49071%7D`\n */\n static json: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `any`\n *\n * This parameter type is used by default for url-less parameters (parameters that do not appear in the URL).\n * This type does not encode or decode.\n * It is compared using a deep `equals` comparison.\n *\n * #### Example:\n * This example defines a non-url parameter on a [[StateDeclaration]].\n * ```js\n * .state({\n * name: 'new',\n * url: '/new',\n * params: {\n * inrepyto: null\n * }\n * });\n * ```\n * ```js\n * $state.go('new', { inreplyto: currentMessage });\n * ```\n */\n static any: ParamTypeDefinition;\n\n\n /** @internalapi */\n private defaultTypes: any = pick(ParamTypes.prototype, [\"hash\", \"string\", \"query\", \"path\", \"int\", \"bool\", \"date\", \"json\", \"any\"]);\n\n /** @internalapi */\n constructor() {\n // Register default types. Store them in the prototype of this.types.\n const makeType = (definition: ParamTypeDefinition, name: string) =>\n new ParamType(extend({ name }, definition));\n this.types = inherit(map(this.defaultTypes, makeType), {});\n }\n\n /** @internalapi */\n dispose() {\n this.types = {};\n }\n\n /**\n * Registers a parameter type\n *\n * End users should call [[UrlMatcherFactory.type]], which delegates to this method.\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n if (!isDefined(definition)) return this.types[name];\n if (this.types.hasOwnProperty(name)) throw new Error(`A type named '${name}' has already been defined.`);\n\n this.types[name] = new ParamType(extend({ name }, definition));\n\n if (definitionFn) {\n this.typeQueue.push({ name, def: definitionFn });\n if (!this.enqueue) this._flushTypeQueue();\n }\n\n return this;\n }\n\n /** @internalapi */\n _flushTypeQueue() {\n while (this.typeQueue.length) {\n let type = this.typeQueue.shift();\n if (type.pattern) throw new Error(\"You cannot override a type's .pattern at runtime.\");\n extend(this.types[type.name], services.$injector.invoke(type.def));\n }\n }\n}\n\n/** @hidden */\nfunction initDefaultTypes() {\n\n const makeDefaultType = (def) => {\n const valToString = (val: any) =>\n val != null ? val.toString() : val;\n\n const defaultTypeBase = {\n encode: valToString,\n decode: valToString,\n is: is(String),\n pattern: /.*/,\n equals: (a: any, b: any) => a == b, // allow coersion for null/undefined/\"\"\n };\n\n return extend({}, defaultTypeBase, def) as ParamTypeDefinition;\n };\n\n // Default Parameter Type Definitions\n extend(ParamTypes.prototype, {\n string: makeDefaultType({}),\n\n path: makeDefaultType({\n pattern: /[^/]*/,\n }),\n\n query: makeDefaultType({}),\n\n hash: makeDefaultType({\n inherit: false,\n }),\n\n int: makeDefaultType({\n decode: (val: string) => parseInt(val, 10),\n is: function(val: any) {\n return !isNullOrUndefined(val) && this.decode(val.toString()) === val;\n },\n pattern: /-?\\d+/,\n }),\n\n bool: makeDefaultType({\n encode: (val: any) => val && 1 || 0,\n decode: (val: string) => parseInt(val, 10) !== 0,\n is: is(Boolean),\n pattern: /0|1/,\n }),\n\n date: makeDefaultType({\n encode: function(val: any) {\n return !this.is(val) ? undefined : [\n val.getFullYear(),\n ('0' + (val.getMonth() + 1)).slice(-2),\n ('0' + val.getDate()).slice(-2),\n ].join(\"-\");\n },\n decode: function(val: string) {\n if (this.is(val)) return val as Date;\n let match = this.capture.exec(val);\n return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;\n },\n is: (val: any) => val instanceof Date && !isNaN(val.valueOf()),\n equals(l: any, r: any) {\n return ['getFullYear', 'getMonth', 'getDate']\n .reduce((acc, fn) => acc && l[fn]() === r[fn](), true);\n },\n pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,\n capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,\n }),\n\n json: makeDefaultType({\n encode: toJson,\n decode: fromJson,\n is: is(Object),\n equals: equals,\n pattern: /[^/]*/,\n }),\n\n // does not encode/decode\n any: makeDefaultType({\n encode: identity,\n decode: identity,\n is: () => true,\n equals: equals,\n }),\n });\n}\n\ninitDefaultTypes();\n\n","/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, ancestors, Obj} from \"../common/common\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @internalapi */\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n let parents = ancestors($current, $to),\n parentParams: string[],\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (let i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n parentParams = Object.keys(parents[i].params);\n if (!parentParams.length) continue;\n\n for (let j in parentParams) {\n if (inheritList.indexOf(parentParams[j]) >= 0) continue;\n inheritList.push(parentParams[j]);\n inherited[parentParams[j]] = this[parentParams[j]];\n }\n }\n return extend({}, inherited, newParams);\n };\n}\n\n","/** @module state */ /** for typedoc */\nimport {isString} from \"../common/predicates\";\nimport {StateOrName} from \"./interface\";\nimport {StateObject} from \"./stateObject\";\nimport {values} from \"../common/common\";\n\nexport class StateMatcher {\n constructor (private _states: { [key: string]: StateObject }) { }\n \n isRelative(stateName: string) {\n stateName = stateName || \"\";\n return stateName.indexOf(\".\") === 0 || stateName.indexOf(\"^\") === 0;\n }\n\n\n find(stateOrName: StateOrName, base?: StateOrName, matchGlob = true): StateObject {\n if (!stateOrName && stateOrName !== \"\") return undefined;\n let isStr = isString(stateOrName);\n let name: string = isStr ? stateOrName : (stateOrName).name;\n\n if (this.isRelative(name)) name = this.resolvePath(name, base);\n let state = this._states[name];\n\n if (state && (isStr || (!isStr && (state === stateOrName || state.self === stateOrName)))) {\n return state;\n } else if (isStr && matchGlob) {\n let _states = values(this._states);\n let matches = _states.filter(state =>\n state.__stateObjectCache.nameGlob &&\n state.__stateObjectCache.nameGlob.matches(name)\n );\n\n if (matches.length > 1) {\n console.log(`stateMatcher.find: Found multiple matches for ${name} using glob: `, matches.map(match => match.name));\n }\n return matches[0];\n }\n return undefined;\n }\n\n resolvePath(name: string, base: StateOrName) {\n if (!base) throw new Error(`No reference point given for path '${name}'`);\n \n let baseState: StateObject = this.find(base);\n\n let splitName = name.split(\".\"), i = 0, pathLength = splitName.length, current = baseState;\n\n for (; i < pathLength; i++) {\n if (splitName[i] === \"\" && i === 0) {\n current = baseState;\n continue;\n }\n if (splitName[i] === \"^\") {\n if (!current.parent) throw new Error(`Path '${name}' not valid for state '${baseState.name}'`);\n current = current.parent;\n continue;\n }\n break;\n }\n let relName = splitName.slice(i).join(\".\");\n return current.name + (current.name && relName ? \".\" : \"\") + relName;\n }\n}\n","/** @module state */ /** for typedoc */\nimport { inArray } from \"../common/common\";\nimport { isString } from \"../common/predicates\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { StateObject } from \"./stateObject\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateRegistryListener, StateRegistry } from \"./stateRegistry\";\nimport { Disposable } from \"../interface\";\nimport { UrlRouter } from \"../url/urlRouter\";\nimport { prop } from \"../common/hof\";\nimport { StateMatcher } from \"./stateMatcher\";\n\n/** @internalapi */\nexport class StateQueueManager implements Disposable {\n queue: StateObject[];\n matcher: StateMatcher;\n\n constructor(\n private $registry: StateRegistry,\n private $urlRouter: UrlRouter,\n public states: { [key: string]: StateObject; },\n public builder: StateBuilder,\n public listeners: StateRegistryListener[]) {\n this.queue = [];\n this.matcher = $registry.matcher;\n }\n\n /** @internalapi */\n dispose() {\n this.queue = [];\n }\n\n register(stateDecl: _StateDeclaration) {\n let queue = this.queue;\n let state = StateObject.create(stateDecl);\n let name = state.name;\n\n if (!isString(name)) throw new Error(\"State must have a valid name\");\n if (this.states.hasOwnProperty(name) || inArray(queue.map(prop('name')), name))\n throw new Error(`State '${name}' is already defined`);\n\n queue.push(state);\n this.flush();\n\n return state;\n }\n\n flush() {\n let {queue, states, builder} = this;\n let registered: StateObject[] = [], // states that got registered\n orphans: StateObject[] = [], // states that don't yet have a parent registered\n previousQueueLength = {}; // keep track of how long the queue when an orphan was first encountered\n const getState = (name) =>\n this.states.hasOwnProperty(name) && this.states[name];\n\n while (queue.length > 0) {\n let state: StateObject = queue.shift();\n let name = state.name;\n let result: StateObject = builder.build(state);\n let orphanIdx: number = orphans.indexOf(state);\n\n if (result) {\n let existingState = getState(name);\n if (existingState && existingState.name === name) {\n throw new Error(`State '${name}' is already defined`);\n }\n\n let existingFutureState = getState(name + \".**\");\n if (existingFutureState) {\n // Remove future state of the same name\n this.$registry.deregister(existingFutureState);\n }\n\n states[name] = state;\n this.attachRoute(state);\n if (orphanIdx >= 0) orphans.splice(orphanIdx, 1);\n registered.push(state);\n continue;\n }\n\n let prev = previousQueueLength[name];\n previousQueueLength[name] = queue.length;\n if (orphanIdx >= 0 && prev === queue.length) {\n // Wait until two consecutive iterations where no additional states were dequeued successfully.\n // throw new Error(`Cannot register orphaned state '${name}'`);\n queue.push(state);\n return states;\n } else if (orphanIdx < 0) {\n orphans.push(state);\n }\n\n queue.push(state);\n }\n\n if (registered.length) {\n this.listeners.forEach(listener => listener(\"registered\", registered.map(s => s.self)));\n }\n\n return states;\n }\n\n attachRoute(state: StateObject) {\n if (state.abstract || !state.url) return;\n\n this.$urlRouter.rule(this.$urlRouter.urlRuleFactory.create(state));\n }\n}\n","/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateObject } from \"./stateObject\";\nimport { StateMatcher } from \"./stateMatcher\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateQueueManager } from \"./stateQueueManager\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { BuilderFunction } from \"./stateBuilder\";\nimport { StateOrName } from \"./interface\";\nimport { removeFrom } from \"../common/common\";\nimport { UIRouter } from \"../router\";\nimport { propEq } from \"../common/hof\";\n\n/**\n * The signature for the callback function provided to [[StateRegistry.onStatesChanged]].\n *\n * This callback receives two parameters:\n *\n * @param event a string; either \"registered\" or \"deregistered\"\n * @param states the list of [[StateDeclaration]]s that were registered (or deregistered).\n */\nexport type StateRegistryListener = (event: \"registered\"|\"deregistered\", states: StateDeclaration[]) => void;\n\nexport class StateRegistry {\n private _root: StateObject;\n private states: { [key: string]: StateObject } = {};\n\n matcher: StateMatcher;\n private builder: StateBuilder;\n stateQueue: StateQueueManager;\n\n listeners: StateRegistryListener[] = [];\n\n /** @internalapi */\n constructor(private _router: UIRouter) {\n this.matcher = new StateMatcher(this.states);\n this.builder = new StateBuilder(this.matcher, _router.urlMatcherFactory);\n this.stateQueue = new StateQueueManager(this, _router.urlRouter, this.states, this.builder, this.listeners);\n this._registerRoot();\n }\n\n /** @internalapi */\n private _registerRoot() {\n let rootStateDef: StateDeclaration = {\n name: '',\n url: '^',\n views: null,\n params: {\n '#': { value: null, type: 'hash', dynamic: true }\n },\n abstract: true\n };\n\n let _root = this._root = this.stateQueue.register(rootStateDef);\n _root.navigable = null;\n }\n\n /** @internalapi */\n dispose() {\n this.stateQueue.dispose();\n this.listeners = [];\n this.get().forEach(state => this.get(state) && this.deregister(state));\n }\n\n /**\n * Listen for a State Registry events\n *\n * Adds a callback that is invoked when states are registered or deregistered with the StateRegistry.\n *\n * #### Example:\n * ```js\n * let allStates = registry.get();\n *\n * // Later, invoke deregisterFn() to remove the listener\n * let deregisterFn = registry.onStatesChanged((event, states) => {\n * switch(event) {\n * case: 'registered':\n * states.forEach(state => allStates.push(state));\n * break;\n * case: 'deregistered':\n * states.forEach(state => {\n * let idx = allStates.indexOf(state);\n * if (idx !== -1) allStates.splice(idx, 1);\n * });\n * break;\n * }\n * });\n * ```\n *\n * @param listener a callback function invoked when the registered states changes.\n * The function receives two parameters, `event` and `state`.\n * See [[StateRegistryListener]]\n * @return a function that deregisters the listener\n */\n onStatesChanged(listener: StateRegistryListener): () => void {\n this.listeners.push(listener);\n return function deregisterListener() {\n removeFrom(this.listeners)(listener);\n }.bind(this);\n }\n\n /**\n * Gets the implicit root state\n *\n * Gets the root of the state tree.\n * The root state is implicitly created by UI-Router.\n * Note: this returns the internal [[StateObject]] representation, not a [[StateDeclaration]]\n *\n * @return the root [[StateObject]]\n */\n root() {\n return this._root;\n }\n\n /**\n * Adds a state to the registry\n *\n * Registers a [[StateDeclaration]] or queues it for registration.\n *\n * Note: a state will be queued if the state's parent isn't yet registered.\n *\n * @param stateDefinition the definition of the state to register.\n * @returns the internal [[StateObject]] object.\n * If the state was successfully registered, then the object is fully built (See: [[StateBuilder]]).\n * If the state was only queued, then the object is not fully built.\n */\n register(stateDefinition: _StateDeclaration): StateObject {\n return this.stateQueue.register(stateDefinition);\n }\n\n /** @hidden */\n private _deregisterTree(state: StateObject) {\n let all = this.get().map(s => s.$$state());\n const getChildren = (states: StateObject[]) => {\n let children = all.filter(s => states.indexOf(s.parent) !== -1);\n return children.length === 0 ? children : children.concat(getChildren(children));\n };\n\n let children = getChildren([state]);\n let deregistered: StateObject[] = [state].concat(children).reverse();\n\n deregistered.forEach(state => {\n let $ur = this._router.urlRouter;\n // Remove URL rule\n $ur.rules().filter(propEq(\"state\", state)).forEach($ur.removeRule.bind($ur));\n // Remove state from registry\n delete this.states[state.name];\n });\n\n return deregistered;\n }\n\n /**\n * Removes a state from the registry\n *\n * This removes a state from the registry.\n * If the state has children, they are are also removed from the registry.\n *\n * @param stateOrName the state's name or object representation\n * @returns {StateObject[]} a list of removed states\n */\n deregister(stateOrName: StateOrName) {\n let _state = this.get(stateOrName);\n if (!_state) throw new Error(\"Can't deregister state; not found: \" + stateOrName);\n let deregisteredStates = this._deregisterTree(_state.$$state());\n\n this.listeners.forEach(listener => listener(\"deregistered\", deregisteredStates.map(s => s.self)));\n return deregisteredStates;\n }\n\n /**\n * Gets all registered states\n *\n * Calling this method with no arguments will return a list of all the states that are currently registered.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @return a list of [[StateDeclaration]]s\n */\n get(): StateDeclaration[];\n\n /**\n * Gets a registered state\n *\n * Given a state or a name, finds and returns the [[StateDeclaration]] from the registry.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @param stateOrName either the name of a state, or a state object.\n * @param base the base state to use when stateOrName is relative.\n * @return a registered [[StateDeclaration]] that matched the `stateOrName`, or null if the state isn't registered.\n */\n get(stateOrName: StateOrName, base?: StateOrName): StateDeclaration;\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n if (arguments.length === 0)\n return Object.keys(this.states).map(name => this.states[name].self);\n let found = this.matcher.find(stateOrName, base);\n return found && found.self || null;\n }\n\n decorator(name: string, func: BuilderFunction) {\n return this.builder.builder(name, func);\n }\n}\n","/**\n * @internalapi\n * @module url\n */ /** for typedoc */\nimport { forEach, extend } from \"../common/common\";\nimport { isObject, isDefined, isFunction, isString } from \"../common/predicates\";\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { ParamTypeDefinition } from \"../params/interface\";\nimport { Disposable } from \"../interface\";\nimport { ParamType } from \"../params/paramType\";\nimport { ParamFactory, UrlMatcherConfig } from \"./interface\";\n\n/**\n * Factory for [[UrlMatcher]] instances.\n *\n * The factory is available to ng1 services as\n * `$urlMatcherFactory` or ng1 providers as `$urlMatcherFactoryProvider`.\n */\nexport class UrlMatcherFactory implements Disposable, UrlMatcherConfig {\n /** @hidden */ paramTypes = new ParamTypes();\n /** @hidden */ _isCaseInsensitive: boolean = false;\n /** @hidden */ _isStrictMode: boolean = true;\n /** @hidden */ _defaultSquashPolicy: (boolean|string) = false;\n\n constructor() {\n extend(this, { UrlMatcher, Param });\n }\n\n /** @inheritdoc */\n caseInsensitive(value?: boolean): boolean {\n return this._isCaseInsensitive = isDefined(value) ? value : this._isCaseInsensitive;\n }\n\n /** @inheritdoc */\n strictMode(value?: boolean): boolean {\n return this._isStrictMode = isDefined(value) ? value : this._isStrictMode;\n }\n\n /** @inheritdoc */\n defaultSquashPolicy(value?: (boolean|string)) {\n if (isDefined(value) && value !== true && value !== false && !isString(value))\n throw new Error(`Invalid squash policy: ${value}. Valid policies: false, true, arbitrary-string`);\n return this._defaultSquashPolicy = isDefined(value) ? value : this._defaultSquashPolicy;\n }\n\n /** @hidden */\n private _getConfig = (config) =>\n extend({ strict: this._isStrictMode, caseInsensitive: this._isCaseInsensitive }, config);\n\n /**\n * Creates a [[UrlMatcher]] for the specified pattern.\n *\n * @param pattern The URL pattern.\n * @param config The config object hash.\n * @returns The UrlMatcher.\n */\n compile(pattern: string, config?: { [key: string]: any }) {\n return new UrlMatcher(pattern, this.paramTypes, this.paramFactory, this._getConfig(config));\n }\n\n /**\n * Returns true if the specified object is a [[UrlMatcher]], or false otherwise.\n *\n * @param object The object to perform the type check against.\n * @returns `true` if the object matches the `UrlMatcher` interface, by\n * implementing all the same methods.\n */\n isMatcher(object: any): boolean {\n // TODO: typeof?\n if (!isObject(object)) return false;\n let result = true;\n\n forEach(UrlMatcher.prototype, (val, name) => {\n if (isFunction(val)) result = result && (isDefined(object[name]) && isFunction(object[name]));\n });\n return result;\n };\n\n /**\n * Creates and registers a custom [[ParamType]] object\n *\n * A [[ParamType]] can be used to generate URLs with typed parameters.\n *\n * @param name The type name.\n * @param definition The type definition. See [[ParamTypeDefinition]] for information on the values accepted.\n * @param definitionFn A function that is injected before the app runtime starts.\n * The result of this function should be a [[ParamTypeDefinition]].\n * The result is merged into the existing `definition`.\n * See [[ParamType]] for information on the values accepted.\n *\n * @returns - if a type was registered: the [[UrlMatcherFactory]]\n * - if only the `name` parameter was specified: the currently registered [[ParamType]] object, or undefined\n *\n * Note: Register custom types *before using them* in a state definition.\n *\n * See [[ParamTypeDefinition]] for examples\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n let type = this.paramTypes.type(name, definition, definitionFn);\n return !isDefined(definition) ? type : this;\n };\n\n /** @hidden */\n $get() {\n this.paramTypes.enqueue = false;\n this.paramTypes._flushTypeQueue();\n return this;\n };\n\n /** @internalapi Creates a new [[Param]] for a given location (DefType) */\n paramFactory: ParamFactory = {\n /** Creates a new [[Param]] from a CONFIG block */\n fromConfig: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.CONFIG, this),\n\n /** Creates a new [[Param]] from a url PATH */\n fromPath: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.PATH, this),\n\n /** Creates a new [[Param]] from a url SEARCH */\n fromSearch: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.SEARCH, this),\n };\n\n /** @internalapi */\n dispose() {\n this.paramTypes.dispose();\n }\n}\n","/**\n * @coreapi\n * @module url\n */ /** */\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { isString, isDefined, isFunction, isState } from \"../common/predicates\";\nimport { UIRouter } from \"../router\";\nimport { identity, extend } from \"../common/common\";\nimport { is, pattern } from \"../common/hof\";\nimport { StateObject } from \"../state/stateObject\";\nimport { RawParams } from \"../params/interface\";\nimport {\n UrlRule, UrlRuleMatchFn, UrlRuleHandlerFn, UrlRuleType, UrlParts, MatcherUrlRule, StateRule, RegExpRule\n} from \"./interface\";\n\n/**\n * Creates a [[UrlRule]]\n *\n * Creates a [[UrlRule]] from a:\n *\n * - `string`\n * - [[UrlMatcher]]\n * - `RegExp`\n * - [[StateObject]]\n * @internalapi\n */\nexport class UrlRuleFactory {\n constructor(public router: UIRouter) { }\n\n compile(str: string) {\n return this.router.urlMatcherFactory.compile(str);\n }\n\n static isUrlRule = obj =>\n obj && ['type', 'match', 'handler'].every(key => isDefined(obj[key]));\n\n create(what: string|UrlMatcher|StateObject|RegExp|UrlRuleMatchFn, handler?: string|UrlRuleHandlerFn): UrlRule {\n const makeRule = pattern([\n [isString, (_what: string) => makeRule(this.compile(_what))],\n [is(UrlMatcher), (_what: UrlMatcher) => this.fromUrlMatcher(_what, handler)],\n [isState, (_what: StateObject) => this.fromState(_what, this.router)],\n [is(RegExp), (_what: RegExp) => this.fromRegExp(_what, handler)],\n [isFunction, (_what: UrlRuleMatchFn) => new BaseUrlRule(_what, handler as UrlRuleHandlerFn)],\n ]);\n\n let rule = makeRule(what);\n if (!rule) throw new Error(\"invalid 'what' in when()\");\n return rule;\n }\n\n /**\n * A UrlRule which matches based on a UrlMatcher\n *\n * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, match => \"/home/\" + match.fooId + \"/\" + match.barId);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n *\n * ## Handler as UrlMatcher\n *\n * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.\n * The `handler` UrlMatcher is formatted using the matched param from the first matcher.\n * The url is replaced with the result.\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var handler = $umf.compile(\"/home/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, handler);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n */\n fromUrlMatcher(urlMatcher: UrlMatcher, handler: string|UrlMatcher|UrlRuleHandlerFn): MatcherUrlRule {\n let _handler: UrlRuleHandlerFn = handler as any;\n if (isString(handler)) handler = this.router.urlMatcherFactory.compile(handler);\n if (is(UrlMatcher)(handler)) _handler = (match: RawParams) => (handler as UrlMatcher).format(match);\n\n function match(url: UrlParts) {\n let match = urlMatcher.exec(url.path, url.search, url.hash);\n return urlMatcher.validates(match) && match;\n }\n\n // Prioritize URLs, lowest to highest:\n // - Some optional URL parameters, but none matched\n // - No optional parameters in URL\n // - Some optional parameters, some matched\n // - Some optional parameters, all matched\n function matchPriority(params: RawParams): number {\n let optional = urlMatcher.parameters().filter(param => param.isOptional);\n if (!optional.length) return 0.000001;\n let matched = optional.filter(param => params[param.id]);\n return matched.length / optional.length;\n }\n\n let details = { urlMatcher, matchPriority, type: \"URLMATCHER\" };\n return extend(new BaseUrlRule(match, _handler), details) as MatcherUrlRule;\n }\n\n\n /**\n * A UrlRule which matches a state by its url\n *\n * #### Example:\n * ```js\n * var rule = factory.fromState($state.get('foo'), router);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match);\n * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }\n * ```\n */\n fromState(state: StateObject, router: UIRouter): StateRule {\n /**\n * Handles match by transitioning to matched state\n *\n * First checks if the router should start a new transition.\n * A new transition is not required if the current state's URL\n * and the new URL are already identical\n */\n const handler = (match: RawParams) => {\n let $state = router.stateService;\n let globals = router.globals;\n if ($state.href(state, match) !== $state.href(globals.current, globals.params)) {\n $state.transitionTo(state, match, { inherit: true, source: \"url\" });\n }\n };\n\n let details = { state, type: \"STATE\" };\n return extend(this.fromUrlMatcher(state.url, handler), details) as StateRule;\n }\n\n /**\n * A UrlRule which matches based on a regular expression\n *\n * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - regexp match array (from `regexp`)\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, match => \"/home/\" + match[1])\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n *\n * ## Handler as string\n *\n * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.\n * The string is first interpolated using `string.replace()` style pattern.\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, \"/home/$1\")\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n */\n fromRegExp(regexp: RegExp, handler: string|UrlRuleHandlerFn): RegExpRule {\n if (regexp.global || regexp.sticky) throw new Error(\"Rule RegExp must not be global or sticky\");\n\n /**\n * If handler is a string, the url will be replaced by the string.\n * If the string has any String.replace() style variables in it (like `$2`),\n * they will be replaced by the captures from [[match]]\n */\n const redirectUrlTo = (match: RegExpExecArray) =>\n // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern\n (handler as string).replace(/\\$(\\$|\\d{1,2})/, (m, what) =>\n match[what === '$' ? 0 : Number(what)]);\n\n const _handler = isString(handler) ? redirectUrlTo : handler;\n\n const match = (url: UrlParts): RegExpExecArray =>\n regexp.exec(url.path);\n\n let details = { regexp, type: \"REGEXP\" };\n return extend(new BaseUrlRule(match, _handler), details) as RegExpRule\n }\n}\n\n/**\n * A base rule which calls `match`\n *\n * The value from the `match` function is passed through to the `handler`.\n * @internalapi\n */\nexport class BaseUrlRule implements UrlRule {\n $id: number;\n priority: number;\n type: UrlRuleType = \"RAW\";\n handler: UrlRuleHandlerFn;\n matchPriority = (match) => 0 - this.$id;\n\n constructor(public match: UrlRuleMatchFn, handler?: UrlRuleHandlerFn) {\n this.handler = handler || identity;\n }\n}","/**\n * @coreapi\n * @module view\n */ /** for typedoc */\nimport {equals, applyPairs, removeFrom, TypedMap} from \"../common/common\";\nimport {curry, prop} from \"../common/hof\";\nimport {isString, isArray} from \"../common/predicates\";\nimport {trace} from \"../common/trace\";\nimport {PathNode} from \"../path/pathNode\";\n\nimport {ActiveUIView, ViewContext, ViewConfig} from \"./interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nexport type ViewConfigFactory = (path: PathNode[], decl: _ViewDeclaration) => ViewConfig|ViewConfig[];\n\nexport interface ViewServicePluginAPI {\n _rootViewContext(context?: ViewContext): ViewContext;\n _viewConfigFactory(viewType: string, factory: ViewConfigFactory);\n _registeredUIViews(): ActiveUIView[];\n _activeViewConfigs(): ViewConfig[];\n}\n\n/**\n * The View service\n *\n * This service pairs existing `ui-view` components (which live in the DOM)\n * with view configs (from the state declaration objects: [[StateDeclaration.views]]).\n *\n * - After a successful Transition, the views from the newly entered states are activated via [[activateViewConfig]].\n * The views from exited states are deactivated via [[deactivateViewConfig]].\n * (See: the [[registerActivateViews]] Transition Hook)\n *\n * - As `ui-view` components pop in and out of existence, they register themselves using [[registerUIView]].\n *\n * - When the [[sync]] function is called, the registered `ui-view`(s) ([[ActiveUIView]])\n * are configured with the matching [[ViewConfig]](s)\n *\n */\nexport class ViewService {\n private _uiViews: ActiveUIView[] = [];\n private _viewConfigs: ViewConfig[] = [];\n private _rootContext: ViewContext;\n private _viewConfigFactories: { [key: string]: ViewConfigFactory } = {};\n\n constructor() { }\n\n public _pluginapi: ViewServicePluginAPI = {\n _rootViewContext: this._rootViewContext.bind(this),\n _viewConfigFactory: this._viewConfigFactory.bind(this),\n _registeredUIViews: () => this._uiViews,\n _activeViewConfigs: () => this._viewConfigs,\n };\n\n private _rootViewContext(context?: ViewContext): ViewContext {\n return this._rootContext = context || this._rootContext;\n };\n\n private _viewConfigFactory(viewType: string, factory: ViewConfigFactory) {\n this._viewConfigFactories[viewType] = factory;\n }\n\n createViewConfig(path: PathNode[], decl: _ViewDeclaration): ViewConfig[] {\n let cfgFactory = this._viewConfigFactories[decl.$type];\n if (!cfgFactory) throw new Error(\"ViewService: No view config factory registered for type \" + decl.$type);\n let cfgs = cfgFactory(path, decl);\n return isArray(cfgs) ? cfgs : [cfgs];\n }\n \n /**\n * Deactivates a ViewConfig.\n *\n * This function deactivates a `ViewConfig`.\n * After calling [[sync]], it will un-pair from any `ui-view` with which it is currently paired.\n *\n * @param viewConfig The ViewConfig view to deregister.\n */\n deactivateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"<- Removing\", viewConfig);\n removeFrom(this._viewConfigs, viewConfig);\n }\n\n activateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"-> Registering\", viewConfig);\n this._viewConfigs.push(viewConfig);\n }\n\n /**\n * Given a ui-view and a ViewConfig, determines if they \"match\".\n *\n * A ui-view has a fully qualified name (fqn) and a context object. The fqn is built from its overall location in\n * the DOM, describing its nesting relationship to any parent ui-view tags it is nested inside of.\n *\n * A ViewConfig has a target ui-view name and a context anchor. The ui-view name can be a simple name, or\n * can be a segmented ui-view path, describing a portion of a ui-view fqn.\n *\n * In order for a ui-view to match ViewConfig, ui-view's $type must match the ViewConfig's $type\n *\n * If the ViewConfig's target ui-view name is a simple name (no dots), then a ui-view matches if:\n * - the ui-view's name matches the ViewConfig's target name\n * - the ui-view's context matches the ViewConfig's anchor\n *\n * If the ViewConfig's target ui-view name is a segmented name (with dots), then a ui-view matches if:\n * - There exists a parent ui-view where:\n * - the parent ui-view's name matches the first segment (index 0) of the ViewConfig's target name\n * - the parent ui-view's context matches the ViewConfig's anchor\n * - And the remaining segments (index 1..n) of the ViewConfig's target name match the tail of the ui-view's fqn\n *\n * Example:\n *\n * DOM:\n * \n * \n * \n * \n * \n * \n * \n * \n *\n * uiViews: [\n * { fqn: \"$default\", creationContext: { name: \"\" } },\n * { fqn: \"$default.foo\", creationContext: { name: \"A\" } },\n * { fqn: \"$default.foo.$default\", creationContext: { name: \"A.B\" } }\n * { fqn: \"$default.foo.$default.bar\", creationContext: { name: \"A.B.C\" } }\n * ]\n *\n * These four view configs all match the ui-view with the fqn: \"$default.foo.$default.bar\":\n *\n * - ViewConfig1: { uiViewName: \"bar\", uiViewContextAnchor: \"A.B.C\" }\n * - ViewConfig2: { uiViewName: \"$default.bar\", uiViewContextAnchor: \"A.B\" }\n * - ViewConfig3: { uiViewName: \"foo.$default.bar\", uiViewContextAnchor: \"A\" }\n * - ViewConfig4: { uiViewName: \"$default.foo.$default.bar\", uiViewContextAnchor: \"\" }\n *\n * Using ViewConfig3 as an example, it matches the ui-view with fqn \"$default.foo.$default.bar\" because:\n * - The ViewConfig's segmented target name is: [ \"foo\", \"$default\", \"bar\" ]\n * - There exists a parent ui-view (which has fqn: \"$default.foo\") where:\n * - the parent ui-view's name \"foo\" matches the first segment \"foo\" of the ViewConfig's target name\n * - the parent ui-view's context \"A\" matches the ViewConfig's anchor context \"A\"\n * - And the remaining segments [ \"$default\", \"bar\" ].join(\".\"_ of the ViewConfig's target name match\n * the tail of the ui-view's fqn \"default.bar\"\n *\n * @internalapi\n */\n static matches = (uiViewsByFqn: TypedMap, uiView: ActiveUIView) => (viewConfig: ViewConfig) => {\n // Don't supply an ng1 ui-view with an ng2 ViewConfig, etc\n if (uiView.$type !== viewConfig.viewDecl.$type) return false;\n\n // Split names apart from both viewConfig and uiView into segments\n let vc = viewConfig.viewDecl;\n let vcSegments = vc.$uiViewName.split(\".\");\n let uivSegments = uiView.fqn.split(\".\");\n\n // Check if the tails of the segment arrays match. ex, these arrays' tails match:\n // vc: [\"foo\", \"bar\"], uiv fqn: [\"$default\", \"foo\", \"bar\"]\n if (!equals(vcSegments, uivSegments.slice(0 - vcSegments.length)))\n return false;\n\n // Now check if the fqn ending at the first segment of the viewConfig matches the context:\n // [\"$default\", \"foo\"].join(\".\") == \"$default.foo\", does the ui-view $default.foo context match?\n let negOffset = (1 - vcSegments.length) || undefined;\n let fqnToFirstSegment = uivSegments.slice(0, negOffset).join(\".\");\n let uiViewContext = uiViewsByFqn[fqnToFirstSegment].creationContext;\n return vc.$uiViewContextAnchor === (uiViewContext && uiViewContext.name);\n }\n\n sync() {\n let uiViewsByFqn: TypedMap =\n this._uiViews.map(uiv => [uiv.fqn, uiv]).reduce(applyPairs, {});\n\n // Return a weighted depth value for a uiView.\n // The depth is the nesting depth of ui-views (based on FQN; times 10,000)\n // plus the depth of the state that is populating the uiView\n function uiViewDepth(uiView: ActiveUIView) {\n const stateDepth = (context: ViewContext) =>\n context && context.parent ? stateDepth(context.parent) + 1 : 1;\n return (uiView.fqn.split(\".\").length * 10000) + stateDepth(uiView.creationContext);\n }\n\n // Return the ViewConfig's context's depth in the context tree.\n function viewConfigDepth(config: ViewConfig) {\n let context: ViewContext = config.viewDecl.$context, count = 0;\n while (++count && context.parent) context = context.parent;\n return count;\n }\n\n // Given a depth function, returns a compare function which can return either ascending or descending order\n const depthCompare = curry((depthFn, posNeg, left, right) => posNeg * (depthFn(left) - depthFn(right)));\n\n const matchingConfigPair = (uiView: ActiveUIView) => {\n let matchingConfigs = this._viewConfigs.filter(ViewService.matches(uiViewsByFqn, uiView));\n if (matchingConfigs.length > 1) {\n // This is OK. Child states can target a ui-view that the parent state also targets (the child wins)\n // Sort by depth and return the match from the deepest child\n // console.log(`Multiple matching view configs for ${uiView.fqn}`, matchingConfigs);\n matchingConfigs.sort(depthCompare(viewConfigDepth, -1)); // descending\n }\n return [uiView, matchingConfigs[0]];\n };\n\n const configureUIView = ([uiView, viewConfig]) => {\n // If a parent ui-view is reconfigured, it could destroy child ui-views.\n // Before configuring a child ui-view, make sure it's still in the active uiViews array.\n if (this._uiViews.indexOf(uiView) !== -1)\n uiView.configUpdated(viewConfig);\n };\n\n // Sort views by FQN and state depth. Process uiviews nearest the root first.\n const pairs = this._uiViews.sort(depthCompare(uiViewDepth, 1)).map(matchingConfigPair);\n\n trace.traceViewSync(pairs);\n\n pairs.forEach(configureUIView);\n };\n\n /**\n * Registers a `ui-view` component\n *\n * When a `ui-view` component is created, it uses this method to register itself.\n * After registration the [[sync]] method is used to ensure all `ui-view` are configured with the proper [[ViewConfig]].\n *\n * Note: the `ui-view` component uses the `ViewConfig` to determine what view should be loaded inside the `ui-view`,\n * and what the view's state context is.\n *\n * Note: There is no corresponding `deregisterUIView`.\n * A `ui-view` should hang on to the return value of `registerUIView` and invoke it to deregister itself.\n *\n * @param uiView The metadata for a UIView\n * @return a de-registration function used when the view is destroyed.\n */\n registerUIView(uiView: ActiveUIView) {\n trace.traceViewServiceUIViewEvent(\"-> Registering\", uiView);\n let uiViews = this._uiViews;\n const fqnAndTypeMatches = (uiv: ActiveUIView) => uiv.fqn === uiView.fqn && uiv.$type === uiView.$type;\n if (uiViews.filter(fqnAndTypeMatches).length)\n trace.traceViewServiceUIViewEvent(\"!!!! duplicate uiView named:\", uiView);\n\n uiViews.push(uiView);\n this.sync();\n\n return () => {\n let idx = uiViews.indexOf(uiView);\n if (idx === -1) {\n trace.traceViewServiceUIViewEvent(\"Tried removing non-registered uiView\", uiView);\n return;\n }\n trace.traceViewServiceUIViewEvent(\"<- Deregistering\", uiView);\n removeFrom(uiViews)(uiView);\n };\n };\n\n /**\n * Returns the list of views currently available on the page, by fully-qualified name.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n available() {\n return this._uiViews.map(prop(\"fqn\"));\n }\n\n /**\n * Returns the list of views on the page containing loaded content.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n active() {\n return this._uiViews.filter(prop(\"$config\")).map(prop(\"name\"));\n }\n\n /**\n * Normalizes a view's name from a state.views configuration block.\n *\n * This should be used by a framework implementation to calculate the values for\n * [[_ViewDeclaration.$uiViewName]] and [[_ViewDeclaration.$uiViewContextAnchor]].\n *\n * @param context the context object (state declaration) that the view belongs to\n * @param rawViewName the name of the view, as declared in the [[StateDeclaration.views]]\n *\n * @returns the normalized uiViewName and uiViewContextAnchor that the view targets\n */\n static normalizeUIViewTarget(context: ViewContext, rawViewName = \"\") {\n // TODO: Validate incoming view name with a regexp to allow:\n // ex: \"view.name@foo.bar\" , \"^.^.view.name\" , \"view.name@^.^\" , \"\" ,\n // \"@\" , \"$default@^\" , \"!$default.$default\" , \"!foo.bar\"\n let viewAtContext: string[] = rawViewName.split(\"@\");\n let uiViewName = viewAtContext[0] || \"$default\"; // default to unnamed view\n let uiViewContextAnchor = isString(viewAtContext[1]) ? viewAtContext[1] : \"^\"; // default to parent context\n\n // Handle relative view-name sugar syntax.\n // Matches rawViewName \"^.^.^.foo.bar\" into array: [\"^.^.^.foo.bar\", \"^.^.^\", \"foo.bar\"],\n let relativeViewNameSugar = /^(\\^(?:\\.\\^)*)\\.(.*$)/.exec(uiViewName);\n if (relativeViewNameSugar) {\n // Clobbers existing contextAnchor (rawViewName validation will fix this)\n uiViewContextAnchor = relativeViewNameSugar[1]; // set anchor to \"^.^.^\"\n uiViewName = relativeViewNameSugar[2]; // set view-name to \"foo.bar\"\n }\n\n if (uiViewName.charAt(0) === '!') {\n uiViewName = uiViewName.substr(1);\n uiViewContextAnchor = \"\"; // target absolutely from root\n }\n\n // handle parent relative targeting \"^.^.^\"\n let relativeMatch = /^(\\^(?:\\.\\^)*)$/;\n if (relativeMatch.exec(uiViewContextAnchor)) {\n let anchor = uiViewContextAnchor.split(\".\").reduce(((anchor, x) => anchor.parent), context);\n uiViewContextAnchor = anchor.name;\n } else if (uiViewContextAnchor === '.') {\n uiViewContextAnchor = context.name;\n }\n\n return {uiViewName, uiViewContextAnchor};\n }\n}","/**\n * @coreapi\n * @module core\n */ /** */\nimport {StateParams} from \"./params/stateParams\";\nimport {StateDeclaration} from \"./state/interface\";\nimport {StateObject} from \"./state/stateObject\";\nimport {Transition} from \"./transition/transition\";\nimport {Queue} from \"./common/queue\";\nimport { Disposable } from './interface';\n\n/**\n * Global router state\n *\n * This is where we hold the global mutable state such as current state, current\n * params, current transition, etc.\n */\nexport class UIRouterGlobals implements Disposable {\n /**\n * Current parameter values\n *\n * The parameter values from the latest successful transition\n */\n params: StateParams = new StateParams();\n\n /**\n * Current state\n *\n * The to-state from the latest successful transition\n */\n current: StateDeclaration;\n\n /**\n * Current state (internal object)\n *\n * The to-state from the latest successful transition\n * @internalapi\n */\n $current: StateObject;\n\n /**\n * The current started/running transition.\n * This transition has reached at least the onStart phase, but is not yet complete\n */\n transition: Transition;\n\n /** @internalapi */\n lastStartedTransitionId: number = -1;\n\n /** @internalapi */\n transitionHistory = new Queue([], 1);\n\n /** @internalapi */\n successfulTransitions = new Queue([], 1);\n\n dispose() {\n this.transitionHistory.clear();\n this.successfulTransitions.clear();\n this.transition = null;\n }\n}\n","/**\n * @coreapi\n * @module url\n */ /** */\n\nimport { UIRouter } from \"../router\";\nimport { LocationServices, notImplemented, LocationConfig } from \"../common/coreservices\";\nimport { noop, createProxyFunctions } from \"../common/common\";\nimport { UrlConfigApi, UrlSyncApi, UrlRulesApi, UrlParts, MatchResult } from \"./interface\";\n\n/** @hidden */\nconst makeStub = (keys: string[]): any =>\n keys.reduce((acc, key) => (acc[key] = notImplemented(key), acc), { dispose: noop });\n\n/** @hidden */ const locationServicesFns = [\"url\", \"path\", \"search\", \"hash\", \"onChange\"];\n/** @hidden */ const locationConfigFns = [\"port\", \"protocol\", \"host\", \"baseHref\", \"html5Mode\", \"hashPrefix\"];\n/** @hidden */ const umfFns = [\"type\", \"caseInsensitive\", \"strictMode\", \"defaultSquashPolicy\"];\n/** @hidden */ const rulesFns = [\"sort\", \"when\", \"initial\", \"otherwise\", \"rules\", \"rule\", \"removeRule\"];\n/** @hidden */ const syncFns = [\"deferIntercept\", \"listen\", \"sync\", \"match\"];\n\n/**\n * API for URL management\n */\nexport class UrlService implements LocationServices, UrlSyncApi {\n /** @hidden */\n static locationServiceStub: LocationServices = makeStub(locationServicesFns);\n /** @hidden */\n static locationConfigStub: LocationConfig = makeStub(locationConfigFns);\n\n /** @inheritdoc */\n url(): string;\n /** @inheritdoc */\n url(newurl: string, replace?: boolean, state?): void;\n url(newurl?, replace?, state?): any { return };\n /** @inheritdoc */\n path(): string { return };\n /** @inheritdoc */\n search(): { [key: string]: any } { return };\n /** @inheritdoc */\n hash(): string { return };\n /** @inheritdoc */\n onChange(callback: Function): Function { return };\n\n\n /**\n * Returns the current URL parts\n *\n * This method returns the current URL components as a [[UrlParts]] object.\n *\n * @returns the current url parts\n */\n parts(): UrlParts {\n return { path: this.path(), search: this.search(), hash: this.hash() }\n }\n\n dispose() { }\n\n /** @inheritdoc */\n sync(evt?) { return }\n /** @inheritdoc */\n listen(enabled?: boolean): Function { return };\n /** @inheritdoc */\n deferIntercept(defer?: boolean) { return }\n /** @inheritdoc */\n match(urlParts: UrlParts): MatchResult { return }\n\n /**\n * A nested API for managing URL rules and rewrites\n *\n * See: [[UrlRulesApi]] for details\n */\n rules: UrlRulesApi;\n\n /**\n * A nested API to configure the URL and retrieve URL information\n *\n * See: [[UrlConfigApi]] for details\n */\n config: UrlConfigApi;\n\n /** @hidden */\n private router: UIRouter;\n\n /** @hidden */\n constructor(router: UIRouter, lateBind = true) {\n this.router = router;\n this.rules = {} as any;\n this.config = {} as any;\n\n // proxy function calls from UrlService to the LocationService/LocationConfig\n const locationServices = () => router.locationService;\n createProxyFunctions(locationServices, this, locationServices, locationServicesFns, lateBind);\n\n const locationConfig = () => router.locationConfig;\n createProxyFunctions(locationConfig, this.config, locationConfig, locationConfigFns, lateBind);\n\n const umf = () => router.urlMatcherFactory;\n createProxyFunctions(umf, this.config, umf, umfFns);\n\n const urlRouter = () => router.urlRouter;\n createProxyFunctions(urlRouter, this.rules, urlRouter, rulesFns);\n createProxyFunctions(urlRouter, this, urlRouter, syncFns);\n }\n}\n","/**\n * @coreapi\n * @module core\n */ /** */\nimport { UrlMatcherFactory } from \"./url/urlMatcherFactory\";\nimport { UrlRouter } from \"./url/urlRouter\";\nimport { TransitionService } from \"./transition/transitionService\";\nimport { ViewService } from \"./view/view\";\nimport { StateRegistry } from \"./state/stateRegistry\";\nimport { StateService } from \"./state/stateService\";\nimport { UIRouterGlobals } from \"./globals\";\nimport { UIRouterPlugin, Disposable } from \"./interface\";\nimport { values, removeFrom } from \"./common/common\";\nimport { isFunction } from \"./common/predicates\";\nimport { UrlService } from \"./url/urlService\";\nimport { LocationServices, LocationConfig } from \"./common/coreservices\";\nimport { Trace, trace } from \"./common/trace\";\n\n/** @hidden */\nlet _routerInstance = 0;\n\n/**\n * The master class used to instantiate an instance of UI-Router.\n *\n * UI-Router (for each specific framework) will create an instance of this class during bootstrap.\n * This class instantiates and wires the UI-Router services together.\n *\n * After a new instance of the UIRouter class is created, it should be configured for your app.\n * For instance, app states should be registered with the [[UIRouter.stateRegistry]].\n *\n * ---\n *\n * Normally the framework code will bootstrap UI-Router.\n * If you are bootstrapping UIRouter manually, tell it to monitor the URL by calling\n * [[UrlService.listen]] then [[UrlService.sync]].\n */\nexport class UIRouter {\n /** @hidden */ $id = _routerInstance++;\n /** @hidden */ _disposed = false;\n /** @hidden */ private _disposables: Disposable[] = [];\n\n /** Provides trace information to the console */\n trace: Trace = trace;\n\n /** Provides services related to ui-view synchronization */\n viewService = new ViewService();\n\n /** Provides services related to Transitions */\n transitionService: TransitionService = new TransitionService(this);\n\n /** Global router state */\n globals: UIRouterGlobals = new UIRouterGlobals();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlMatcherFactory: UrlMatcherFactory = new UrlMatcherFactory();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlRouter: UrlRouter = new UrlRouter(this);\n\n /** Provides a registry for states, and related registration services */\n stateRegistry: StateRegistry = new StateRegistry(this);\n\n /** Provides services related to states */\n stateService = new StateService(this);\n\n /** Provides services related to the URL */\n urlService: UrlService = new UrlService(this);\n\n\n /** Registers an object to be notified when the router is disposed */\n disposable(disposable: Disposable) {\n this._disposables.push(disposable);\n }\n\n /**\n * Disposes this router instance\n *\n * When called, clears resources retained by the router by calling `dispose(this)` on all\n * registered [[disposable]] objects.\n *\n * Or, if a `disposable` object is provided, calls `dispose(this)` on that object only.\n *\n * @param disposable (optional) the disposable to dispose\n */\n dispose(disposable?: any): void {\n if (disposable && isFunction(disposable.dispose)) {\n disposable.dispose(this);\n return undefined;\n }\n\n this._disposed = true;\n this._disposables.slice().forEach(d => {\n try {\n typeof d.dispose === 'function' && d.dispose(this);\n removeFrom(this._disposables, d);\n } catch (ignored) {}\n });\n }\n\n /**\n * Creates a new `UIRouter` object\n *\n * @param locationService a [[LocationServices]] implementation\n * @param locationConfig a [[LocationConfig]] implementation\n * @internalapi\n */\n constructor(\n public locationService: LocationServices = UrlService.locationServiceStub,\n public locationConfig: LocationConfig = UrlService.locationConfigStub\n ) {\n\n this.viewService._pluginapi._rootViewContext(this.stateRegistry.root());\n this.globals.$current = this.stateRegistry.root();\n this.globals.current = this.globals.$current.self;\n\n this.disposable(this.globals);\n this.disposable(this.stateService);\n this.disposable(this.stateRegistry);\n this.disposable(this.transitionService);\n this.disposable(this.urlRouter);\n this.disposable(locationService);\n this.disposable(locationConfig);\n }\n\n /** @hidden */\n private _plugins: { [key: string]: UIRouterPlugin } = {};\n\n /** Add plugin (as ES6 class) */\n plugin(plugin: { new(router: UIRouter, options?: any): T }, options?: any): T;\n /** Add plugin (as javascript constructor function) */\n plugin(plugin: { (router: UIRouter, options?: any): void }, options?: any): T;\n /** Add plugin (as javascript factory function) */\n plugin(plugin: PluginFactory, options?: any): T;\n /**\n * Adds a plugin to UI-Router\n *\n * This method adds a UI-Router Plugin.\n * A plugin can enhance or change UI-Router behavior using any public API.\n *\n * #### Example:\n * ```js\n * import { MyCoolPlugin } from \"ui-router-cool-plugin\";\n *\n * var plugin = router.addPlugin(MyCoolPlugin);\n * ```\n *\n * ### Plugin authoring\n *\n * A plugin is simply a class (or constructor function) which accepts a [[UIRouter]] instance and (optionally) an options object.\n *\n * The plugin can implement its functionality using any of the public APIs of [[UIRouter]].\n * For example, it may configure router options or add a Transition Hook.\n *\n * The plugin can then be published as a separate module.\n *\n * #### Example:\n * ```js\n * export class MyAuthPlugin implements UIRouterPlugin {\n * constructor(router: UIRouter, options: any) {\n * this.name = \"MyAuthPlugin\";\n * let $transitions = router.transitionService;\n * let $state = router.stateService;\n *\n * let authCriteria = {\n * to: (state) => state.data && state.data.requiresAuth\n * };\n *\n * function authHook(transition: Transition) {\n * let authService = transition.injector().get('AuthService');\n * if (!authService.isAuthenticated()) {\n * return $state.target('login');\n * }\n * }\n *\n * $transitions.onStart(authCriteria, authHook);\n * }\n * }\n * ```\n *\n * @param plugin one of:\n * - a plugin class which implements [[UIRouterPlugin]]\n * - a constructor function for a [[UIRouterPlugin]] which accepts a [[UIRouter]] instance\n * - a factory function which accepts a [[UIRouter]] instance and returns a [[UIRouterPlugin]] instance\n * @param options options to pass to the plugin class/factory\n * @returns the registered plugin instance\n */\n plugin(plugin: any, options: any = {}): T {\n let pluginInstance = new plugin(this, options);\n if (!pluginInstance.name) throw new Error(\"Required property `name` missing on plugin: \" + pluginInstance);\n this._disposables.push(pluginInstance);\n return this._plugins[pluginInstance.name] = pluginInstance;\n }\n\n /**\n * Returns registered plugins\n *\n * Returns the registered plugin of the given `pluginName`.\n * If no `pluginName` is given, returns all registered plugins\n *\n * @param pluginName (optional) the name of the plugin to get\n * @return the named plugin (undefined if not found), or all plugins (if `pluginName` is omitted)\n */\n getPlugin(pluginName: string): UIRouterPlugin;\n getPlugin(): UIRouterPlugin[];\n getPlugin(pluginName?: string): UIRouterPlugin|UIRouterPlugin[] {\n return pluginName ? this._plugins[pluginName] : values(this._plugins);\n }\n}\n\n/** @internalapi */\nexport type PluginFactory = (router: UIRouter, options?: any) => T;\n","/** @module hooks */ /** */\nimport {isString, isFunction} from \"../common/predicates\"\nimport {Transition} from \"../transition/transition\";\nimport {services} from \"../common/coreservices\";\nimport {TargetState} from \"../state/targetState\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\n\n/**\n * A [[TransitionHookFn]] that redirects to a different state or params\n *\n * Registered using `transitionService.onStart({ to: (state) => !!state.redirectTo }, redirectHook);`\n * \n * See [[StateDeclaration.redirectTo]]\n */\nconst redirectToHook: TransitionHookFn = (trans: Transition) => {\n let redirect = trans.to().redirectTo;\n if (!redirect) return;\n\n let $state = trans.router.stateService;\n\n function handleResult(result: any) {\n if (!result) return;\n if (result instanceof TargetState) return result;\n if (isString(result)) return $state.target( result, trans.params(), trans.options());\n if (result['state'] || result['params'])\n return $state.target(result['state'] || trans.to(), result['params'] || trans.params(), trans.options());\n }\n\n if (isFunction(redirect)) {\n return services.$q.when(redirect(trans)).then(handleResult);\n }\n return handleResult(redirect);\n};\n\nexport const registerRedirectToHook = (transitionService: TransitionService) =>\n transitionService.onStart({to: (state) => !!state.redirectTo}, redirectToHook);\n","/** @module hooks */\n/** for typedoc */\nimport { noop } from '../common/common';\nimport { Transition } from '../transition/transition';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { TransitionStateHookFn, TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\nimport { val } from '../common/hof';\nimport { StateDeclaration } from '../state/interface';\n\n/**\n * A [[TransitionHookFn]] which resolves all EAGER Resolvables in the To Path\n *\n * Registered using `transitionService.onStart({}, eagerResolvePath);`\n *\n * When a Transition starts, this hook resolves all the EAGER Resolvables, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst eagerResolvePath: TransitionHookFn = (trans: Transition) =>\n new ResolveContext(trans.treeChanges().to)\n .resolvePath(\"EAGER\", trans)\n .then(noop);\n\nexport const registerEagerResolvePath = (transitionService: TransitionService) =>\n transitionService.onStart({}, eagerResolvePath, {priority: 1000});\n\n/**\n * A [[TransitionHookFn]] which resolves all LAZY Resolvables for the state (and all its ancestors) in the To Path\n *\n * Registered using `transitionService.onEnter({ entering: () => true }, lazyResolveState);`\n *\n * When a State is being entered, this hook resolves all the Resolvables for this state, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst lazyResolveState: TransitionStateHookFn = (trans: Transition, state: StateDeclaration) =>\n new ResolveContext(trans.treeChanges().to)\n .subContext(state.$$state())\n .resolvePath(\"LAZY\", trans)\n .then(noop);\n\nexport const registerLazyResolveState = (transitionService: TransitionService) =>\n transitionService.onEnter({ entering: val(true) }, lazyResolveState, {priority: 1000});\n\n","/** @module hooks */ /** for typedoc */\nimport {noop} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {Transition} from \"../transition/transition\";\nimport {ViewService} from \"../view/view\";\nimport {ViewConfig} from \"../view/interface\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n\n/**\n * A [[TransitionHookFn]] which waits for the views to load\n *\n * Registered using `transitionService.onStart({}, loadEnteringViews);`\n *\n * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.\n * In angular 1, this includes loading the templates.\n */\nconst loadEnteringViews: TransitionHookFn = (transition: Transition) => {\n let $q = services.$q;\n let enteringViews = transition.views(\"entering\");\n if (!enteringViews.length) return;\n return $q.all(enteringViews.map(view => $q.when(view.load()))).then(noop);\n};\n\nexport const registerLoadEnteringViews = (transitionService: TransitionService) =>\n transitionService.onFinish({}, loadEnteringViews);\n\n/**\n * A [[TransitionHookFn]] which activates the new views when a transition is successful.\n *\n * Registered using `transitionService.onSuccess({}, activateViews);`\n *\n * After a transition is complete, this hook deactivates the old views from the previous state,\n * and activates the new views from the destination state.\n *\n * See [[ViewService]]\n */\nconst activateViews: TransitionHookFn = (transition: Transition) => {\n let enteringViews = transition.views(\"entering\");\n let exitingViews = transition.views(\"exiting\");\n if (!enteringViews.length && !exitingViews.length) return;\n\n let $view: ViewService = transition.router.viewService;\n\n exitingViews.forEach((vc: ViewConfig) => $view.deactivateViewConfig(vc));\n enteringViews.forEach((vc: ViewConfig) => $view.activateViewConfig(vc));\n\n $view.sync();\n};\n\nexport const registerActivateViews = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, activateViews);\n","/** @module hooks */\n/** for typedoc */\nimport { Transition } from '../transition/transition';\nimport { copy } from '../common/common';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates global UI-Router state\n *\n * Registered using `transitionService.onBefore({}, updateGlobalState);`\n *\n * Before a [[Transition]] starts, updates the global value of \"the current transition\" ([[Globals.transition]]).\n * After a successful [[Transition]], updates the global values of \"the current state\"\n * ([[Globals.current]] and [[Globals.$current]]) and \"the current param values\" ([[Globals.params]]).\n *\n * See also the deprecated properties:\n * [[StateService.transition]], [[StateService.current]], [[StateService.params]]\n */\nconst updateGlobalState = (trans: Transition) => {\n let globals = trans.router.globals;\n\n const transitionSuccessful = () => {\n globals.successfulTransitions.enqueue(trans);\n globals.$current = trans.$to();\n globals.current = globals.$current.self;\n\n copy(trans.params(), globals.params);\n };\n\n const clearCurrentTransition = () => {\n // Do not clear globals.transition if a different transition has started in the meantime\n if (globals.transition === trans) globals.transition = null;\n };\n\n trans.onSuccess({}, transitionSuccessful, { priority: 10000 });\n trans.promise.then(clearCurrentTransition, clearCurrentTransition);\n};\n\nexport const registerUpdateGlobalState = (transitionService: TransitionService) =>\n transitionService.onCreate({}, updateGlobalState);\n","/** @module hooks */ /** */\nimport {UrlRouter} from \"../url/urlRouter\";\nimport {StateService} from \"../state/stateService\";\nimport {Transition} from \"../transition/transition\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n/** \n * A [[TransitionHookFn]] which updates the URL after a successful transition\n * \n * Registered using `transitionService.onSuccess({}, updateUrl);`\n */\nconst updateUrl: TransitionHookFn = (transition: Transition) => {\n let options = transition.options();\n let $state: StateService = transition.router.stateService;\n let $urlRouter: UrlRouter = transition.router.urlRouter;\n\n // Dont update the url in these situations:\n // The transition was triggered by a URL sync (options.source === 'url')\n // The user doesn't want the url to update (options.location === false)\n // The destination state, and all parents have no navigable url\n if (options.source !== 'url' && options.location && $state.$current.navigable) {\n var urlOptions = {replace: options.location === 'replace'};\n $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);\n }\n\n $urlRouter.update(true);\n};\n\nexport const registerUpdateUrl = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, updateUrl, {priority: 9999});\n","/** @module transition */ /** */\nimport { TransitionHookPhase, PathType } from \"./interface\";\nimport { GetErrorHandler, GetResultHandler, TransitionHook } from \"./transitionHook\";\n/**\n * This class defines a type of hook, such as `onBefore` or `onEnter`.\n * Plugins can define custom hook types, such as sticky states does for `onInactive`.\n *\n * @interalapi\n */\nexport class TransitionEventType {\n\n constructor(public name: string,\n public hookPhase: TransitionHookPhase,\n public hookOrder: number,\n public criteriaMatchPath: PathType,\n public reverseSort: boolean = false,\n public getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n public getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n public synchronous: boolean = false,\n ) { }\n}\n","/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport {\n IHookRegistry, TransitionOptions, TransitionHookScope, TransitionHookPhase, TransitionCreateHookFn, HookMatchCriteria,\n HookRegOptions, PathTypes, PathType, RegisteredHooks, TransitionHookFn, TransitionStateHookFn\n} from \"./interface\";\nimport { Transition } from \"./transition\";\nimport { makeEvent, RegisteredHook } from \"./hookRegistry\";\nimport { TargetState } from \"../state/targetState\";\nimport { PathNode } from \"../path/pathNode\";\nimport { ViewService } from \"../view/view\";\nimport { UIRouter } from \"../router\";\nimport { registerAddCoreResolvables } from \"../hooks/coreResolvables\";\nimport { registerRedirectToHook } from \"../hooks/redirectTo\";\nimport { registerOnExitHook, registerOnRetainHook, registerOnEnterHook } from \"../hooks/onEnterExitRetain\";\nimport { registerEagerResolvePath, registerLazyResolveState } from \"../hooks/resolve\";\nimport { registerLoadEnteringViews, registerActivateViews } from \"../hooks/views\";\nimport { registerUpdateGlobalState } from \"../hooks/updateGlobals\";\nimport { registerUpdateUrl } from \"../hooks/url\";\nimport { registerLazyLoadHook } from \"../hooks/lazyLoad\";\nimport { TransitionEventType } from \"./transitionEventType\";\nimport { TransitionHook, GetResultHandler, GetErrorHandler } from \"./transitionHook\";\nimport { isDefined } from \"../common/predicates\";\nimport { removeFrom, values, createProxyFunctions } from \"../common/common\";\nimport { Disposable } from \"../interface\"; // has or is using\nimport { val } from \"../common/hof\";\nimport { registerIgnoredTransitionHook } from '../hooks/ignoredTransition';\nimport { registerInvalidTransitionHook } from '../hooks/invalidTransition';\n\n/**\n * The default [[Transition]] options.\n *\n * Include this object when applying custom defaults:\n * let reloadOpts = { reload: true, notify: true }\n * let options = defaults(theirOpts, customDefaults, defaultOptions);\n */\nexport let defaultTransOpts: TransitionOptions = {\n location : true,\n relative : null,\n inherit : false,\n notify : true,\n reload : false,\n custom : {},\n current : () => null,\n source : \"unknown\"\n};\n\n\n/**\n * Plugin API for Transition Service\n * @internalapi\n */\nexport interface TransitionServicePluginAPI {\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n */\n _definePathType(name: string, hookScope: TransitionHookScope);\n\n /**\n * Gets a Path definition used as a criterion against a TreeChanges path\n */\n _getPathTypes(): PathTypes;\n\n /**\n * Defines a transition hook type and returns a transition hook registration\n * function (which can then be used to register hooks of this type).\n */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort?: boolean,\n getResultHandler?: GetResultHandler,\n getErrorHandler?: GetErrorHandler,\n rejectIfSuperseded?: boolean);\n\n /**\n * Returns the known event types, such as `onBefore`\n * If a phase argument is provided, returns only events for the given phase.\n */\n _getEvents(phase?: TransitionHookPhase): TransitionEventType[];\n\n /** Returns the hooks registered for the given hook name */\n getHooks(hookName: string): RegisteredHook[];\n}\n\n/**\n * This class provides services related to Transitions.\n *\n * - Most importantly, it allows global Transition Hooks to be registered.\n * - It allows the default transition error handler to be set.\n * - It also has a factory function for creating new [[Transition]] objects, (used internally by the [[StateService]]).\n *\n * At bootstrap, [[UIRouter]] creates a single instance (singleton) of this class.\n */\nexport class TransitionService implements IHookRegistry, Disposable {\n /** @hidden */\n _transitionCount = 0;\n\n /**\n * Registers a [[TransitionHookFn]], called *while a transition is being constructed*.\n *\n * Registers a transition lifecycle hook, which is invoked during transition construction.\n *\n * This low level hook should only be used by plugins.\n * This can be a useful time for plugins to add resolves or mutate the transition as needed.\n * The Sticky States plugin uses this hook to modify the treechanges.\n *\n * ### Lifecycle\n *\n * `onCreate` hooks are invoked *while a transition is being constructed*.\n *\n * ### Return value\n *\n * The hook's return value is ignored\n *\n * @internalapi\n * @param criteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @param options the registration options\n * @returns a function which deregisters the hook.\n */\n onCreate(criteria: HookMatchCriteria, callback: TransitionCreateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n\n /** @hidden */\n public $view: ViewService;\n\n /** @hidden The transition hook types, such as `onEnter`, `onStart`, etc */\n private _eventTypes: TransitionEventType[] = [];\n /** @hidden The registered transition hooks */\n _registeredHooks = { } as RegisteredHooks;\n /** @hidden The paths on a criteria object */\n private _criteriaPaths = { } as PathTypes;\n /** @hidden */\n private _router: UIRouter;\n\n /** @internalapi */\n _pluginapi: TransitionServicePluginAPI;\n\n /**\n * This object has hook de-registration functions for the built-in hooks.\n * This can be used by third parties libraries that wish to customize the behaviors\n *\n * @hidden\n */\n _deregisterHookFns: {\n addCoreResolves: Function;\n ignored: Function;\n invalid: Function;\n redirectTo: Function;\n onExit: Function;\n onRetain: Function;\n onEnter: Function;\n eagerResolve: Function;\n lazyResolve: Function;\n loadViews: Function;\n activateViews: Function;\n updateGlobals: Function;\n updateUrl: Function;\n lazyLoad: Function;\n };\n\n /** @hidden */\n constructor(_router: UIRouter) {\n this._router = _router;\n this.$view = _router.viewService;\n this._deregisterHookFns = {};\n this._pluginapi = createProxyFunctions(val(this), {}, val(this), [\n '_definePathType',\n '_defineEvent',\n '_getPathTypes',\n '_getEvents',\n 'getHooks',\n ]);\n\n this._defineCorePaths();\n this._defineCoreEvents();\n this._registerCoreTransitionHooks();\n }\n\n /**\n * dispose\n * @internalapi\n */\n dispose(router: UIRouter) {\n values(this._registeredHooks).forEach((hooksArray: RegisteredHook[]) => hooksArray.forEach(hook => {\n hook._deregistered = true;\n removeFrom(hooksArray, hook);\n }));\n }\n\n /**\n * Creates a new [[Transition]] object\n *\n * This is a factory function for creating new Transition objects.\n * It is used internally by the [[StateService]] and should generally not be called by application code.\n *\n * @param fromPath the path to the current state (the from state)\n * @param targetState the target state (destination)\n * @returns a Transition\n */\n create(fromPath: PathNode[], targetState: TargetState): Transition {\n return new Transition(fromPath, targetState, this._router);\n }\n\n /** @hidden */\n private _defineCoreEvents() {\n const Phase = TransitionHookPhase;\n const TH = TransitionHook;\n const paths = this._criteriaPaths;\n const NORMAL_SORT = false, REVERSE_SORT = true;\n const ASYNCHRONOUS = false, SYNCHRONOUS = true;\n\n this._defineEvent(\"onCreate\", Phase.CREATE, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.THROW_ERROR, SYNCHRONOUS);\n\n this._defineEvent(\"onBefore\", Phase.BEFORE, 0, paths.to);\n\n this._defineEvent(\"onStart\", Phase.RUN, 0, paths.to);\n this._defineEvent(\"onExit\", Phase.RUN, 100, paths.exiting, REVERSE_SORT);\n this._defineEvent(\"onRetain\", Phase.RUN, 200, paths.retained);\n this._defineEvent(\"onEnter\", Phase.RUN, 300, paths.entering);\n this._defineEvent(\"onFinish\", Phase.RUN, 400, paths.to);\n\n this._defineEvent(\"onSuccess\", Phase.SUCCESS, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n this._defineEvent(\"onError\", Phase.ERROR, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n }\n\n /** @hidden */\n private _defineCorePaths() {\n const { STATE, TRANSITION } = TransitionHookScope;\n\n this._definePathType(\"to\", TRANSITION);\n this._definePathType(\"from\", TRANSITION);\n this._definePathType(\"exiting\", STATE);\n this._definePathType(\"retained\", STATE);\n this._definePathType(\"entering\", STATE);\n }\n\n /** @hidden */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort: boolean = false,\n getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n synchronous: boolean = false)\n {\n let eventType = new TransitionEventType(name, hookPhase, hookOrder, criteriaMatchPath, reverseSort, getResultHandler, getErrorHandler, synchronous);\n\n this._eventTypes.push(eventType);\n makeEvent(this, this, eventType);\n };\n\n /** @hidden */\n private _getEvents(phase?: TransitionHookPhase): TransitionEventType[] {\n let transitionHookTypes = isDefined(phase) ?\n this._eventTypes.filter(type => type.hookPhase === phase) :\n this._eventTypes.slice();\n\n return transitionHookTypes.sort((l, r) => {\n let cmpByPhase = l.hookPhase - r.hookPhase;\n return cmpByPhase === 0 ? l.hookOrder - r.hookOrder : cmpByPhase;\n })\n }\n\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n *\n * @hidden\n */\n private _definePathType(name: string, hookScope: TransitionHookScope) {\n this._criteriaPaths[name] = { name, scope: hookScope };\n }\n\n /** * @hidden */\n private _getPathTypes(): PathTypes {\n return this._criteriaPaths;\n }\n\n /** @hidden */\n public getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /** @hidden */\n private _registerCoreTransitionHooks() {\n let fns = this._deregisterHookFns;\n\n fns.addCoreResolves = registerAddCoreResolvables(this);\n fns.ignored = registerIgnoredTransitionHook(this);\n fns.invalid = registerInvalidTransitionHook(this);\n\n // Wire up redirectTo hook\n fns.redirectTo = registerRedirectToHook(this);\n \n // Wire up onExit/Retain/Enter state hooks\n fns.onExit = registerOnExitHook(this);\n fns.onRetain = registerOnRetainHook(this);\n fns.onEnter = registerOnEnterHook(this);\n\n // Wire up Resolve hooks\n fns.eagerResolve = registerEagerResolvePath(this);\n fns.lazyResolve = registerLazyResolveState(this);\n \n // Wire up the View management hooks\n fns.loadViews = registerLoadEnteringViews(this);\n fns.activateViews = registerActivateViews(this);\n\n // Updates global state after a transition\n fns.updateGlobals = registerUpdateGlobalState(this);\n\n // After globals.current is updated at priority: 10000\n fns.updateUrl = registerUpdateUrl(this);\n\n // Lazy load state trees\n fns.lazyLoad = registerLazyLoadHook(this);\n }\n}\n","/**\n * @coreapi\n * @module state\n */\n/** */\nimport { createProxyFunctions, defaults, extend, inArray, noop, removeFrom, silenceUncaughtInPromise, silentRejection } from '../common/common';\nimport { isDefined, isObject, isString } from '../common/predicates';\nimport { Queue } from '../common/queue';\nimport { services } from '../common/coreservices';\n\nimport { PathUtils } from '../path/pathFactory';\nimport { PathNode } from '../path/pathNode';\n\nimport { HookResult, TransitionOptions } from '../transition/interface';\nimport { defaultTransOpts } from '../transition/transitionService';\nimport { Rejection, RejectType } from '../transition/rejectFactory';\nimport { Transition } from '../transition/transition';\n\nimport { HrefOptions, LazyLoadResult, StateDeclaration, StateOrName, TransitionPromise } from './interface';\nimport { StateObject } from './stateObject';\nimport { TargetState } from './targetState';\n\nimport { RawParams } from '../params/interface';\nimport { Param } from '../params/param';\nimport { Glob } from '../common/glob';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { lazyLoadState } from '../hooks/lazyLoad';\nimport { not, val } from '../common/hof';\nimport { StateParams } from '../params/stateParams';\n\nexport type OnInvalidCallback =\n (toState?: TargetState, fromState?: TargetState, injector?: UIInjector) => HookResult;\n\n/**\n * Provides state related service functions\n *\n * This class provides services related to ui-router states.\n * An instance of this class is located on the global [[UIRouter]] object.\n */\nexport class StateService {\n /** @internalapi */\n invalidCallbacks: OnInvalidCallback[] = [];\n\n /**\n * The [[Transition]] currently in progress (or null)\n *\n * This is a passthrough through to [[UIRouterGlobals.transition]]\n */\n get transition() { return this.router.globals.transition; }\n /**\n * The latest successful state parameters\n *\n * This is a passthrough through to [[UIRouterGlobals.params]]\n */\n get params(): StateParams { return this.router.globals.params; }\n /**\n * The current [[StateDeclaration]]\n *\n * This is a passthrough through to [[UIRouterGlobals.current]]\n */\n get current() { return this.router.globals.current; }\n /**\n * The current [[StateObject]]\n *\n * This is a passthrough through to [[UIRouterGlobals.$current]]\n */\n get $current() { return this.router.globals.$current; }\n\n /** @internalapi */\n constructor(private router: UIRouter) {\n let getters = ['current', '$current', 'params', 'transition'];\n let boundFns = Object.keys(StateService.prototype).filter(not(inArray(getters)));\n createProxyFunctions(val(StateService.prototype), this, val(this), boundFns);\n }\n\n /** @internalapi */\n dispose() {\n this.defaultErrorHandler(noop);\n this.invalidCallbacks = [];\n }\n\n /**\n * Handler for when [[transitionTo]] is called with an invalid state.\n *\n * Invokes the [[onInvalid]] callbacks, in natural order.\n * Each callback's return value is checked in sequence until one of them returns an instance of TargetState.\n * The results of the callbacks are wrapped in $q.when(), so the callbacks may return promises.\n *\n * If a callback returns an TargetState, then it is used as arguments to $state.transitionTo() and the result returned.\n *\n * @internalapi\n */\n private _handleInvalidTargetState(fromPath: PathNode[], toState: TargetState) {\n let fromState = PathUtils.makeTargetState(this.router.stateRegistry, fromPath);\n let globals = this.router.globals;\n const latestThing = () => globals.transitionHistory.peekTail();\n let latest = latestThing();\n let callbackQueue = new Queue(this.invalidCallbacks.slice());\n let injector = new ResolveContext(fromPath).injector();\n\n const checkForRedirect = (result: HookResult) => {\n if (!(result instanceof TargetState)) {\n return;\n }\n\n let target = result;\n // Recreate the TargetState, in case the state is now defined.\n target = this.target(target.identifier(), target.params(), target.options());\n\n if (!target.valid()) {\n return Rejection.invalid(target.error()).toPromise();\n }\n\n if (latestThing() !== latest) {\n return Rejection.superseded().toPromise();\n }\n\n return this.transitionTo(target.identifier(), target.params(), target.options());\n };\n\n function invokeNextCallback() {\n let nextCallback = callbackQueue.dequeue();\n if (nextCallback === undefined) return Rejection.invalid(toState.error()).toPromise();\n\n let callbackResult = services.$q.when(nextCallback(toState, fromState, injector));\n return callbackResult.then(checkForRedirect).then(result => result || invokeNextCallback());\n }\n\n return invokeNextCallback();\n }\n\n /**\n * Registers an Invalid State handler\n *\n * Registers a [[OnInvalidCallback]] function to be invoked when [[StateService.transitionTo]]\n * has been called with an invalid state reference parameter\n *\n * Example:\n * ```js\n * stateService.onInvalid(function(to, from, injector) {\n * if (to.name() === 'foo') {\n * let lazyLoader = injector.get('LazyLoadService');\n * return lazyLoader.load('foo')\n * .then(() => stateService.target('foo'));\n * }\n * });\n * ```\n *\n * @param {function} callback invoked when the toState is invalid\n * This function receives the (invalid) toState, the fromState, and an injector.\n * The function may optionally return a [[TargetState]] or a Promise for a TargetState.\n * If one is returned, it is treated as a redirect.\n *\n * @returns a function which deregisters the callback\n */\n onInvalid(callback: OnInvalidCallback): Function {\n this.invalidCallbacks.push(callback);\n return function deregisterListener() {\n removeFrom(this.invalidCallbacks)(callback);\n }.bind(this);\n }\n\n\n /**\n * Reloads the current state\n *\n * A method that force reloads the current state, or a partial state hierarchy.\n * All resolves are re-resolved, and components reinstantiated.\n *\n * #### Example:\n * ```js\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * $state.reload();\n * }\n * });\n * ```\n *\n * Note: `reload()` is just an alias for:\n *\n * ```js\n * $state.transitionTo($state.current, $state.params, {\n * reload: true, inherit: false\n * });\n * ```\n *\n * @param reloadState A state name or a state object.\n * If present, this state and all its children will be reloaded, but ancestors will not reload.\n *\n * #### Example:\n * ```js\n * //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item'\n * //and current state is 'contacts.detail.item'\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * //will reload 'contact.detail' and nested 'contact.detail.item' states\n * $state.reload('contact.detail');\n * }\n * });\n * ```\n *\n * @returns A promise representing the state of the new transition. See [[StateService.go]]\n */\n reload(reloadState?: StateOrName): Promise {\n return this.transitionTo(this.current, this.params, {\n reload: isDefined(reloadState) ? reloadState : true,\n inherit: false,\n notify: false,\n });\n };\n\n /**\n * Transition to a different state and/or parameters\n *\n * Convenience method for transitioning to a new state.\n *\n * `$state.go` calls `$state.transitionTo` internally but automatically sets options to\n * `{ location: true, inherit: true, relative: router.globals.$current, notify: true }`.\n * This allows you to use either an absolute or relative `to` argument (because of `relative: router.globals.$current`).\n * It also allows you to specify * only the parameters you'd like to update, while letting unspecified parameters\n * inherit from the current parameter values (because of `inherit: true`).\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.go('contact.detail');\n * };\n * });\n * ```\n *\n * @param to Absolute state name, state object, or relative state path (relative to current state).\n *\n * Some examples:\n *\n * - `$state.go('contact.detail')` - will go to the `contact.detail` state\n * - `$state.go('^')` - will go to the parent state\n * - `$state.go('^.sibling')` - if current state is `home.child`, will go to the `home.sibling` state\n * - `$state.go('.child.grandchild')` - if current state is home, will go to the `home.child.grandchild` state\n *\n * @param params A map of the parameters that will be sent to the state, will populate $stateParams.\n *\n * Any parameters that are not specified will be inherited from current parameter values (because of `inherit: true`).\n * This allows, for example, going to a sibling state that shares parameters defined by a parent state.\n *\n * @param options Transition options\n *\n * @returns {promise} A promise representing the state of the new transition.\n */\n go(to: StateOrName, params?: RawParams, options?: TransitionOptions): TransitionPromise {\n let defautGoOpts = { relative: this.$current, inherit: true };\n let transOpts = defaults(options, defautGoOpts, defaultTransOpts);\n return this.transitionTo(to, params, transOpts);\n };\n\n /**\n * Creates a [[TargetState]]\n *\n * This is a factory method for creating a TargetState\n *\n * This may be returned from a Transition Hook to redirect a transition, for example.\n */\n target(identifier: StateOrName, params?: RawParams, options: TransitionOptions = {}): TargetState {\n // If we're reloading, find the state object to reload from\n if (isObject(options.reload) && !(options.reload).name)\n throw new Error('Invalid reload state object');\n let reg = this.router.stateRegistry;\n options.reloadState = options.reload === true ? reg.root() : reg.matcher.find( options.reload, options.relative);\n\n if (options.reload && !options.reloadState)\n throw new Error(`No such reload state '${(isString(options.reload) ? options.reload : (options.reload).name)}'`);\n\n return new TargetState(this.router.stateRegistry, identifier, params, options);\n };\n\n private getCurrentPath(): PathNode[] {\n let globals = this.router.globals;\n let latestSuccess: Transition = globals.successfulTransitions.peekTail();\n const rootPath = () => [ new PathNode(this.router.stateRegistry.root()) ];\n return latestSuccess ? latestSuccess.treeChanges().to : rootPath();\n }\n\n /**\n * Low-level method for transitioning to a new state.\n *\n * The [[go]] method (which uses `transitionTo` internally) is recommended in most situations.\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.transitionTo('contact.detail');\n * };\n * });\n * ```\n *\n * @param to State name or state object.\n * @param toParams A map of the parameters that will be sent to the state,\n * will populate $stateParams.\n * @param options Transition options\n *\n * @returns A promise representing the state of the new transition. See [[go]]\n */\n transitionTo(to: StateOrName, toParams: RawParams = {}, options: TransitionOptions = {}): TransitionPromise {\n let router = this.router;\n let globals = router.globals;\n options = defaults(options, defaultTransOpts);\n const getCurrent = () =>\n globals.transition;\n options = extend(options, { current: getCurrent });\n\n let ref: TargetState = this.target(to, toParams, options);\n let currentPath = this.getCurrentPath();\n\n if (!ref.exists())\n return this._handleInvalidTargetState(currentPath, ref);\n\n if (!ref.valid())\n return silentRejection(ref.error());\n\n /**\n * Special handling for Ignored, Aborted, and Redirected transitions\n *\n * The semantics for the transition.run() promise and the StateService.transitionTo()\n * promise differ. For instance, the run() promise may be rejected because it was\n * IGNORED, but the transitionTo() promise is resolved because from the user perspective\n * no error occurred. Likewise, the transition.run() promise may be rejected because of\n * a Redirect, but the transitionTo() promise is chained to the new Transition's promise.\n */\n const rejectedTransitionHandler = (transition: Transition) => (error: any): Promise => {\n if (error instanceof Rejection) {\n const isLatest = router.globals.lastStartedTransitionId === transition.$id;\n\n if (error.type === RejectType.IGNORED) {\n isLatest && router.urlRouter.update();\n // Consider ignored `Transition.run()` as a successful `transitionTo`\n return services.$q.when(globals.current);\n }\n\n const detail: any = error.detail;\n if (error.type === RejectType.SUPERSEDED && error.redirected && detail instanceof TargetState) {\n // If `Transition.run()` was redirected, allow the `transitionTo()` promise to resolve successfully\n // by returning the promise for the new (redirect) `Transition.run()`.\n let redirect: Transition = transition.redirect(detail);\n return redirect.run().catch(rejectedTransitionHandler(redirect));\n }\n\n if (error.type === RejectType.ABORTED) {\n isLatest && router.urlRouter.update();\n return services.$q.reject(error);\n }\n }\n\n let errorHandler = this.defaultErrorHandler();\n errorHandler(error);\n\n return services.$q.reject(error);\n };\n\n let transition = this.router.transitionService.create(currentPath, ref);\n let transitionToPromise = transition.run().catch(rejectedTransitionHandler(transition));\n silenceUncaughtInPromise(transitionToPromise); // issue #2676\n\n // Return a promise for the transition, which also has the transition object on it.\n return extend(transitionToPromise, { transition });\n };\n\n /**\n * Checks if the current state *is* the provided state\n *\n * Similar to [[includes]] but only checks for the full state name.\n * If params is supplied then it will be tested for strict equality against the current\n * active params object, so all params must match with none missing and no extras.\n *\n * #### Example:\n * ```js\n * $state.$current.name = 'contacts.details.item';\n *\n * // absolute name\n * $state.is('contact.details.item'); // returns true\n * $state.is(contactDetailItemStateObject); // returns true\n * ```\n *\n * // relative name (. and ^), typically from a template\n * // E.g. from the 'contacts.details' template\n * ```html\n *
    Item
    \n * ```\n *\n * @param stateOrName The state name (absolute or relative) or state object you'd like to check.\n * @param params A param object, e.g. `{sectionId: section.id}`, that you'd like\n * to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns Returns true if it is the state.\n */\n is(stateOrName: StateOrName, params?: RawParams, options?: { relative?: StateOrName }): boolean {\n options = defaults(options, { relative: this.$current });\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n if (!isDefined(state)) return undefined;\n if (this.$current !== state) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n /**\n * Checks if the current state *includes* the provided state\n *\n * A method to determine if the current active state is equal to or is the child of the\n * state stateName. If any params are passed then they will be tested for a match as well.\n * Not all the parameters need to be passed, just the ones you'd like to test for equality.\n *\n * #### Example when `$state.$current.name === 'contacts.details.item'`\n * ```js\n * // Using partial names\n * $state.includes(\"contacts\"); // returns true\n * $state.includes(\"contacts.details\"); // returns true\n * $state.includes(\"contacts.details.item\"); // returns true\n * $state.includes(\"contacts.list\"); // returns false\n * $state.includes(\"about\"); // returns false\n * ```\n *\n * #### Glob Examples when `* $state.$current.name === 'contacts.details.item.url'`:\n * ```js\n * $state.includes(\"*.details.*.*\"); // returns true\n * $state.includes(\"*.details.**\"); // returns true\n * $state.includes(\"**.item.**\"); // returns true\n * $state.includes(\"*.details.item.url\"); // returns true\n * $state.includes(\"*.details.*.url\"); // returns true\n * $state.includes(\"*.details.*\"); // returns false\n * $state.includes(\"item.**\"); // returns false\n * ```\n *\n * @param stateOrName A partial name, relative name, glob pattern,\n * or state object to be searched for within the current state name.\n * @param params A param object, e.g. `{sectionId: section.id}`,\n * that you'd like to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns {boolean} Returns true if it does include the state\n */\n includes(stateOrName: StateOrName, params?: RawParams, options?: TransitionOptions): boolean {\n options = defaults(options, { relative: this.$current });\n let glob = isString(stateOrName) && Glob.fromString( stateOrName);\n\n if (glob) {\n if (!glob.matches(this.$current.name)) return false;\n stateOrName = this.$current.name;\n }\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative), include = this.$current.includes;\n\n if (!isDefined(state)) return undefined;\n if (!isDefined(include[state.name])) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n\n /**\n * Generates a URL for a state and parameters\n *\n * Returns the url for the given state populated with the given params.\n *\n * #### Example:\n * ```js\n * expect($state.href(\"about.person\", { person: \"bob\" })).toEqual(\"/about/bob\");\n * ```\n *\n * @param stateOrName The state name or state object you'd like to generate a url from.\n * @param params An object of parameter values to fill the state's required parameters.\n * @param options Options object. The options are:\n *\n * @returns {string} compiled state url\n */\n href(stateOrName: StateOrName, params: RawParams, options?: HrefOptions): string {\n let defaultHrefOpts = {\n lossy: true,\n inherit: true,\n absolute: false,\n relative: this.$current,\n };\n options = defaults(options, defaultHrefOpts);\n params = params || {};\n\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n\n if (!isDefined(state)) return null;\n if (options.inherit) params = this.params.$inherit(params, this.$current, state);\n\n let nav = (state && options.lossy) ? state.navigable : state;\n\n if (!nav || nav.url === undefined || nav.url === null) {\n return null;\n }\n return this.router.urlRouter.href(nav.url, params, {\n absolute: options.absolute,\n });\n };\n\n /** @hidden */\n private _defaultErrorHandler: ((_error: any) => void) = function $defaultErrorHandler($error$) {\n if ($error$ instanceof Error && $error$.stack) {\n console.error($error$);\n console.error($error$.stack);\n } else if ($error$ instanceof Rejection) {\n console.error($error$.toString());\n if ($error$.detail && $error$.detail.stack)\n console.error($error$.detail.stack);\n } else {\n console.error($error$);\n }\n };\n\n /**\n * Sets or gets the default [[transitionTo]] error handler.\n *\n * The error handler is called when a [[Transition]] is rejected or when any error occurred during the Transition.\n * This includes errors caused by resolves and transition hooks.\n *\n * Note:\n * This handler does not receive certain Transition rejections.\n * Redirected and Ignored Transitions are not considered to be errors by [[StateService.transitionTo]].\n *\n * The built-in default error handler logs the error to the console.\n *\n * You can provide your own custom handler.\n *\n * #### Example:\n * ```js\n * stateService.defaultErrorHandler(function() {\n * // Do not log transitionTo errors\n * });\n * ```\n *\n * @param handler a global error handler function\n * @returns the current global error handler\n */\n defaultErrorHandler(handler?: (error: any) => void): (error: any) => void {\n return this._defaultErrorHandler = handler || this._defaultErrorHandler;\n }\n\n /**\n * Gets a registered [[StateDeclaration]] object\n *\n * Returns the state declaration object for any specific state, or for all registered states.\n *\n * @param stateOrName (absolute or relative) If provided, will only get the declaration object for the requested state.\n * If not provided, returns an array of ALL states.\n * @param base When `stateOrName` is a relative state reference (such as `.bar.baz`), the state will be retrieved relative to this state.\n *\n * @returns a [[StateDeclaration]] object (or array of all registered [[StateDeclaration]] objects.)\n */\n get(stateOrName: StateOrName, base: StateOrName): StateDeclaration;\n get(stateOrName: StateOrName): StateDeclaration;\n get(): StateDeclaration[];\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n let reg = this.router.stateRegistry;\n if (arguments.length === 0) return reg.get();\n return reg.get(stateOrName, base || this.$current);\n }\n\n /**\n * Lazy loads a state\n *\n * Explicitly runs a state's [[StateDeclaration.lazyLoad]] function.\n *\n * @param stateOrName the state that should be lazy loaded\n * @param transition the optional Transition context to use (if the lazyLoad function requires an injector, etc)\n * Note: If no transition is provided, a noop transition is created using the from the current state to the current state.\n * This noop transition is not actually run.\n *\n * @returns a promise to lazy load\n */\n lazyLoad(stateOrName: StateOrName, transition?: Transition): Promise {\n let state: StateDeclaration = this.get(stateOrName);\n if (!state || !state.lazyLoad) throw new Error(\"Can not lazy load \" + stateOrName);\n\n let currentPath = this.getCurrentPath();\n let target = PathUtils.makeTargetState(this.router.stateRegistry, currentPath);\n transition = transition || this.router.transitionService.create(currentPath, target);\n\n return lazyLoadState(transition, state);\n }\n}\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isArray, isObject, $QLike } from \"../common/index\";\n\n/**\n * An angular1-like promise api\n *\n * This object implements four methods similar to the\n * [angular 1 promise api](https://docs.angularjs.org/api/ng/service/$q)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This API provides native ES6 promise support wrapped as a $q-like API.\n * Internally, UI-Router uses this $q object to perform promise operations.\n * The `angular-ui-router` (ui-router for angular 1) uses the $q API provided by angular.\n *\n * $q-like promise api\n */\nexport const $q = {\n /** Normalizes a value as a promise */\n when: (val) => new Promise((resolve, reject) => resolve(val)),\n\n /** Normalizes a value as a promise rejection */\n reject: (val) => new Promise((resolve, reject) => { reject(val); }),\n\n /** @returns a deferred object, which has `resolve` and `reject` functions */\n defer: () => {\n let deferred: any = {};\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n },\n\n /** Like Promise.all(), but also supports object key/promise notation like $q */\n all: (promises: { [key: string]: Promise } | Promise[]) => {\n if (isArray(promises)) {\n return Promise.all(promises);\n }\n\n if (isObject(promises)) {\n // Convert promises map to promises array.\n // When each promise resolves, map it to a tuple { key: key, val: val }\n let chain = Object.keys(promises)\n .map(key => promises[key].then(val => ({key, val})));\n\n // Then wait for all promises to resolve, and convert them back to an object\n return $q.all(chain).then(values =>\n values.reduce((acc, tuple) => { acc[tuple.key] = tuple.val; return acc; }, {}));\n }\n }\n} as $QLike;","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n extend, assertPredicate, isFunction, isArray, isInjectable, $InjectorLike, IInjectable\n} from \"../common/index\";\n\n// globally available injectables\nlet globals = {};\nlet STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nlet ARGUMENT_NAMES = /([^\\s,]+)/g;\n\n/**\n * A basic angular1-like injector api\n *\n * This object implements four methods similar to the\n * [angular 1 dependency injector](https://docs.angularjs.org/api/auto/service/$injector)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This object provides a naive implementation of a globally scoped dependency injection system.\n * It supports the following DI approaches:\n *\n * ### Function parameter names\n *\n * A function's `.toString()` is called, and the parameter names are parsed.\n * This only works when the parameter names aren't \"mangled\" by a minifier such as UglifyJS.\n *\n * ```js\n * function injectedFunction(FooService, BarService) {\n * // FooService and BarService are injected\n * }\n * ```\n *\n * ### Function annotation\n *\n * A function may be annotated with an array of dependency names as the `$inject` property.\n *\n * ```js\n * injectedFunction.$inject = [ 'FooService', 'BarService' ];\n * function injectedFunction(fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }\n * ```\n *\n * ### Array notation\n *\n * An array provides the names of the dependencies to inject (as strings).\n * The function is the last element of the array.\n *\n * ```js\n * [ 'FooService', 'BarService', function (fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }]\n * ```\n *\n * @type {$InjectorLike}\n */\nexport const $injector = {\n /** Gets an object from DI based on a string token */\n get: name => globals[name],\n\n /** Returns true if an object named `name` exists in global DI */\n has: (name) => $injector.get(name) != null,\n\n /**\n * Injects a function\n *\n * @param fn the function to inject\n * @param context the function's `this` binding\n * @param locals An object with additional DI tokens and values, such as `{ someToken: { foo: 1 } }`\n */\n invoke: (fn: IInjectable, context?, locals?) => {\n let all = extend({}, globals, locals || {});\n let params = $injector.annotate(fn);\n let ensureExist = assertPredicate((key: string) => all.hasOwnProperty(key), key => `DI can't find injectable: '${key}'`);\n let args = params.filter(ensureExist).map(x => all[x]);\n if (isFunction(fn)) return fn.apply(context, args);\n else return (fn as any[]).slice(-1)[0].apply(context, args);\n },\n\n /**\n * Returns a function's dependencies\n *\n * Analyzes a function (or array) and returns an array of DI tokens that the function requires.\n * @return an array of `string`s\n */\n annotate: (fn: IInjectable): any[] => {\n if (!isInjectable(fn)) throw new Error(`Not an injectable function: ${fn}`);\n if (fn && (fn as any).$inject) return (fn as any).$inject;\n if (isArray(fn)) return fn.slice(0, -1);\n let fnStr = fn.toString().replace(STRIP_COMMENTS, '');\n let result = fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);\n return result || [];\n }\n} as $InjectorLike;","/**\n * @internalapi\n * @module vanilla\n */ /** */\n\nimport { deregAll, isDefined, LocationServices, removeFrom, root } from '../common';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { HistoryLike, LocationLike } from './interface';\nimport { buildUrl, getParams, parseUrl } from './utils';\n\n/** A base `LocationServices` */\nexport abstract class BaseLocationServices implements LocationServices, Disposable {\n constructor(router: UIRouter, public fireAfterUpdate: boolean) {\n this._location = root.location;\n this._history = root.history;\n }\n\n _listener = evt => this._listeners.forEach(cb => cb(evt));\n\n private _listeners: Function[] = [];\n _location: LocationLike;\n _history: HistoryLike;\n\n /**\n * This should return the current internal URL representation.\n *\n * The internal URL includes only the portion that UI-Router matches.\n * It does not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n */\n abstract _get(): string;\n\n /**\n * This should set the current URL.\n *\n * The `url` param should include only the portion that UI-Router matches on.\n * It should not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n *\n * However, after this function completes, the browser URL should reflect the entire (fully qualified)\n * HREF including those data.\n */\n abstract _set(state: any, title: string, url: string, replace: boolean);\n\n hash = () => parseUrl(this._get()).hash;\n path = () => parseUrl(this._get()).path;\n search = () => getParams(parseUrl(this._get()).search);\n\n url(url?: string, replace: boolean = true): string {\n if (isDefined(url) && url !== this._get()) {\n this._set(null, null, url, replace);\n\n if (this.fireAfterUpdate) {\n this._listeners.forEach(cb => cb({ url }));\n }\n }\n\n return buildUrl(this);\n }\n\n onChange(cb: EventListener) {\n this._listeners.push(cb);\n return () => removeFrom(this._listeners, cb);\n }\n\n dispose(router: UIRouter) {\n deregAll(this._listeners);\n }\n}\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { root, trimHashVal } from '../common';\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\n\n/** A `LocationServices` that uses the browser hash \"#\" to get/set the current location */\nexport class HashLocationService extends BaseLocationServices {\n constructor(router: UIRouter) {\n super(router, false);\n root.addEventListener('hashchange', this._listener, false);\n }\n\n _get() {\n return trimHashVal(this._location.hash);\n }\n _set(state: any, title: string, url: string, replace: boolean) {\n this._location.hash = url;\n }\n\n dispose (router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('hashchange', this._listener);\n }\n}\n\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BaseLocationServices } from './baseLocationService';\nimport { UIRouter } from '../router';\n\n/** A `LocationServices` that gets/sets the current location from an in-memory object */\nexport class MemoryLocationService extends BaseLocationServices {\n _url: string;\n\n constructor(router: UIRouter) {\n super(router, true);\n }\n\n _get() {\n return this._url;\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n this._url = url;\n }\n}\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\nimport { LocationConfig, root, splitHash, splitQuery, stripFile } from '../common';\n\n/**\n * A `LocationServices` that gets/sets the current location using the browser's `location` and `history` apis\n *\n * Uses `history.pushState` and `history.replaceState`\n */\nexport class PushStateLocationService extends BaseLocationServices {\n _config: LocationConfig;\n\n constructor(router: UIRouter) {\n super(router, true);\n this._config = router.urlService.config;\n root.addEventListener('popstate', this._listener, false);\n };\n\n /**\n * Gets the base prefix without:\n * - trailing slash\n * - trailing filename\n * - protocol and hostname\n *\n * If , this returns '/base'.\n * If , this returns '/base'.\n *\n * See: https://html.spec.whatwg.org/dev/semantics.html#the-base-element\n */\n _getBasePrefix() {\n return stripFile(this._config.baseHref());\n }\n\n _get() {\n let { pathname, hash, search } = this._location;\n search = splitQuery(search)[1]; // strip ? if found\n hash = splitHash(hash)[1]; // strip # if found\n\n const basePrefix = this._getBasePrefix();\n let exactMatch = pathname === this._config.baseHref();\n let startsWith = pathname.startsWith(basePrefix);\n pathname = exactMatch ? '/' : startsWith ? pathname.substring(basePrefix.length) : pathname;\n\n return pathname + (search ? '?' + search : '') + (hash ? '#' + hash : '');\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n let fullUrl = this._getBasePrefix() + url;\n\n if (replace) {\n this._history.replaceState(state, title, fullUrl);\n } else {\n this._history.pushState(state, title, fullUrl);\n }\n }\n\n dispose(router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('popstate', this._listener);\n }\n}\n\n","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { LocationConfig } from \"../common/coreservices\";\nimport { isDefined } from \"../common/predicates\";\nimport { noop } from \"../common/common\";\n\n/** A `LocationConfig` mock that gets/sets all config from an in-memory object */\nexport class MemoryLocationConfig implements LocationConfig {\n _baseHref = '';\n _port = 80;\n _protocol = \"http\";\n _host = \"localhost\";\n _hashPrefix = \"\";\n\n port = () => this._port;\n protocol = () => this._protocol;\n host = () => this._host;\n baseHref = () => this._baseHref;\n html5Mode = () => false;\n hashPrefix = (newval?) => isDefined(newval) ? this._hashPrefix = newval : this._hashPrefix;\n dispose = noop;\n}","/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isDefined } from \"../common/predicates\";\nimport { LocationConfig } from \"../common/coreservices\";\n\n/** A `LocationConfig` that delegates to the browser's `location` object */\nexport class BrowserLocationConfig implements LocationConfig {\n private _baseHref = undefined;\n private _hashPrefix = \"\";\n\n constructor(router?, private _isHtml5 = false) { }\n\n port(): number {\n if (location.port) {\n return Number(location.port);\n }\n\n return this.protocol() === 'https' ? 443 : 80;\n }\n\n protocol(): string {\n return location.protocol.replace(/:/g, '');\n }\n\n host(): string {\n return location.hostname;\n }\n\n html5Mode(): boolean {\n return this._isHtml5;\n }\n\n hashPrefix(): string;\n hashPrefix(newprefix?: string): string {\n return isDefined(newprefix) ? this._hashPrefix = newprefix : this._hashPrefix;\n };\n\n baseHref(href?: string): string {\n return isDefined(href) ? this._baseHref = href :\n isDefined(this._baseHref) ? this._baseHref : this.applyDocumentBaseHref();\n }\n\n applyDocumentBaseHref() {\n let baseTag: HTMLBaseElement = document.getElementsByTagName(\"base\")[0];\n return this._baseHref = baseTag ? baseTag.href.substr(location.origin.length) : \"\";\n }\n\n dispose() {}\n}\n","/**\n * # Core classes and interfaces\n *\n * The classes and interfaces that are core to ui-router and do not belong\n * to a more specific subsystem (such as resolve).\n *\n * @coreapi\n * @preferred\n * @module core\n */ /** for typedoc */\n\n// Need to import or export at least one concrete something\nimport {noop} from \"./common/common\";\nimport {UIRouter} from \"./router\";\n\n/**\n * An interface for getting values from dependency injection.\n *\n * This is primarily used to get resolve values for a given token.\n * An instance of the `UIInjector` can be retrieved from the current transition using [[Transition.injector]].\n *\n * ---\n *\n * If no resolve is found for a token, then it will delegate to the native injector.\n * The native injector may be Angular 1 `$injector`, Angular 2 `Injector`, or a simple polyfill.\n *\n * In Angular 2, the native injector might be the root Injector,\n * or it might be a lazy loaded `NgModule` injector scoped to a lazy load state tree.\n */\nexport interface UIInjector {\n /**\n * Gets a value from the injector.\n *\n * For a given token, returns the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this throws an error.\n *\n * #### Example:\n * ```js\n * var myResolve = injector.get('myResolve');\n * ```\n *\n * #### ng1 Example:\n * ```js\n * // Fetch StateService\n * injector.get('$state').go('home');\n * ```\n *\n * #### ng2 Example:\n * ```js\n * import {StateService} from \"ui-router-ng2\";\n * // Fetch StateService\n * injector.get(StateService).go('home');\n * ```\n *\n * #### Typescript Example:\n * ```js\n * var stringArray = injector.get('myStringArray');\n * ```\n *\n * ### `NOWAIT` policy\n *\n * When using [[ResolvePolicy.async]] === `NOWAIT`, the value returned from `get()` is a promise for the result.\n * The promise is not automatically unwrapped.\n *\n * @param token the key for the value to get. May be a string, a class, or any arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n get(token: any): any;\n /** Gets a value as type `T` (generics parameter) */\n get(token: any): T;\n\n /**\n * Asynchronously gets a value from the injector\n *\n * For a given token, returns a promise for the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this triggers the resolve to load.\n *\n * #### Example:\n * ```js\n * return injector.getAsync('myResolve').then(value => {\n * if (value === 'declined') return false;\n * });\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return a Promise for the Dependency Injection value that matches the token\n */\n getAsync(token: any): Promise;\n /** Asynchronously gets a value as type `T` (generics parameter) */\n getAsync(token: any): Promise;\n\n /**\n * Gets a value from the native injector\n *\n * Returns a value from the native injector, bypassing anything in the [[ResolveContext]].\n *\n * Example:\n * ```js\n * let someThing = injector.getNative(SomeToken);\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n getNative(token: any): any;\n getNative(token: any): T;\n}\n\n/** @internalapi */\nexport interface UIRouterPlugin extends Disposable {\n name: string;\n}\n\n/** @internalapi */\nexport abstract class UIRouterPluginBase implements UIRouterPlugin, Disposable {\n abstract name: string;\n dispose(router: UIRouter) { }\n}\n\n/** @internalapi */\nexport interface Disposable {\n /** Instructs the Disposable to clean up any resources */\n dispose(router?: UIRouter);\n}","/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n *
    \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n","/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n","/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n","/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n","/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n","/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n"],"names":["fn","args","length","func_args_length","apply","curried","concat","slice","arguments","initial_args","start","i","result","this","call","_i","funcs","compose","reverse","fn1","fn2","fnName","obj","struct","x","val","isArray","head","tail","filter","not","isString","isFunction","source","target","bind","fnNames","latebind","bindFunction","makeLateRebindFn","Object","keys","reduce","acc","name","array","indexOf","idx","splice","arr","push","opts","defaultsList","_defaultsList","defaultVals","extend","pick","first","second","path","n","propNames","objCopy","prop_1","inArray","key","collection","propName","map","prop","callback","accept","forEach","item","predicateOrMap","errMsg","Error","maxArrayLen","min","Math","memo","keyValTuple","value","undefined","src","dest","toObj","j","o1","o2","t1","tup","all","_arraysEq","isDate","getTime","isRegExp","toString","any","b","_equals","a1","a2","arrayTuples","t","uiview","state","creationContext","id","$type","fqn","input","isNumber","Category","criterion","toMatch","_state","globStrings","glob","Glob","matches","registry","transitionService","eventType","matchObject","options","registeredHook","RegisteredHook","removeHookFn","hooks","deregister","_registeredHooks","removeFrom","hookRegistrationFn","reverseDepthSort","l","r","factor","depthDelta","node","hook","priority","type","mode","isDefined","allTruthyMode","arrayWrap","arrayUnwrap","val1","val2","left","right","paramTypeFn","wrapperFn","arrayEqualsHandler","arrayHandler","_this","dynamic","pattern","inherit","is","$arrayMode","cfg","isShorthand","getStaticDefaultValue","$$fn","isInjectable","urlType","location","paramTypes","DefType","CONFIG","PATH","SEARCH","ParamType","config","isOptional","defaultPolicy","squash","arrayMode","replace","configuredKeys","from","to","max","str","substr","camelCase","$1","toLowerCase","fnStr","fnToString","namedFunctionMatch","match","toStr","_fn","o","isObject","seen","stringifyPattern","JSON","stringify","format","delim","re","RegExp","split","identity","pushR","self","$$state","parent","data","includes","annotate","$injector","services","strictDi","token","p","provide","literal2Resolvable","Resolvable","resolveFn","deps","policy","useFactory","dependencies","useClass","useValue","useExisting","tuple2Resolvable","pipe","tuple","item2Resolvable","decl","resolve","resolveObj","resolvePolicies","objects2Tuples","resolvePolicy","string","param","surroundPattern","url","isHtml5","absolute","baseHref","stripFile","handler","TargetState","isDef","trans","addResolvable","UIRouter","router","Transition","params","entering","hookName","transition","hookFn","lazyLoadFn","lazyLoad","promise","$q","when","then","Array","states","stateRegistry","register","err","reject","ignoredReason","_ignoredReason","trace","traceTransitionIgnored","pending","globals","abort","Rejection","ignored","toPromise","valid","error","orEmptyString","_a","beforehash","hash","_b","search","serviceClass","configurationClass","service","locationService","configuration","locationConfig","dispose","templateFactory","view","get","Ng1ViewConfig","ctrlKeys","compKeys","nonCompKeys","allViewKeys","views","hasAnyKey","join","viewsObject","$default","component","resolveAs","$context","$name","normalized","ViewService","normalizeUIViewTarget","$uiViewName","uiViewName","$uiViewContextAnchor","uiViewContextAnchor","cmpDefs","getBindings","unnestR","$locationProvider","$location","$browser","$sniffer","$rootScope","$http","$templateCache","ng1LocationService","_runtimeServices","stateProvider","StateProvider","stateService","decorator","ng1ViewsBuilder","getStateHookBuilder","viewService","_pluginapi","_viewConfigFactory","getNg1ViewConfigFactory","Ng1LocationServices","monkeyPatchPathParameterType","$get","$inject","$uiRouter","resolvables","resolvable","$watch","approximateDigests","ref","parsed","paramsOnly","paramExpr","el","$uiView","inheritedData","parse","$state","$element","def","uiState","current","uiStateOpts","defaultOpts","href","uiStateParams","isSvg","prototype","isForm","nodeName","attr","isAnchor","toUpperCase","clickable","$timeout","getDef","e","button","which","ctrlKey","metaKey","shiftKey","go","preventDefault","ignorePreventDefaultCount","cancel","relative","stateContext","$current","element","scope","events","on","events_1","event_1","$on","off","events_2","event_2","isFilter","$stateful","includesFilter","$compile","$controller","$transitions","$view","getControllerAs","getResolveAs","restrict","compile","tElement","initial","html","empty","contents","$cfg","viewDecl","getTemplate","noop","resolveCtx","ResolveContext","traceUIViewFill","link","controller","controllerAs","locals","getLocals","controllerInstance","$scope","children","registerControllerCallbacks","cmp_1","kebobName","kebobString","tagRegexp_1","deregisterWatch_1","directiveEl","tagName","exec","angular","ctrlInstance","$onInit","hasComponentImpl","viewState","hookOptions","uiOnParamsChanged","viewCreationTrans_1","getResolvable","onSuccess","$transition$","exiting","toParams","fromParams","toSchema","treeChanges","paramSchema","fromSchema","changedToParams","equals","changedKeys_1","newValues","uiCanExit","id_1","_uiCanExitId","prevTruthyAnswer_1","redirectedFrom","criteria","onBefore","ids","ng_from_global","ng","ng_from_import","ng_from_import.module","propEq","curry","ctor","constructor","eq","other","v","text","regexpString","seg","regexp","test","StateObject","create","stateDecl","isStateClass","__stateObjectCache","nameGlob","fromString","root","defaults","matchingKeys","parameters","values","hasOwnProperty","parameter","find","tis","isUndefined","isNull","isNullOrUndefined","or","isState","isPromise","and","notImplemented","fnname","global","fromJson","toJson","cb","assign","_extend","extra","_inArray","_removeFrom","pushTo","_pushTo","deregAll","functions","mergeR","mapObj","allTrueR","elem","anyTrueR","flattenR","uniqR","unnest","flatten","assertPredicate","assertFn","assertMap","pairs","silenceUncaughtInPromise","catch","silentRejection","_items","_limit","Queue","items","shift","size","RejectType","message","detail","d","detailString","_transitionRejection","rejection","SUPERSEDED","redirected","superseded","INVALID","IGNORED","ABORTED","ERROR","errored","viewConfigString","viewConfig","$id","consoletable","console","table","log","_tid","_rid","transLbl","Trace","enabled","categories","k","parseInt","isNaN","normalizedCat","category","_enabled","_set","TRANSITION","step","HOOK","event","context","functionToString","maxLength","hookResult","transitionOptions","RESOLVE","reason","finalState","viewData","UIVIEW","padString","uiViewString","traceUIViewEvent","VIEWCONFIG","mapping","uiViewData","ui-view fqn","state: view name","sort","a","localeCompare","TransitionHookPhase","TransitionHookScope","_stateRegistry","_identifier","_params","_options","_definition","matcher","base","stateName","newParams","newOpts","defaultOptions","traceData","hookPhase","RUN","isActive","TransitionHook","defaultErrorHandler","_deregistered","notCurrent","getNotCurrentRejection","traceHookInvocation","handleError","getErrorHandler","handleResult","getResultHandler","synchronous","normalize","invokeLimit","invokeCount","handleHookResult","traceHookResult","aborted","isTargetState","_disposed","_aborted","isSuperseded","waitFor","prev","nextHook","invokeHook","doneCallback","remainingHooks","chain","logError","tranSvc","matchCriteria","removeHookFromRegistry","nodes","matching","matchState","_getPathTypes","_getDefaultMatchCriteria","mn","pathtype","isStateHook","STATE","_matchingNodes","_getMatchingNodes","every","HookBuilder","phase","_getEvents","buildHooks","hookType","matchingHooks","getMatchingHooks","baseHookOptions","criteriaMatchPath","transitionHook","tupleSort","reverseSort","isCreate","CREATE","reg","getHooks","sub","decode","isSearch","ArrayType","hasOwn","urlMatcherFactory","getType","unwrapShorthand","arrayDefaults","arrayParamNomenclature","getArrayMode","$asArray","raw","getSquashPolicy","defaultSquashPolicy","getReplace","Param","replaceSpecialValues","_defaultValueCache","defaultValue","invoke","getDefaultValue","$normalize","encoded","encode","paramValues","params_1","values1","values2","changed","validates","stateOrNode","PathNode","res","clone","getParamVal","paramDef","pDef","applyPairs","paramsFn","diff","PathUtils","targetState","applyRawParams","fromPath","toPath","buildPath","inheritParams","viewDecls","subPath","viewConfigs","createViewConfig","toKeys","noInherit","toNode","toParamVals","incomingParamVals","omit","fromParamVals","nodeParamVals","ownParamVals","reloadState","keep","node1","node2","nonDynamicParams","nodesMatch","retained","retainedWithToParams","retainedNode","cloned","pathA","pathB","done","nodeA","nodeB","predicate","elementIdx","defaultResolvePolicy","async","arg1","resolved","literal","thisPolicy","statePolicy","resolveContext","findNode","maybeWaitForRx","getPolicy","observable$","cached","cache","take","getDependencies","resolvedDeps","resolvedValue","traceResolvableResolved","LAZY","EAGER","WAIT","NOWAIT","RXWAIT","whens","ALL_WHENS","EAGER_WHENS","NATIVE_INJECTOR_TOKEN","_path","newResolvables","matchedWhens","traceResolvePath","matchesPolicy","acceptedVals","whenOrAsync","promises","nodeResolvables","nowait","wait","subContext","getResult","_injector","UIInjectorImpl","availableResolvables","_node","fromInjector","injector","getNative","native","stateSelf","defer","_deferred","_targetState","_transitionCount","buildToPath","_treeChanges","createTransitionHookRegFns","onCreateHooks","_hookBuilder","buildHooksForPhase","invokeHooks","applyViewConfigs","makeEvent","enteringStates","$from","$to","compare","pathname","freeze","pathName","getTokens","topath","targetNode","addResolvables","rf","originalTransition","redirects","redirectOpts","newOptions","withOptions","newTransition","originalEnteringNodes","redirectEnteringNodes","nodeIsReloading","tc","reload","nodeSchemas","schema","toVals","fromVals","changes","_changedParams","same","newTC","pendTC","runAllHooks","getHooksFor","allBeforeHooks","BEFORE","lastStartedTransitionId","transitionHistory","enqueue","traceTransitionStart","allRunHooks","traceSuccess","success","SUCCESS","traceError","_error","abstract","paramDefs","invalidParams","fromStateOrName","toStateOrName","avoidEmptyHash","stringifyPatternFn","isRejection","isRejectionPromise","beforeAfterSubstr","char","hostRegex","splitHash","splitQuery","splitEqual","trimHashVal","ParamTypes","types","defaultTypes","definition","definitionFn","typeQueue","_flushTypeQueue","makeDefaultType","valToString","defaultTypeBase","String","query","int","bool","Boolean","date","getFullYear","getMonth","getDate","capture","Date","valueOf","json","initDefaultTypes","defaultRuleSortFn","StateParams","parentParams","parents","ancestors","inherited","inheritList","parseUrl","charAt","substring","getUrlBuilder","$urlMatcherFactoryProvider","stateDec","paramMap","paramConfig","reloadOnSearch","isMatcher","navigable","append","getNavigableBuilder","isRoot","getParamsBuilder","paramFactory","urlParams","nonUrlParams","fromConfig","builders","nameBuilder","selfBuilder","parentName","dataBuilder","pathBuilder","includesBuilder","resolvablesBuilder","StateBuilder","parentFn","segments","pop","_states","StateMatcher","stateOrName","matchGlob","isStr","isRelative","resolvePath","baseState","splitName","pathLength","relName","$registry","$urlRouter","builder","listeners","queue","StateQueueManager","flush","registered","orphans","previousQueueLength","getState","name_1","build","orphanIdx","existingState","existingFutureState","attachRoute","listener","s","rule","urlRuleFactory","_router","stateQueue","urlRouter","_registerRoot","StateRegistry","rootStateDef","#","_root","stateDefinition","getChildren","deregistered","$ur","rules","removeRule","deregisteredStates","_deregisterTree","found","func","memoizeTo","splitOnSlash","splitOnDelim","strict","caseInsensitive","m","segment","placeholder","searchPlaceholder","last","patterns","checkParamErrors","UrlMatcher","nameValidator","matchDetails","index","makeRegexpType","_segments","lastIndex","fromSearch","_compiled","quoteRegExp","_children","_cache","allParams","pathParams","searchParams","nPathSegments","urlm","reverseString","decodePathArray","findParam","validParamVal","isValid","isDefaultValue","urlMatchers","pathSegmentsAndParams","getDetails","queryParams","pathString","encodeDashes","encodeURIComponent","queryString","paramDetails","c","charCodeAt","joinNeighborsR","weights","weightsA","weightsB","padVal","len","padArrays","cmp","_isStrictMode","_isCaseInsensitive","UrlMatcherFactory","_defaultSquashPolicy","_getConfig","object","UrlRuleFactory","what","makeRule","_what","fromUrlMatcher","fromState","fromRegExp","BaseUrlRule","urlMatcher","_handler","details","matchPriority","optional","transitionTo","sticky","Number","prioritySort","typeSort","URLMATCHER","REGEXP","RAW","OTHER","urlMatcherSort","idSort","useMatchPriority","createProxyFunctions","UrlRouter","listen","_rules","_otherwiseFn","compareFn","stableSort","_sortFn","_sorted","arrOfWrapper","wrapperA","wrapperB","cmpDiff","wrapper","ensureSorted","best","weight","checkRule","evt","defaultPrevented","$url","urlService","newurl","applyResult","_stopFn","onChange","sync","read","html5Mode","hashPrefix","appendBasePath","slash","port","protocol","host","isUrlRule","_id","handlerFn","getHandlerFn","urlParts","interceptDeferred","_rootViewContext","_registeredUIViews","_uiViews","_activeViewConfigs","_viewConfigs","_rootContext","viewType","factory","_viewConfigFactories","cfgFactory","cfgs","traceViewServiceEvent","count","uiViewsByFqn","uiv","depthCompare","depthFn","posNeg","uiView","stateDepth","matchingConfigs","viewConfigDepth","traceViewSync","configUpdated","traceViewServiceUIViewEvent","uiViews","rawViewName","viewAtContext","relativeViewNameSugar","anchor","vc","vcSegments","uivSegments","negOffset","fqnToFirstSegment","uiViewContext","UIRouterGlobals","clear","successfulTransitions","makeStub","locationServicesFns","locationConfigFns","umfFns","rulesFns","syncFns","lateBind","locationServices","umf","UrlService","_routerInstance","locationServiceStub","locationConfigStub","TransitionService","StateService","disposable","_disposables","plugin","pluginInstance","_plugins","pluginName","registerAddCoreResolvables","onCreate","addCoreResolvables","redirectToHook","redirect","redirectTo","registerRedirectToHook","onStart","onExitHook","makeEnterExitRetainHook","registerOnExitHook","onExit","onRetainHook","registerOnRetainHook","onRetain","onEnterHook","registerOnEnterHook","onEnter","eagerResolvePath","registerEagerResolvePath","lazyResolveState","registerLazyResolveState","loadEnteringViews","enteringViews","load","registerLoadEnteringViews","onFinish","activateViews","exitingViews","deactivateViewConfig","activateViewConfig","registerActivateViews","updateGlobalState","clearCurrentTransition","copy","registerUpdateGlobalState","updateUrl","urlOptions","update","registerUpdateUrl","lazyLoadHook","lazyLoadState","orig","identifier","parts","registerLazyLoadHook","hookOrder","HANDLE_RESULT","REJECT_ERROR","registerIgnoredTransitionHook","ignoredHook","registerInvalidTransitionHook","invalidTransitionHook","defaultTransOpts","notify","custom","_deregisterHookFns","_defineCorePaths","_defineCoreEvents","_registerCoreTransitionHooks","hooksArray","Phase","TH","paths","_criteriaPaths","_defineEvent","LOG_REJECTED_RESULT","THROW_ERROR","LOG_ERROR","_definePathType","TransitionEventType","_eventTypes","cmpByPhase","hookScope","fns","addCoreResolves","invalid","eagerResolve","lazyResolve","loadViews","updateGlobals","$error$","stack","getters","boundFns","invalidCallbacks","toState","nextCallback","callbackQueue","dequeue","checkForRedirect","invokeNextCallback","makeTargetState","latestThing","peekTail","latest","transOpts","latestSuccess","currentPath","getCurrentPath","exists","_handleInvalidTargetState","rejectedTransitionHandler","isLatest","run","errorHandler","transitionToPromise","include","lossy","$inherit","nav","_defaultErrorHandler","Promise","deferred","STRIP_COMMENTS","ARGUMENT_NAMES","has","ensureExist","keyValsToObjectR","accum","getParams","buildUrl","loc","searchObject","fireAfterUpdate","_listeners","_get","_location","_history","history","BaseLocationServices","_super","addEventListener","_listener","__extends","HashLocationService","title","removeEventListener","MemoryLocationService","_url","_config","PushStateLocationService","basePrefix","_getBasePrefix","exactMatch","startsWith","fullUrl","replaceState","pushState","_port","_protocol","_host","_baseHref","newval","_hashPrefix","_isHtml5","BrowserLocationConfig","hostname","newprefix","applyDocumentBaseHref","baseTag","document","getElementsByTagName","origin","hashLocationPlugin","locationPluginFactory","pushStateLocationPlugin","memoryLocationPlugin","MemoryLocationConfig","UIRouterPluginBase","makeComponentTemplate","bindings","template","getController","results","provider","controllerProvider","providerFn","version","minor","$templateRequest","TemplateFactory","_useHttp","asTemplate","asComponent","templateUrl","fromUrl","templateProvider","fromProvider","componentProvider","fromComponentProvider","headers","Accept","response","prefix","kebob","kebobed","attrs","getComponentBindings","attrName","resolveName","scopeBindings","bindToController","bindingsObj","onInvalid","$state$","_lp","_urlListeners","newUrl","_loc","_browser","pathType","~","/","~~","~2F","_urlRouter","UrlRouterProvider","ruleFn","otherwise","injectableHandler","$match","$stateParams","deferIntercept","module","mod_init","mod_util","mod_rtr","mod_state","mod_main","getProviderFor","serviceName","$urp","runBlock","watchDigests","uiRouter","urlRouterProvider","$urlMatcherFactory","uiSref","ctx","require","uiSrefActive","unlinkInfoFn","active","$$addStateInfo","$set","getTypeInfo","rawDef","processedDef","parseStateRef","uiSrefOpts","$eval","onStatesChanged","clickHook","bindEvents","inputAttrs","watchDeregFns","field","$observe","expr","$interpolate","$attrs","stateParams","activeClass","stateInfo","splitClasses","getClasses","stateList","allClasses","activeEqClass","fuzzyClasses","exactClasses","addClasses","removeClasses","cls","$evalAsync","className","addClass","removeClass","uiSrefActiveEq","addState","newState","updateAfterTransition","directive","$IsStateFilter","$IncludedByStateFilter","$animate","$uiViewScroll","enter","leave","config1","config2","rootData","terminal","transclude","tAttrs","$transclude","previousEl","remove","currentScope","activeUIView","$destroy","currentEl","_viewData_1","renderer","$$animLeave","newScope","$new","animEnter","animLeave","$uiViewData","$uiViewAnim","$animEnter","$animLeave","$emit","autoScrollExp","cleanupLastView","onloadExp","unregister","getRenderer","configsEqual","traceUIViewConfigUpdated","updateView","fromParentTagConfig","fromParentTag","registerUIView","$ViewDirectiveFill","useAnchorScroll","$anchorScroll","scrollIntoView"],"mappings":"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"} \ No newline at end of file +{ + "version": 3, + "file": "angular-ui-router.min.js", + "sources": [ + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/hof.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/predicates.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/common.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/trace.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookRegistry.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/hookBuilder.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/paramType.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/param.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/strings.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateBuilder.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcher.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlRouter.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/coreResolvables.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/onEnterExitRetain.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/lazyLoad.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/ignoredTransition.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/invalidTransition.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/utils.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/plugins.ts", + "@uirouter/angularjs/src/statebuilders/views.ts", + "@uirouter/angularjs/src/templateFactory.ts", + "@uirouter/angularjs/src/services.ts", + "@uirouter/angularjs/src/directives/stateDirectives.ts", + "@uirouter/angularjs/src/stateFilters.ts", + "@uirouter/angularjs/src/directives/viewDirective.ts", + "@uirouter/angularjs/src/angular.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/glob.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateObject.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/coreservices.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/common/@uirouter/core/common/queue.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/rejectFactory.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/interface.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/targetState.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionHook.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/path/@uirouter/core/path/pathNode.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/path/@uirouter/core/path/pathFactory.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolvable.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/interface.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/resolve/@uirouter/core/resolve/resolveContext.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transition.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/paramTypes.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/params/@uirouter/core/params/stateParams.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateMatcher.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateQueueManager.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateRegistry.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlMatcherFactory.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlRule.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/view/@uirouter/core/view/view.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/globals.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/url/@uirouter/core/url/urlService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/router.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/redirectTo.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/resolve.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/views.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/updateGlobals.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/hooks/@uirouter/core/hooks/url.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionEventType.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/transition/@uirouter/core/transition/transitionService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/state/@uirouter/core/state/stateService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/q.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/injector.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/baseLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/hashLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/pushStateLocationService.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/memoryLocationConfig.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/vanilla/@uirouter/core/vanilla/browserLocationConfig.ts", + "@uirouter/angularjs/node_modules/@uirouter/core/lib-esm/@uirouter/core/interface.ts", + "@uirouter/angularjs/src/stateProvider.ts", + "@uirouter/angularjs/src/statebuilders/onEnterExitRetain.ts", + "@uirouter/angularjs/src/locationServices.ts", + "@uirouter/angularjs/src/urlRouterProvider.ts", + "@uirouter/angularjs/src/viewScroll.ts", + "@uirouter/angularjs/src/index.ts" + ], + "sourcesContent": [ + "/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @module common_hof\n */ /** */\n\nimport {Predicate} from \"./common\";\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * Stolen from: http://stackoverflow.com/questions/4394747/javascript-curry-function\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn: Function): Function {\n let initial_args = [].slice.apply(arguments, [1]);\n let func_args_length = fn.length;\n\n function curried(args: any[]) {\n if (args.length >= func_args_length)\n return fn.apply(null, args);\n return function () {\n return curried(args.concat([].slice.apply(arguments)));\n };\n }\n return curried(initial_args);\n}\n\n\n\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n let args = arguments;\n let start = args.length - 1;\n return function() {\n let i = start, result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe(...funcs: Function[]): (obj: any) => any {\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport const prop = (name: string) =>\n (obj: any) => obj && obj[name];\n\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport const propEq = curry((name: string, val: any, obj: any) => obj && obj[name] === val);\n\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport const parse = (name: string) =>\n pipe.apply(null, name.split(\".\").map(prop));\n\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport const not: (fn: Predicate) => Predicate = (fn: Predicate) =>\n (...args: any[]) => !fn.apply(null, args);\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) && fn2.apply(null, args);\n}\n\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1: Predicate, fn2: Predicate): Predicate {\n return (...args: any[]) => fn1.apply(null, args) || fn2.apply(null, args);\n}\n\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport const all = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b && !!fn1(x), true) as boolean;\nexport const any = (fn1: Predicate) =>\n (arr: any[]) => arr.reduce((b, x) => b || !!fn1(x), false) as boolean;\n\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport const is = (ctor: { new(...args): T }) =>\n (obj: any): obj is T =>\n (obj != null && obj.constructor === ctor || obj instanceof ctor);\n\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport const eq: (comp: any) => Predicate = (val: any) => (other: any) =>\n val === other;\n\n/** Given a value, returns a function which returns the value */\nexport const val = (v: T) => () => v;\n\n\n\nexport function invoke(fnName: string): Function;\nexport function invoke(fnName: string, args: any[]): Function;\nexport function invoke(fnName: string, args?: any[]): Function {\n return (obj: any) =>\n obj[fnName].apply(obj, args);\n}\n\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct: Function[][]): Function {\n return function(x: any) {\n for (var i = 0; i < struct.length; i++) {\n if (struct[i][0](x)) return struct[i][1](x);\n }\n };\n}\n\n", + "/** Predicates\n *\n * These predicates return true/false based on the input.\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_predicates\n */\n/** */\nimport { and, not, pipe, prop, or } from \"./hof\";\nimport { Predicate } from \"./common\"; // has or is using\nimport { StateObject } from \"../state/stateObject\";\n\nconst toStr = Object.prototype.toString;\nconst tis = (t: string) => (x: any) => typeof(x) === t;\nexport const isUndefined = tis('undefined');\nexport const isDefined = not(isUndefined);\nexport const isNull = (o: any) => o === null;\nexport const isNullOrUndefined = or(isNull, isUndefined);\nexport const isFunction: (x: any) => x is Function = tis('function');\nexport const isNumber: (x: any) => x is number = tis('number');\nexport const isString = <(x: any) => x is string> tis('string');\nexport const isObject = (x: any) => x !== null && typeof x === 'object';\nexport const isArray = Array.isArray;\nexport const isDate: (x: any) => x is Date = ((x: any) => toStr.call(x) === '[object Date]');\nexport const isRegExp: (x: any) => x is RegExp = ((x: any) => toStr.call(x) === '[object RegExp]');\nexport const isState: (x: any) => x is StateObject = StateObject.isState;\n\n/**\n * Predicate which checks if a value is injectable\n *\n * A value is \"injectable\" if it is a function, or if it is an ng1 array-notation-style array\n * where all the elements in the array are Strings, except the last one, which is a Function\n */\nexport function isInjectable(val: any) {\n if (isArray(val) && val.length) {\n let head = val.slice(0, -1), tail = val.slice(-1);\n return !(head.filter(not(isString)).length || tail.filter(not(isFunction)).length);\n }\n return isFunction(val);\n}\n\n/**\n * Predicate which checks if a value looks like a Promise\n *\n * It is probably a Promise if it's an object, and it has a `then` property which is a Function\n */\nexport const isPromise = <(x: any) => x is Promise> and(isObject, pipe(prop('then'), isFunction));\n\n", + "/**\n * Random utility functions used in the UI-Router code\n *\n * These functions are exported, but are subject to change without notice.\n *\n * @preferred\n * @module common\n */\n/** for typedoc */\nimport { isFunction, isString, isArray, isRegExp, isDate } from \"./predicates\";\nimport { all, any, prop, curry, not } from \"./hof\";\nimport { services } from \"./coreservices\";\nimport { StateObject } from \"../state/stateObject\";\n\ndeclare const global;\nexport const root: any = (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) || this;\nconst angular = root.angular || {};\n\nexport const fromJson = angular.fromJson || JSON.parse.bind(JSON);\nexport const toJson = angular.toJson || JSON.stringify.bind(JSON);\nexport const forEach = angular.forEach || _forEach;\nexport const extend = Object.assign || _extend;\nexport const equals = angular.equals || _equals;\nexport function identity(x: any) { return x; }\nexport function noop(): any {}\n\nexport type Mapper = (x: X, key?: (string|number)) => T;\nexport interface TypedMap { [key: string]: T; }\nexport type Predicate = (x?: X) => boolean;\n/**\n * An ng1-style injectable\n *\n * This could be a (non-minified) function such as:\n * ```js\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an explicitly annotated function (minify safe)\n * ```js\n * injectableFunction.$inject = [ 'SomeDependency' ];\n * function injectableFunction(SomeDependency) {\n *\n * }\n * ```\n *\n * or an array style annotated function (minify safe)\n * ```js\n * ['SomeDependency', function injectableFunction(SomeDependency) {\n *\n * }];\n * ```\n *\n * @publicapi\n */\nexport type IInjectable = (Function|any[]);\n\nexport interface Obj extends Object {\n [key: string]: any;\n}\n\n/**\n * Builds proxy functions on the `to` object which pass through to the `from` object.\n *\n * For each key in `fnNames`, creates a proxy function on the `to` object.\n * The proxy function calls the real function on the `from` object.\n *\n *\n * #### Example:\n * This example creates an new class instance whose functions are prebound to the new'd object.\n * ```js\n * class Foo {\n * constructor(data) {\n * // Binds all functions from Foo.prototype to 'this',\n * // then copies them to 'this'\n * bindFunctions(Foo.prototype, this, this);\n * this.data = data;\n * }\n *\n * log() {\n * console.log(this.data);\n * }\n * }\n *\n * let myFoo = new Foo([1,2,3]);\n * var logit = myFoo.log;\n * logit(); // logs [1, 2, 3] from the myFoo 'this' instance\n * ```\n *\n * #### Example:\n * This example creates a bound version of a service function, and copies it to another object\n * ```\n *\n * var SomeService = {\n * this.data = [3, 4, 5];\n * this.log = function() {\n * console.log(this.data);\n * }\n * }\n *\n * // Constructor fn\n * function OtherThing() {\n * // Binds all functions from SomeService to SomeService,\n * // then copies them to 'this'\n * bindFunctions(SomeService, this, SomeService);\n * }\n *\n * let myOtherThing = new OtherThing();\n * myOtherThing.log(); // logs [3, 4, 5] from SomeService's 'this'\n * ```\n *\n * @param source A function that returns the source object which contains the original functions to be bound\n * @param target A function that returns the target object which will receive the bound functions\n * @param bind A function that returns the object which the functions will be bound to\n * @param fnNames The function names which will be bound (Defaults to all the functions found on the 'from' object)\n * @param latebind If true, the binding of the function is delayed until the first time it's invoked\n */\nexport function createProxyFunctions(source: Function, target: Obj, bind: Function, fnNames?: string[], latebind = false): Obj {\n const bindFunction = (fnName) =>\n source()[fnName].bind(bind());\n\n const makeLateRebindFn = fnName => function lateRebindFunction() {\n target[fnName] = bindFunction(fnName);\n return target[fnName].apply(null, arguments);\n };\n\n fnNames = fnNames || Object.keys(source());\n\n return fnNames.reduce((acc, name) => {\n acc[name] = latebind ? makeLateRebindFn(name) : bindFunction(name);\n return acc;\n }, target);\n}\n\n\n/**\n * prototypal inheritance helper.\n * Creates a new object which has `parent` object as its prototype, and then copies the properties from `extra` onto it\n */\nexport const inherit = (parent: Obj, extra?: Obj) =>\n extend(Object.create(parent), extra);\n\n/** Given an array, returns true if the object is found in the array, (using indexOf) */\nexport const inArray: typeof _inArray = curry(_inArray) as any;\nexport function _inArray(array: any[], obj: any): boolean;\nexport function _inArray(array: any[]): (obj: any) => boolean;\nexport function _inArray(array, obj?): any {\n return array.indexOf(obj) !== -1;\n}\n\n/**\n * Given an array, and an item, if the item is found in the array, it removes it (in-place).\n * The same array is returned\n */\nexport const removeFrom: typeof _removeFrom = curry(_removeFrom) as any;\nexport function _removeFrom(array: T[], obj: T): T[];\nexport function _removeFrom(array: T[]): (obj: T) => T[];\nexport function _removeFrom(array, obj?) {\n let idx = array.indexOf(obj);\n if (idx >= 0) array.splice(idx, 1);\n return array;\n}\n\n/** pushes a values to an array and returns the value */\nexport const pushTo: typeof _pushTo = curry(_pushTo) as any;\nexport function _pushTo(arr: T[], val: T): T ;\nexport function _pushTo(arr: T[]): (val: T) => T ;\nexport function _pushTo(arr, val?): any {\n return (arr.push(val), val);\n}\n\n/** Given an array of (deregistration) functions, calls all functions and removes each one from the source array */\nexport const deregAll = (functions: Function[]) =>\n functions.slice().forEach(fn => {\n typeof fn === 'function' && fn();\n removeFrom(functions, fn);\n });\n/**\n * Applies a set of defaults to an options object. The options object is filtered\n * to only those properties of the objects in the defaultsList.\n * Earlier objects in the defaultsList take precedence when applying defaults.\n */\nexport function defaults(opts, ...defaultsList: Obj[]) {\n let _defaultsList = defaultsList.concat({}).reverse();\n let defaultVals = extend.apply(null, _defaultsList);\n return extend({}, defaultVals, pick(opts || {}, Object.keys(defaultVals)));\n}\n\n/** Reduce function that merges each element of the list into a single object, using extend */\nexport const mergeR = (memo: Obj, item: Obj) => extend(memo, item);\n\n/**\n * Finds the common ancestor path between two states.\n *\n * @param {Object} first The first state.\n * @param {Object} second The second state.\n * @return {Array} Returns an array of state names in descending order, not including the root.\n */\nexport function ancestors(first: StateObject, second: StateObject) {\n let path: StateObject[] = [];\n\n for (let n in first.path) {\n if (first.path[n] !== second.path[n]) break;\n path.push(first.path[n]);\n }\n return path;\n}\n\n/**\n * Return a copy of the object only containing the whitelisted properties.\n *\n * #### Example:\n * ```\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = pick(foo, ['a', 'b']); // { a: 1, b: 2 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the whitelisted property names\n */\nexport function pick(obj: Obj, propNames: string[]): Obj {\n let objCopy = {};\n for (let prop in obj) {\n if (propNames.indexOf(prop) !== -1) {\n objCopy[prop] = obj[prop];\n }\n }\n return objCopy;\n}\n\n/**\n * Return a copy of the object omitting the blacklisted properties.\n *\n * @example\n * ```\n *\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = omit(foo, ['a', 'b']); // { c: 3 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the blacklisted property names\n */\nexport function omit(obj: Obj, propNames: string[]): Obj {\n return Object.keys(obj)\n .filter(not(inArray(propNames)))\n .reduce((acc, key) => (acc[key] = obj[key], acc), {});\n}\n\n\n/** Given an array of objects, maps each element to a named property of the element. */\nexport function pluck(collection: Obj[], propName: string): T[];\n/** Given an object, maps each property of the object to a named property of the property. */\nexport function pluck(collection: { [key: string]: any }, propName: string): { [key: string]: any };\n/**\n * Maps an array, or object to a property (by name)\n */\nexport function pluck(collection: any, propName: string): any {\n return map(collection, > prop(propName));\n}\n\n\n/** Given an array of objects, returns a new array containing only the elements which passed the callback predicate */\nexport function filter(collection: T[], callback: (t: T, key?: number) => boolean): T[];\n/** Given an object, returns a new object with only those properties that passed the callback predicate */\nexport function filter(collection: TypedMap, callback: (t: T, key?: string) => boolean): TypedMap;\n/** Filters an Array or an Object's properties based on a predicate */\nexport function filter(collection: any, callback: Function): T {\n let arr = isArray(collection), result: any = arr ? [] : {};\n let accept = arr ? x => result.push(x) : (x, key) => result[key] = x;\n forEach(collection, function(item, i) {\n if (callback(item, i)) accept(item, i);\n });\n return result;\n}\n\n\n/** Given an object, return the first property of that object which passed the callback predicate */\nexport function find(collection: TypedMap, callback: Predicate): T;\n/** Given an array of objects, returns the first object which passed the callback predicate */\nexport function find(collection: T[], callback: Predicate): T;\n/** Finds an object from an array, or a property of an object, that matches a predicate */\nexport function find(collection: any, callback: any) {\n let result;\n\n forEach(collection, function(item, i) {\n if (result) return;\n if (callback(item, i)) result = item;\n });\n\n return result;\n}\n\n/** Given an object, returns a new object, where each property is transformed by the callback function */\nexport let mapObj: (collection: { [key: string]: T }, callback: Mapper) => { [key: string]: U } = map;\n/** Given an array, returns a new array, where each element is transformed by the callback function */\nexport function map(collection: T[], callback: Mapper): U[];\nexport function map(collection: { [key: string]: T }, callback: Mapper): { [key: string]: U };\n/** Maps an array or object properties using a callback function */\nexport function map(collection: any, callback: any): any {\n let result = isArray(collection) ? [] : {};\n forEach(collection, (item, i) => result[i] = callback(item, i));\n return result;\n}\n\n/**\n * Given an object, return its enumerable property values\n *\n * @example\n * ```\n *\n * let foo = { a: 1, b: 2, c: 3 }\n * let vals = values(foo); // [ 1, 2, 3 ]\n * ```\n */\nexport const values: ( (obj: TypedMap) => T[]) = (obj: Obj) =>\n Object.keys(obj).map(key => obj[key]);\n\n/**\n * Reduce function that returns true if all of the values are truthy.\n *\n * @example\n * ```\n *\n * let vals = [ 1, true, {}, \"hello world\"];\n * vals.reduce(allTrueR, true); // true\n *\n * vals.push(0);\n * vals.reduce(allTrueR, true); // false\n * ```\n */\nexport const allTrueR = (memo: boolean, elem: any) => memo && elem;\n\n/**\n * Reduce function that returns true if any of the values are truthy.\n *\n * * @example\n * ```\n *\n * let vals = [ 0, null, undefined ];\n * vals.reduce(anyTrueR, true); // false\n *\n * vals.push(\"hello world\");\n * vals.reduce(anyTrueR, true); // true\n * ```\n */\nexport const anyTrueR = (memo: boolean, elem: any) => memo || elem;\n\n/**\n * Reduce function which un-nests a single level of arrays\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnestR = (memo: any[], elem: any[]) => memo.concat(elem);\n\n/**\n * Reduce function which recursively un-nests all arrays\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flattenR = (memo: any[], elem: any) =>\n isArray(elem) ? memo.concat(elem.reduce(flattenR, [])) : pushR(memo, elem);\n\n/**\n * Reduce function that pushes an object to an array, then returns the array.\n * Mostly just for [[flattenR]] and [[uniqR]]\n */\nexport function pushR(arr: any[], obj: any) {\n arr.push(obj);\n return arr;\n}\n\n/** Reduce function that filters out duplicates */\nexport const uniqR = (acc: T[], token: T): T[] =>\n inArray(acc, token) ? acc : pushR(acc, token);\n\n/**\n * Return a new array with a single level of arrays unnested.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * unnest(input) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport const unnest = (arr: any[]) => arr.reduce(unnestR, []);\n/**\n * Return a completely flattened version of an array.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * flatten(input) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport const flatten = (arr: any[]) => arr.reduce(flattenR, []);\n\n/**\n * Given a .filter Predicate, builds a .filter Predicate which throws an error if any elements do not pass.\n * @example\n * ```\n *\n * let isNumber = (obj) => typeof(obj) === 'number';\n * let allNumbers = [ 1, 2, 3, 4, 5 ];\n * allNumbers.filter(assertPredicate(isNumber)); //OK\n *\n * let oneString = [ 1, 2, 3, 4, \"5\" ];\n * oneString.filter(assertPredicate(isNumber, \"Not all numbers\")); // throws Error(\"\"Not all numbers\"\");\n * ```\n */\nexport const assertPredicate: (predicate: Predicate, errMsg: (string|Function)) => Predicate = assertFn;\n/**\n * Given a .map function, builds a .map function which throws an error if any mapped elements do not pass a truthyness test.\n * @example\n * ```\n *\n * var data = { foo: 1, bar: 2 };\n *\n * let keys = [ 'foo', 'bar' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // values is [1, 2]\n *\n * let keys = [ 'foo', 'bar', 'baz' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // throws Error(\"Key not found\")\n * ```\n */\nexport const assertMap: (mapFn: (t: T) => U, errMsg: (string|Function)) => (t: T) => U = assertFn;\nexport function assertFn(predicateOrMap: Function, errMsg: (string|Function) = \"assert failure\"): any {\n return (obj) => {\n let result = predicateOrMap(obj);\n if (!result) {\n throw new Error(isFunction(errMsg) ? ( errMsg)(obj) : errMsg);\n }\n return result;\n };\n}\n\n/**\n * Like _.pairs: Given an object, returns an array of key/value pairs\n *\n * @example\n * ```\n *\n * pairs({ foo: \"FOO\", bar: \"BAR }) // [ [ \"foo\", \"FOO\" ], [ \"bar\": \"BAR\" ] ]\n * ```\n */\nexport const pairs = (obj: Obj) =>\n Object.keys(obj).map(key => [ key, obj[key]] );\n\n/**\n * Given two or more parallel arrays, returns an array of tuples where\n * each tuple is composed of [ a[i], b[i], ... z[i] ]\n *\n * @example\n * ```\n *\n * let foo = [ 0, 2, 4, 6 ];\n * let bar = [ 1, 3, 5, 7 ];\n * let baz = [ 10, 30, 50, 70 ];\n * arrayTuples(foo, bar); // [ [0, 1], [2, 3], [4, 5], [6, 7] ]\n * arrayTuples(foo, bar, baz); // [ [0, 1, 10], [2, 3, 30], [4, 5, 50], [6, 7, 70] ]\n * ```\n */\nexport function arrayTuples(...args: any[]): any[] {\n if (args.length === 0) return [];\n let maxArrayLen = args.reduce((min, arr) => Math.min(arr.length, min), 9007199254740991); // aka 2^53 − 1 aka Number.MAX_SAFE_INTEGER\n\n let i, result = [];\n\n for (i = 0; i < maxArrayLen; i++) {\n // This is a hot function\n // Unroll when there are 1-4 arguments\n switch (args.length) {\n case 1: result.push([args[0][i]]); break;\n case 2: result.push([args[0][i], args[1][i]]); break;\n case 3: result.push([args[0][i], args[1][i], args[2][i]]); break;\n case 4: result.push([args[0][i], args[1][i], args[2][i], args[3][i]]); break;\n default:\n result.push(args.map(array => array[i])); break;\n }\n }\n\n return result;\n}\n\n/**\n * Reduce function which builds an object from an array of [key, value] pairs.\n *\n * Each iteration sets the key/val pair on the memo object, then returns the memo for the next iteration.\n *\n * Each keyValueTuple should be an array with values [ key: string, value: any ]\n *\n * @example\n * ```\n *\n * var pairs = [ [\"fookey\", \"fooval\"], [\"barkey\", \"barval\"] ]\n *\n * var pairsToObj = pairs.reduce((memo, pair) => applyPairs(memo, pair), {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n *\n * // Or, more simply:\n * var pairsToObj = pairs.reduce(applyPairs, {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n * ```\n */\nexport function applyPairs(memo: TypedMap, keyValTuple: any[]) {\n let key: string, value: any;\n if (isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n}\n\n/** Get the last element of an array */\nexport function tail(arr: T[]): T {\n return arr.length && arr[arr.length - 1] || undefined;\n}\n\n/**\n * shallow copy from src to dest\n */\nexport function copy(src: Obj, dest?: Obj) {\n if (dest) Object.keys(dest).forEach(key => delete dest[key]);\n if (!dest) dest = {};\n return extend(dest, src);\n}\n\n/** Naive forEach implementation works with Objects or Arrays */\nfunction _forEach(obj: (any[]|any), cb: (el, idx?) => void, _this: Obj) {\n if (isArray(obj)) return obj.forEach(cb, _this);\n Object.keys(obj).forEach(key => cb(obj[key], key));\n}\n\n/** Like Object.assign() */\nexport function _extend(toObj: Obj, ...fromObjs: Obj[]): any;\nexport function _extend(toObj: Obj): any {\n for (let i = 1; i < arguments.length; i++) {\n let obj = arguments[i];\n if (!obj) continue;\n let keys = Object.keys(obj);\n\n for (let j = 0; j < keys.length; j++) {\n toObj[keys[j]] = obj[keys[j]];\n }\n }\n\n return toObj;\n}\n\nfunction _equals(o1: any, o2: any): boolean {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n let t1 = typeof o1, t2 = typeof o2;\n if (t1 !== t2 || t1 !== 'object') return false;\n\n const tup = [o1, o2];\n if (all(isArray)(tup)) return _arraysEq(o1, o2);\n if (all(isDate)(tup)) return o1.getTime() === o2.getTime();\n if (all(isRegExp)(tup)) return o1.toString() === o2.toString();\n if (all(isFunction)(tup)) return true; // meh\n\n let predicates = [isFunction, isArray, isDate, isRegExp];\n if (predicates.map(any).reduce((b, fn) => b || !!fn(tup), false)) return false;\n\n let key: string, keys: { [i: string]: boolean } = {};\n for (key in o1) {\n if (!_equals(o1[key], o2[key])) return false;\n keys[key] = true;\n }\n for (key in o2) {\n if (!keys[key]) return false;\n }\n\n return true;\n}\n\nfunction _arraysEq(a1: any[], a2: any[]) {\n if (a1.length !== a2.length) return false;\n return arrayTuples(a1, a2).reduce((b, t) => b && _equals(t[0], t[1]), true);\n}\n\n// issue #2676\nexport const silenceUncaughtInPromise = (promise: Promise) =>\n promise.catch(e => 0) && promise;\nexport const silentRejection = (error: any) =>\n silenceUncaughtInPromise(services.$q.reject(error));\n", + "/**\n * # Transition tracing (debug)\n *\n * Enable transition tracing to print transition information to the console,\n * in order to help debug your application.\n * Tracing logs detailed information about each Transition to your console.\n *\n * To enable tracing, import the [[Trace]] singleton and enable one or more categories.\n *\n * ### ES6\n * ```js\n * import {trace} from \"ui-router-ng2\"; // or \"angular-ui-router\"\n * trace.enable(1, 5); // TRANSITION and VIEWCONFIG\n * ```\n *\n * ### CJS\n * ```js\n * let trace = require(\"angular-ui-router\").trace; // or \"ui-router-ng2\"\n * trace.enable(\"TRANSITION\", \"VIEWCONFIG\");\n * ```\n *\n * ### Globals\n * ```js\n * let trace = window[\"angular-ui-router\"].trace; // or \"ui-router-ng2\"\n * trace.enable(); // Trace everything (very verbose)\n * ```\n *\n * ### Angular 1:\n * ```js\n * app.run($trace => $trace.enable());\n * ```\n *\n * @coreapi\n * @module trace\n */ /** for typedoc */\nimport {parse} from \"../common/hof\";\nimport {isFunction, isNumber} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {ActiveUIView, ViewConfig, ViewContext} from \"../view/interface\";\nimport {stringify, functionToString, maxLength, padString} from \"./strings\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {PathNode} from \"../path/pathNode\";\nimport {PolicyWhen} from \"../resolve/interface\";\nimport {TransitionHook} from \"../transition/transitionHook\";\nimport {HookResult} from \"../transition/interface\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @hidden */\nfunction uiViewString (uiview: ActiveUIView) {\n if (!uiview) return 'ui-view (defunct)';\n const state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';\n return `[ui-view#${uiview.id} ${uiview.$type}:${uiview.fqn} (${uiview.name}@${state})]`;\n}\n\n/** @hidden */\nconst viewConfigString = (viewConfig: ViewConfig) => {\n let view = viewConfig.viewDecl;\n const state = view.$context.name || '(root)';\n return `[View#${viewConfig.$id} from '${state}' state]: target ui-view: '${view.$uiViewName}@${view.$uiViewContextAnchor}'`;\n};\n\n/** @hidden */\nfunction normalizedCat(input: Category|string): string {\n return isNumber(input) ? Category[input] : Category[Category[input]];\n}\n\n/** @hidden */\nconst consoleLog = Function.prototype.bind.call(console.log, console);\n\n/** @hidden */\nconst consoletable = isFunction(console.table) ? console.table.bind(console) : consoleLog.bind(console);\n\n\n/**\n * Trace categories Enum\n *\n * Enable or disable a category using [[Trace.enable]] or [[Trace.disable]]\n *\n * `trace.enable(Category.TRANSITION)`\n *\n * These can also be provided using a matching string, or position ordinal\n *\n * `trace.enable(\"TRANSITION\")`\n *\n * `trace.enable(1)`\n */\nexport enum Category {\n RESOLVE, TRANSITION, HOOK, UIVIEW, VIEWCONFIG,\n}\n\n/** @hidden */ const _tid = parse(\"$id\");\n/** @hidden */ const _rid = parse(\"router.$id\");\n/** @hidden */ const transLbl = (trans) => `Transition #${_tid(trans)}-${_rid(trans)}`;\n\n/**\n * Prints UI-Router Transition trace information to the console.\n */\nexport class Trace {\n /** @hidden */\n approximateDigests: number;\n\n /** @hidden */\n constructor() {\n this.approximateDigests = 0;\n }\n\n /** @hidden */\n private _enabled: { [key: string]: boolean } = {};\n\n /** @hidden */\n private _set(enabled: boolean, categories: Category[]) {\n if (!categories.length) {\n categories = Object.keys(Category)\n .map(k => parseInt(k, 10))\n .filter(k => !isNaN(k))\n .map(key => Category[key]);\n }\n categories.map(normalizedCat).forEach(category => this._enabled[category] = enabled);\n }\n\n /**\n * Enables a trace [[Category]]\n *\n * ```js\n * trace.enable(\"TRANSITION\");\n * ```\n *\n * @param categories categories to enable. If `categories` is omitted, all categories are enabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n enable(...categories: (Category|string|number)[]);\n enable(...categories: any[]) { this._set(true, categories); }\n /**\n * Disables a trace [[Category]]\n *\n * ```js\n * trace.disable(\"VIEWCONFIG\");\n * ```\n *\n * @param categories categories to disable. If `categories` is omitted, all categories are disabled.\n * Also takes strings (category name) or ordinal (category position)\n */\n disable(...categories: (Category|string|number)[]);\n disable(...categories: any[]) { this._set(false, categories); }\n\n /**\n * Retrieves the enabled stateus of a [[Category]]\n *\n * ```js\n * trace.enabled(\"VIEWCONFIG\"); // true or false\n * ```\n *\n * @returns boolean true if the category is enabled\n */\n enabled(category: (Category|string|number)): boolean {\n return !!this._enabled[normalizedCat(category)];\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionStart(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Started -> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceTransitionIgnored(trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: Ignored <> ${stringify(trans)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookInvocation(step: TransitionHook, trans: Transition, options: any) {\n if (!this.enabled(Category.HOOK)) return;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = functionToString((step as any).registeredHook.callback);\n console.log(`${transLbl(trans)}: Hook -> ${event} context: ${context}, ${maxLength(200, name)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceHookResult(hookResult: HookResult, trans: Transition, transitionOptions: any) {\n if (!this.enabled(Category.HOOK)) return;\n console.log(`${transLbl(trans)}: <- Hook returned: ${maxLength(200, stringify(hookResult))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvePath(path: PathNode[], when: PolicyWhen, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: Resolving ${path} (${when})`);\n }\n\n /** @internalapi called by ui-router code */\n traceResolvableResolved(resolvable: Resolvable, trans?: Transition) {\n if (!this.enabled(Category.RESOLVE)) return;\n console.log(`${transLbl(trans)}: <- Resolved ${resolvable} to: ${maxLength(200, stringify(resolvable.data))}`);\n }\n\n /** @internalapi called by ui-router code */\n traceError(reason: any, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Rejected ${stringify(trans)}, reason: ${reason}`);\n }\n\n /** @internalapi called by ui-router code */\n traceSuccess(finalState: StateObject, trans: Transition) {\n if (!this.enabled(Category.TRANSITION)) return;\n console.log(`${transLbl(trans)}: <- Success ${stringify(trans)}, final state: ${finalState.name}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewEvent(event: string, viewData: ActiveUIView, extra = \"\") {\n if (!this.enabled(Category.UIVIEW)) return;\n console.log(`ui-view: ${padString(30, event)} ${uiViewString(viewData)}${extra}`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewConfigUpdated(viewData: ActiveUIView, context: ViewContext) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Updating\", viewData, ` with ViewConfig from context='${context}'`);\n }\n\n /** @internalapi called by ui-router code */\n traceUIViewFill(viewData: ActiveUIView, html: string) {\n if (!this.enabled(Category.UIVIEW)) return;\n this.traceUIViewEvent(\"Fill\", viewData, ` with: ${maxLength(200, html)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewSync(pairs: any[]) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n const mapping = pairs.map(([ uiViewData, config ]) => {\n const uiView = `${uiViewData.$type}:${uiViewData.fqn}`;\n const view = config && `${config.viewDecl.$context.name}: ${config.viewDecl.$name} (${config.viewDecl.$type})`;\n\n return { 'ui-view fqn': uiView, 'state: view name': view };\n }).sort((a, b) => a['ui-view fqn'].localeCompare(b['ui-view fqn']));\n\n consoletable(mapping);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceEvent(event: string, viewConfig: ViewConfig) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${viewConfigString(viewConfig)}`);\n }\n\n /** @internalapi called by ui-router code */\n traceViewServiceUIViewEvent(event: string, viewData: ActiveUIView) {\n if (!this.enabled(Category.VIEWCONFIG)) return;\n console.log(`VIEWCONFIG: ${event} ${uiViewString(viewData)}`);\n }\n}\n\n/**\n * The [[Trace]] singleton\n *\n * #### Example:\n * ```js\n * import {trace} from \"angular-ui-router\";\n * trace.enable(1, 5);\n * ```\n */\nlet trace = new Trace();\nexport {trace};\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport { extend, removeFrom, tail, values, identity, map } from \"../common/common\";\nimport {isString, isFunction} from \"../common/predicates\";\nimport {PathNode} from \"../path/pathNode\";\nimport {\n TransitionStateHookFn, TransitionHookFn, TransitionHookPhase, TransitionHookScope, IHookRegistry, PathType,\n} from \"./interface\"; // has or is using\n\nimport {\n HookRegOptions, HookMatchCriteria, TreeChanges,\n HookMatchCriterion, IMatchingNodes, HookFn,\n} from \"./interface\";\nimport {Glob} from \"../common/glob\";\nimport {StateObject} from \"../state/stateObject\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport { TransitionService } from \"./transitionService\";\n\n/**\n * Determines if the given state matches the matchCriteria\n *\n * @hidden\n *\n * @param state a State Object to test against\n * @param criterion\n * - If a string, matchState uses the string as a glob-matcher against the state name\n * - If an array (of strings), matchState uses each string in the array as a glob-matchers against the state name\n * and returns a positive match if any of the globs match.\n * - If a function, matchState calls the function with the state and returns true if the function's result is truthy.\n * @returns {boolean}\n */\nexport function matchState(state: StateObject, criterion: HookMatchCriterion) {\n let toMatch = isString(criterion) ? [criterion] : criterion;\n\n function matchGlobs(_state: StateObject) {\n let globStrings = toMatch;\n for (let i = 0; i < globStrings.length; i++) {\n let glob = new Glob(globStrings[i]);\n\n if ((glob && glob.matches(_state.name)) || (!glob && globStrings[i] === _state.name)) {\n return true;\n }\n }\n return false;\n }\n\n let matchFn = (isFunction(toMatch) ? toMatch : matchGlobs);\n return !!matchFn(state);\n}\n\n/**\n * @internalapi\n * The registration data for a registered transition hook\n */\nexport class RegisteredHook {\n priority: number;\n bind: any;\n invokeCount = 0;\n invokeLimit: number;\n _deregistered = false;\n\n constructor(public tranSvc: TransitionService,\n public eventType: TransitionEventType,\n public callback: HookFn,\n public matchCriteria: HookMatchCriteria,\n public removeHookFromRegistry: (hook: RegisteredHook) => void,\n options: HookRegOptions = {} as any) {\n this.priority = options.priority || 0;\n this.bind = options.bind || null;\n this.invokeLimit = options.invokeLimit;\n }\n\n /**\n * Gets the matching [[PathNode]]s\n *\n * Given an array of [[PathNode]]s, and a [[HookMatchCriterion]], returns an array containing\n * the [[PathNode]]s that the criteria matches, or `null` if there were no matching nodes.\n *\n * Returning `null` is significant to distinguish between the default\n * \"match-all criterion value\" of `true` compared to a `() => true` function,\n * when the nodes is an empty array.\n *\n * This is useful to allow a transition match criteria of `entering: true`\n * to still match a transition, even when `entering === []`. Contrast that\n * with `entering: (state) => true` which only matches when a state is actually\n * being entered.\n */\n private _matchingNodes(nodes: PathNode[], criterion: HookMatchCriterion): PathNode[] {\n if (criterion === true) return nodes;\n let matching = nodes.filter(node => matchState(node.state, criterion));\n return matching.length ? matching : null;\n }\n\n /**\n * Gets the default match criteria (all `true`)\n *\n * Returns an object which has all the criteria match paths as keys and `true` as values, i.e.:\n *\n * ```js\n * {\n * to: true,\n * from: true,\n * entering: true,\n * exiting: true,\n * retained: true,\n * }\n */\n private _getDefaultMatchCriteria(): HookMatchCriteria {\n return map(this.tranSvc._pluginapi._getPathTypes(), () => true);\n }\n\n /**\n * Gets matching nodes as [[IMatchingNodes]]\n *\n * Create a IMatchingNodes object from the TransitionHookTypes that is roughly equivalent to:\n *\n * ```js\n * let matches: IMatchingNodes = {\n * to: _matchingNodes([tail(treeChanges.to)], mc.to),\n * from: _matchingNodes([tail(treeChanges.from)], mc.from),\n * exiting: _matchingNodes(treeChanges.exiting, mc.exiting),\n * retained: _matchingNodes(treeChanges.retained, mc.retained),\n * entering: _matchingNodes(treeChanges.entering, mc.entering),\n * };\n * ```\n */\n private _getMatchingNodes(treeChanges: TreeChanges): IMatchingNodes {\n let criteria = extend(this._getDefaultMatchCriteria(), this.matchCriteria);\n let paths: PathType[] = values(this.tranSvc._pluginapi._getPathTypes());\n\n return paths.reduce((mn: IMatchingNodes, pathtype: PathType) => {\n // STATE scope criteria matches against every node in the path.\n // TRANSITION scope criteria matches against only the last node in the path\n let isStateHook = pathtype.scope === TransitionHookScope.STATE;\n let path = treeChanges[pathtype.name] || [];\n let nodes: PathNode[] = isStateHook ? path : [tail(path)];\n\n mn[pathtype.name] = this._matchingNodes(nodes, criteria[pathtype.name]);\n return mn;\n }, {} as IMatchingNodes);\n }\n\n /**\n * Determines if this hook's [[matchCriteria]] match the given [[TreeChanges]]\n *\n * @returns an IMatchingNodes object, or null. If an IMatchingNodes object is returned, its values\n * are the matching [[PathNode]]s for each [[HookMatchCriterion]] (to, from, exiting, retained, entering)\n */\n matches(treeChanges: TreeChanges): IMatchingNodes {\n let matches = this._getMatchingNodes(treeChanges);\n\n // Check if all the criteria matched the TreeChanges object\n let allMatched = values(matches).every(identity);\n return allMatched ? matches : null;\n }\n\n deregister() {\n this.removeHookFromRegistry(this);\n this._deregistered = true;\n }\n}\n\n/** @hidden Return a registration function of the requested type. */\nexport function makeEvent(registry: IHookRegistry, transitionService: TransitionService, eventType: TransitionEventType) {\n // Create the object which holds the registered transition hooks.\n const _registeredHooks = registry._registeredHooks = (registry._registeredHooks || {});\n const hooks = _registeredHooks[eventType.name] = [];\n const removeHookFn: (hook: RegisteredHook) => void = removeFrom(hooks);\n\n // Create hook registration function on the IHookRegistry for the event\n registry[eventType.name] = hookRegistrationFn;\n\n function hookRegistrationFn(matchObject, callback, options = {}) {\n const registeredHook = new RegisteredHook(transitionService, eventType, callback, matchObject, removeHookFn, options);\n hooks.push(registeredHook);\n return registeredHook.deregister.bind(registeredHook);\n }\n\n return hookRegistrationFn;\n}\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\nimport {extend, tail, assertPredicate, unnestR, identity} from \"../common/common\";\nimport {isArray} from \"../common/predicates\";\n\nimport {\n TransitionOptions, TransitionHookOptions, IHookRegistry, TreeChanges, IMatchingNodes,\n TransitionHookPhase, TransitionHookScope\n} from \"./interface\";\n\nimport {Transition} from \"./transition\";\nimport {TransitionHook} from \"./transitionHook\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TransitionService} from \"./transitionService\";\nimport {TransitionEventType} from \"./transitionEventType\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * This class returns applicable TransitionHooks for a specific Transition instance.\n *\n * Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.\n * myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is\n * determined by the type of hook)\n *\n * The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.\n *\n * The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder\n * instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private\n * in the Transition class, so we must also provide the Transition's _treeChanges)\n *\n */\nexport class HookBuilder {\n constructor(private transition: Transition) { }\n\n buildHooksForPhase(phase: TransitionHookPhase): TransitionHook[] {\n let $transitions = this.transition.router.transitionService;\n return $transitions._pluginapi._getEvents(phase)\n .map(type => this.buildHooks(type))\n .reduce(unnestR, [])\n .filter(identity);\n }\n\n /**\n * Returns an array of newly built TransitionHook objects.\n *\n * - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].\n * - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)\n * - For each of the [[PathNode]]s, creates a TransitionHook\n *\n * @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.\n */\n buildHooks(hookType: TransitionEventType): TransitionHook[] {\n let transition = this.transition;\n let treeChanges = transition.treeChanges();\n\n // Find all the matching registered hooks for a given hook type\n let matchingHooks = this.getMatchingHooks(hookType, treeChanges);\n if (!matchingHooks) return [];\n\n let baseHookOptions = {\n transition: transition,\n current: transition.options().current\n };\n\n const makeTransitionHooks = (hook: RegisteredHook) => {\n // Fetch the Nodes that caused this hook to match.\n let matches: IMatchingNodes = hook.matches(treeChanges);\n // Select the PathNode[] that will be used as TransitionHook context objects\n let matchingNodes: PathNode[] = matches[hookType.criteriaMatchPath.name];\n\n // Return an array of HookTuples\n return matchingNodes.map(node => {\n let _options = extend({\n bind: hook.bind,\n traceData: { hookType: hookType.name, context: node }\n }, baseHookOptions);\n\n let state = hookType.criteriaMatchPath.scope === TransitionHookScope.STATE ? node.state.self : null;\n let transitionHook = new TransitionHook(transition, state, hook, _options);\n return { hook, node, transitionHook };\n });\n };\n\n return matchingHooks.map(makeTransitionHooks)\n .reduce(unnestR, [])\n .sort(tupleSort(hookType.reverseSort))\n .map(tuple => tuple.transitionHook);\n }\n\n /**\n * Finds all RegisteredHooks from:\n * - The Transition object instance hook registry\n * - The TransitionService ($transitions) global hook registry\n *\n * which matched:\n * - the eventType\n * - the matchCriteria (to, from, exiting, retained, entering)\n *\n * @returns an array of matched [[RegisteredHook]]s\n */\n public getMatchingHooks(hookType: TransitionEventType, treeChanges: TreeChanges): RegisteredHook[] {\n let isCreate = hookType.hookPhase === TransitionHookPhase.CREATE;\n\n // Instance and Global hook registries\n let $transitions = this.transition.router.transitionService;\n let registries = isCreate ? [ $transitions ] : [ this.transition, $transitions ];\n\n return registries.map((reg: IHookRegistry) => reg.getHooks(hookType.name)) // Get named hooks from registries\n .filter(assertPredicate(isArray, `broken event named: ${hookType.name}`)) // Sanity check\n .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array\n .filter(hook => hook.matches(treeChanges)); // Only those satisfying matchCriteria\n }\n}\n\ninterface HookTuple { hook: RegisteredHook, node: PathNode, transitionHook: TransitionHook }\n\n/**\n * A factory for a sort function for HookTuples.\n *\n * The sort function first compares the PathNode depth (how deep in the state tree a node is), then compares\n * the EventHook priority.\n *\n * @param reverseDepthSort a boolean, when true, reverses the sort order for the node depth\n * @returns a tuple sort function\n */\nfunction tupleSort(reverseDepthSort = false) {\n return function nodeDepthThenPriority(l: HookTuple, r: HookTuple): number {\n let factor = reverseDepthSort ? -1 : 1;\n let depthDelta = (l.node.state.path.length - r.node.state.path.length) * factor;\n return depthDelta !== 0 ? depthDelta : r.hook.priority - l.hook.priority;\n }\n}", + "/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, filter, map} from \"../common/common\";\nimport {isArray, isDefined} from \"../common/predicates\";\nimport {ParamTypeDefinition} from \"./interface\";\n\n/**\n * An internal class which implements [[ParamTypeDefinition]].\n *\n * A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.\n * When a param type definition is registered, an instance of this class is created internally.\n *\n * This class has naive implementations for all the [[ParamTypeDefinition]] methods.\n *\n * Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.\n *\n * #### Example:\n * ```js\n * var paramTypeDef = {\n * decode: function(val) { return parseInt(val, 10); },\n * encode: function(val) { return val && val.toString(); },\n * equals: function(a, b) { return this.is(a) && a === b; },\n * is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },\n * pattern: /\\d+/\n * }\n *\n * var paramType = new ParamType(paramTypeDef);\n * ```\n * @internalapi\n */\nexport class ParamType implements ParamTypeDefinition {\n /** @inheritdoc */\n pattern: RegExp = /.*/;\n /** The name/id of the parameter type */\n name: string;\n /** @inheritdoc */\n raw: boolean;\n /** @inheritdoc */\n dynamic: boolean;\n /** @inheritdoc */\n inherit = true;\n\n /**\n * @param def A configuration object which contains the custom type definition. The object's\n * properties will override the default methods and/or pattern in `ParamType`'s public interface.\n * @returns a new ParamType object\n */\n constructor(def: ParamTypeDefinition) {\n extend(this, def);\n }\n\n\n // consider these four methods to be \"abstract methods\" that should be overridden\n /** @inheritdoc */\n is(val: any, key?: string): boolean { return true; }\n /** @inheritdoc */\n encode(val: any, key?: string): (string|string[]) { return val; }\n /** @inheritdoc */\n decode(val: string, key?: string): any { return val; }\n /** @inheritdoc */\n equals(a: any, b: any): boolean { return a == b; }\n\n\n $subPattern() {\n let sub = this.pattern.toString();\n return sub.substr(1, sub.length - 2);\n }\n\n toString() {\n return `{ParamType:${this.name}}`;\n }\n\n /** Given an encoded string, or a decoded object, returns a decoded object */\n $normalize(val: any) {\n return this.is(val) ? val : this.decode(val);\n }\n\n /**\n * Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.\n * e.g.:\n * - urlmatcher pattern \"/path?{queryParam[]:int}\"\n * - url: \"/path?queryParam=1&queryParam=2\n * - $stateParams.queryParam will be [1, 2]\n * if `mode` is \"auto\", then\n * - url: \"/path?queryParam=1 will create $stateParams.queryParam: 1\n * - url: \"/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]\n */\n $asArray(mode: (boolean|\"auto\"), isSearch: boolean) {\n if (!mode) return this;\n if (mode === \"auto\" && !isSearch) throw new Error(\"'auto' array mode is for query parameters only\");\n return new ( ArrayType)(this, mode);\n }\n}\n\n/**\n * Wraps up a `ParamType` object to handle array values.\n * @internalapi\n */\nfunction ArrayType(type: ParamType, mode: (boolean|\"auto\")) {\n // Wrap non-array value as array\n function arrayWrap(val: any): any[] {\n return isArray(val) ? val : (isDefined(val) ? [ val ] : []);\n }\n\n // Unwrap array value for \"auto\" mode. Return undefined for empty array.\n function arrayUnwrap(val: any) {\n switch (val.length) {\n case 0: return undefined;\n case 1: return mode === \"auto\" ? val[0] : val;\n default: return val;\n }\n }\n\n // Wraps type (.is/.encode/.decode) functions to operate on each value of an array\n function arrayHandler(callback: (x: any) => any, allTruthyMode?: boolean) {\n return function handleArray(val: any) {\n if (isArray(val) && val.length === 0) return val;\n let arr = arrayWrap(val);\n let result = map(arr, callback);\n return (allTruthyMode === true) ? filter(result, x => !x).length === 0 : arrayUnwrap(result);\n };\n }\n\n // Wraps type (.equals) functions to operate on each value of an array\n function arrayEqualsHandler(callback: (l: any, r: any) => boolean) {\n return function handleArray(val1: any, val2: any) {\n let left = arrayWrap(val1), right = arrayWrap(val2);\n if (left.length !== right.length) return false;\n for (let i = 0; i < left.length; i++) {\n if (!callback(left[i], right[i])) return false;\n }\n return true;\n };\n }\n\n ['encode', 'decode', 'equals', '$normalize'].forEach(name => {\n var paramTypeFn = type[name].bind(type);\n var wrapperFn: Function = name === 'equals' ? arrayEqualsHandler : arrayHandler;\n this[name] = wrapperFn(paramTypeFn);\n });\n\n extend(this, {\n dynamic: type.dynamic,\n name: type.name,\n pattern: type.pattern,\n inherit: type.inherit,\n is: arrayHandler(type.is.bind(type), true),\n $arrayMode: mode\n });\n}\n", + "/**\n * @coreapi\n * @module params\n */ /** for typedoc */\nimport { extend, filter, map, allTrueR } from \"../common/common\";\nimport { prop } from \"../common/hof\";\nimport { isInjectable, isDefined, isString, isArray, isUndefined } from \"../common/predicates\";\nimport { RawParams, ParamDeclaration } from \"../params/interface\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypes } from \"./paramTypes\";\nimport { UrlMatcherFactory } from \"../url/urlMatcherFactory\";\n\n/** @hidden */ let hasOwn = Object.prototype.hasOwnProperty;\n/** @hidden */ let isShorthand = (cfg: ParamDeclaration) =>\n [\"value\", \"type\", \"squash\", \"array\", \"dynamic\"].filter(hasOwn.bind(cfg || {})).length === 0;\n\n/** @internalapi */\nexport enum DefType {\n PATH,\n SEARCH,\n CONFIG,\n}\n\n/** @hidden */\nfunction unwrapShorthand(cfg: ParamDeclaration): ParamDeclaration {\n cfg = isShorthand(cfg) && { value: cfg } as any || cfg;\n\n getStaticDefaultValue['__cacheable'] = true;\n function getStaticDefaultValue() {\n return cfg.value;\n }\n\n return extend(cfg, {\n $$fn: isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue,\n });\n}\n\n/** @hidden */\nfunction getType(cfg: ParamDeclaration, urlType: ParamType, location: DefType, id: string, paramTypes: ParamTypes) {\n if (cfg.type && urlType && urlType.name !== 'string') throw new Error(`Param '${id}' has two type configurations.`);\n if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type as string)) return paramTypes.type(cfg.type as string);\n if (urlType) return urlType;\n if (!cfg.type) {\n let type = location === DefType.CONFIG ? \"any\" :\n location === DefType.PATH ? \"path\" :\n location === DefType.SEARCH ? \"query\" : \"string\";\n return paramTypes.type(type);\n }\n return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type as string);\n}\n\n/**\n * @internalapi\n * returns false, true, or the squash value to indicate the \"default parameter url squash policy\".\n */\nfunction getSquashPolicy(config: ParamDeclaration, isOptional: boolean, defaultPolicy: (boolean|string)) {\n let squash = config.squash;\n if (!isOptional || squash === false) return false;\n if (!isDefined(squash) || squash == null) return defaultPolicy;\n if (squash === true || isString(squash)) return squash;\n throw new Error(`Invalid squash policy: '${squash}'. Valid policies: false, true, or arbitrary string`);\n}\n\n/** @internalapi */\nfunction getReplace(config: ParamDeclaration, arrayMode: boolean, isOptional: boolean, squash: (string|boolean)) {\n let replace: any, configuredKeys: string[], defaultPolicy = [\n {from: \"\", to: (isOptional || arrayMode ? undefined : \"\")},\n {from: null, to: (isOptional || arrayMode ? undefined : \"\")},\n ];\n replace = isArray(config.replace) ? config.replace : [];\n if (isString(squash)) replace.push({ from: squash, to: undefined });\n configuredKeys = map(replace, prop(\"from\"));\n return filter(defaultPolicy, item => configuredKeys.indexOf(item.from) === -1).concat(replace);\n}\n\n\n/** @internalapi */\nexport class Param {\n id: string;\n type: ParamType;\n location: DefType;\n isOptional: boolean;\n dynamic: boolean;\n raw: boolean;\n squash: (boolean|string);\n replace: [{ to: any, from: any }];\n inherit: boolean;\n array: boolean;\n config: any;\n /** Cache the default value if it is a static value */\n _defaultValueCache: {\n defaultValue: any,\n };\n\n constructor(id: string, type: ParamType, config: ParamDeclaration, location: DefType, urlMatcherFactory: UrlMatcherFactory) {\n config = unwrapShorthand(config);\n type = getType(config, type, location, id, urlMatcherFactory.paramTypes);\n let arrayMode = getArrayMode();\n type = arrayMode ? type.$asArray(arrayMode, location === DefType.SEARCH) : type;\n let isOptional = config.value !== undefined || location === DefType.SEARCH;\n let dynamic = isDefined(config.dynamic) ? !!config.dynamic : !!type.dynamic;\n let raw = isDefined(config.raw) ? !!config.raw : !!type.raw;\n let squash = getSquashPolicy(config, isOptional, urlMatcherFactory.defaultSquashPolicy());\n let replace = getReplace(config, arrayMode, isOptional, squash);\n let inherit = isDefined(config.inherit) ? !!config.inherit : !!type.inherit;\n\n // array config: param name (param[]) overrides default settings. explicit config overrides param name.\n function getArrayMode() {\n let arrayDefaults = { array: (location === DefType.SEARCH ? \"auto\" : false) };\n let arrayParamNomenclature = id.match(/\\[\\]$/) ? { array: true } : {};\n return extend(arrayDefaults, arrayParamNomenclature, config).array;\n }\n\n extend(this, {id, type, location, isOptional, dynamic, raw, squash, replace, inherit, array: arrayMode, config });\n }\n\n isDefaultValue(value: any): boolean {\n return this.isOptional && this.type.equals(this.value(), value);\n }\n\n /**\n * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the\n * default value, which may be the result of an injectable function.\n */\n value(value?: any): any {\n /**\n * [Internal] Get the default value of a parameter, which may be an injectable function.\n */\n const getDefaultValue = () => {\n if (this._defaultValueCache) return this._defaultValueCache.defaultValue;\n\n if (!services.$injector) throw new Error(\"Injectable functions cannot be called at configuration time\");\n\n let defaultValue = services.$injector.invoke(this.config.$$fn);\n\n if (defaultValue !== null && defaultValue !== undefined && !this.type.is(defaultValue))\n throw new Error(`Default value (${defaultValue}) for parameter '${this.id}' is not an instance of ParamType (${this.type.name})`);\n\n if (this.config.$$fn['__cacheable']) {\n this._defaultValueCache = { defaultValue };\n }\n\n return defaultValue;\n };\n\n const replaceSpecialValues = (val: any) => {\n for (let tuple of this.replace) {\n if (tuple.from === val) return tuple.to;\n }\n return val;\n };\n\n value = replaceSpecialValues(value);\n\n return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);\n }\n\n isSearch(): boolean {\n return this.location === DefType.SEARCH;\n }\n\n validates(value: any): boolean {\n // There was no parameter value, but the param is optional\n if ((isUndefined(value) || value === null) && this.isOptional) return true;\n\n // The value was not of the correct ParamType, and could not be decoded to the correct ParamType\n const normalized = this.type.$normalize(value);\n if (!this.type.is(normalized)) return false;\n\n // The value was of the correct type, but when encoded, did not match the ParamType's regexp\n const encoded = this.type.encode(normalized);\n return !(isString(encoded) && !this.type.pattern.exec( encoded));\n }\n\n toString() {\n return `{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`;\n }\n\n static values(params: Param[], values: RawParams = {}): RawParams {\n const paramValues = {} as RawParams;\n for (let param of params) {\n paramValues[param.id] = param.value(values[param.id]);\n }\n return paramValues;\n }\n\n /**\n * Finds [[Param]] objects which have different param values\n *\n * Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects\n *\n * @param params: The list of Param objects to filter\n * @param values1: The first set of parameter values\n * @param values2: the second set of parameter values\n *\n * @returns any Param objects whose values were different between values1 and values2\n */\n static changed(params: Param[], values1: RawParams = {}, values2: RawParams = {}): Param[] {\n return params.filter(param => !param.type.equals(values1[param.id], values2[param.id]));\n }\n\n /**\n * Checks if two param value objects are equal (for a set of [[Param]] objects)\n *\n * @param params The list of [[Param]] objects to check\n * @param values1 The first set of param values\n * @param values2 The second set of param values\n *\n * @returns true if the param values in values1 and values2 are equal\n */\n static equals(params: Param[], values1 = {}, values2 = {}): boolean {\n return Param.changed(params, values1, values2).length === 0;\n }\n\n /** Returns true if a the parameter values are valid, according to the Param definitions */\n static validates(params: Param[], values: RawParams = {}): boolean {\n return params.map(param => param.validates(values[param.id])).reduce(allTrueR, true);\n }\n}", + "/**\n * Functions that manipulate strings\n *\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_strings\n */ /** */\n\nimport { isString, isArray, isDefined, isNull, isPromise, isInjectable, isObject } from \"./predicates\";\nimport { Rejection } from \"../transition/rejectFactory\";\nimport { IInjectable, identity, Obj, tail, pushR } from \"./common\";\nimport { pattern, is, not, val, invoke } from \"./hof\";\nimport { Transition } from \"../transition/transition\";\nimport { Resolvable } from \"../resolve/resolvable\";\n\n/**\n * Returns a string shortened to a maximum length\n *\n * If the string is already less than the `max` length, return the string.\n * Else return the string, shortened to `max - 3` and append three dots (\"...\").\n *\n * @param max the maximum length of the string to return\n * @param str the input string\n */\nexport function maxLength(max: number, str: string) {\n if (str.length <= max) return str;\n return str.substr(0, max - 3) + \"...\";\n}\n\n/**\n * Returns a string, with spaces added to the end, up to a desired str length\n *\n * If the string is already longer than the desired length, return the string.\n * Else returns the string, with extra spaces on the end, such that it reaches `length` characters.\n *\n * @param length the desired length of the string to return\n * @param str the input string\n */\nexport function padString(length: number, str: string) {\n while (str.length < length) str += \" \";\n return str;\n}\n\nexport function kebobString(camelCase: string) {\n return camelCase\n .replace(/^([A-Z])/, $1 => $1.toLowerCase()) // replace first char\n .replace(/([A-Z])/g, $1 => \"-\" + $1.toLowerCase()); // replace rest\n}\n\nfunction _toJson(obj: Obj) {\n return JSON.stringify(obj);\n}\n\nfunction _fromJson(json: string) {\n return isString(json) ? JSON.parse(json) : json;\n}\n\n\nfunction promiseToString(p: Promise) {\n return `Promise(${JSON.stringify(p)})`;\n}\n\nexport function functionToString(fn: Function) {\n let fnStr = fnToString(fn);\n let namedFunctionMatch = fnStr.match(/^(function [^ ]+\\([^)]*\\))/);\n let toStr = namedFunctionMatch ? namedFunctionMatch[1] : fnStr;\n\n let fnName = fn['name'] || \"\";\n if (fnName && toStr.match(/function \\(/)) {\n return 'function ' + fnName + toStr.substr(9);\n }\n return toStr;\n}\n\nexport function fnToString(fn: IInjectable) {\n let _fn = isArray(fn) ? fn.slice(-1)[0] : fn;\n return _fn && _fn.toString() || \"undefined\";\n}\n\nlet stringifyPatternFn: (val: any) => string = null;\nlet stringifyPattern = function(value: any) {\n let isRejection = Rejection.isRejectionPromise;\n\n stringifyPatternFn = stringifyPatternFn || pattern([\n [not(isDefined), val(\"undefined\")],\n [isNull, val(\"null\")],\n [isPromise, val(\"[Promise]\")],\n [isRejection, (x: any) => x._transitionRejection.toString()],\n [is(Rejection), invoke(\"toString\")],\n [is(Transition), invoke(\"toString\")],\n [is(Resolvable), invoke(\"toString\")],\n [isInjectable, functionToString],\n [val(true), identity]\n ]);\n\n return stringifyPatternFn(value);\n};\n\nexport function stringify(o: any) {\n var seen: any[] = [];\n\n function format(val: any) {\n if (isObject(val)) {\n if (seen.indexOf(val) !== -1) return '[circular ref]';\n seen.push(val);\n }\n return stringifyPattern(val);\n }\n\n return JSON.stringify(o, (key, val) => format(val)).replace(/\\\\\"/g, '\"');\n}\n\n/** Returns a function that splits a string on a character or substring */\nexport const beforeAfterSubstr = (char: string) => (str: string): string[] => {\n if (!str) return [\"\", \"\"];\n let idx = str.indexOf(char);\n if (idx === -1) return [str, \"\"];\n return [str.substr(0, idx), str.substr(idx + 1)];\n};\n\nexport const hostRegex = new RegExp('^(?:[a-z]+:)?//[^/]+/');\nexport const stripFile = (str: string) => str.replace(/\\/[^/]*$/, '');\nexport const splitHash = beforeAfterSubstr(\"#\");\nexport const splitQuery = beforeAfterSubstr(\"?\");\nexport const splitEqual = beforeAfterSubstr(\"=\");\nexport const trimHashVal = (str: string) => str ? str.replace(/^#/, \"\") : \"\";\n\n/**\n * Splits on a delimiter, but returns the delimiters in the array\n *\n * #### Example:\n * ```js\n * var splitOnSlashes = splitOnDelim('/');\n * splitOnSlashes(\"/foo\"); // [\"/\", \"foo\"]\n * splitOnSlashes(\"/foo/\"); // [\"/\", \"foo\", \"/\"]\n * ```\n */\nexport function splitOnDelim(delim: string) {\n let re = new RegExp(\"(\" + delim + \")\", \"g\");\n return (str: string) =>\n str.split(re).filter(identity);\n};\n\n\n/**\n * Reduce fn that joins neighboring strings\n *\n * Given an array of strings, returns a new array\n * where all neighboring strings have been joined.\n *\n * #### Example:\n * ```js\n * let arr = [\"foo\", \"bar\", 1, \"baz\", \"\", \"qux\" ];\n * arr.reduce(joinNeighborsR, []) // [\"foobar\", 1, \"bazqux\" ]\n * ```\n */\nexport function joinNeighborsR(acc: any[], x: any) {\n if (isString(tail(acc)) && isString(x))\n return acc.slice(0, -1).concat(tail(acc)+ x);\n return pushR(acc, x);\n};\n\n", + "/** @module state */ /** for typedoc */\nimport {Obj, omit, noop, extend, inherit, values, applyPairs, tail, mapObj, identity} from \"../common/common\";\nimport {isDefined, isFunction, isString, isArray} from \"../common/predicates\";\nimport {stringify} from \"../common/strings\";\nimport {prop, pattern, is, pipe, val} from \"../common/hof\";\nimport {StateDeclaration} from \"./interface\";\n\nimport {StateObject} from \"./stateObject\";\nimport {StateMatcher} from \"./stateMatcher\";\nimport {Param} from \"../params/param\";\nimport {UrlMatcherFactory} from \"../url/urlMatcherFactory\";\nimport {UrlMatcher} from \"../url/urlMatcher\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {services} from \"../common/coreservices\";\nimport {ResolvePolicy} from \"../resolve/interface\";\nimport { ParamFactory } from \"../url/interface\";\n\nconst parseUrl = (url: string): any => {\n if (!isString(url)) return false;\n let root = url.charAt(0) === '^';\n return { val: root ? url.substring(1) : url, root };\n};\n\nexport type BuilderFunction = (state: StateObject, parent?: BuilderFunction) => any;\n\ninterface Builders {\n [key: string]: BuilderFunction[];\n\n name: BuilderFunction[];\n parent: BuilderFunction[];\n data: BuilderFunction[];\n url: BuilderFunction[];\n navigable: BuilderFunction[];\n params: BuilderFunction[];\n views: BuilderFunction[];\n path: BuilderFunction[];\n includes: BuilderFunction[];\n resolvables: BuilderFunction[];\n}\n\n\nfunction nameBuilder(state: StateObject) {\n return state.name;\n}\n\nfunction selfBuilder(state: StateObject) {\n state.self.$$state = () => state;\n return state.self;\n}\n\nfunction dataBuilder(state: StateObject) {\n if (state.parent && state.parent.data) {\n state.data = state.self.data = inherit(state.parent.data, state.data);\n }\n return state.data;\n}\n\nconst getUrlBuilder = ($urlMatcherFactoryProvider: UrlMatcherFactory, root: () => StateObject) =>\nfunction urlBuilder(state: StateObject) {\n let stateDec: StateDeclaration = state;\n\n // For future states, i.e., states whose name ends with `.**`,\n // match anything that starts with the url prefix\n if (stateDec && stateDec.url && stateDec.name && stateDec.name.match(/\\.\\*\\*$/)) {\n stateDec.url += \"{remainder:any}\"; // match any path (.*)\n }\n\n const parsed = parseUrl(stateDec.url), parent = state.parent;\n const url = !parsed ? stateDec.url : $urlMatcherFactoryProvider.compile(parsed.val, {\n params: state.params || {},\n paramMap: function (paramConfig: any, isSearch: boolean) {\n if (stateDec.reloadOnSearch === false && isSearch) paramConfig = extend(paramConfig || {}, {dynamic: true});\n return paramConfig;\n }\n });\n\n if (!url) return null;\n if (!$urlMatcherFactoryProvider.isMatcher(url)) throw new Error(`Invalid url '${url}' in state '${state}'`);\n return (parsed && parsed.root) ? url : ((parent && parent.navigable) || root()).url.append( url);\n};\n\nconst getNavigableBuilder = (isRoot: (state: StateObject) => boolean) =>\nfunction navigableBuilder(state: StateObject) {\n return !isRoot(state) && state.url ? state : (state.parent ? state.parent.navigable : null);\n};\n\nconst getParamsBuilder = (paramFactory: ParamFactory) =>\nfunction paramsBuilder(state: StateObject): { [key: string]: Param } {\n const makeConfigParam = (config: any, id: string) => paramFactory.fromConfig(id, null, config);\n let urlParams: Param[] = (state.url && state.url.parameters({inherit: false})) || [];\n let nonUrlParams: Param[] = values(mapObj(omit(state.params || {}, urlParams.map(prop('id'))), makeConfigParam));\n return urlParams.concat(nonUrlParams).map(p => [p.id, p]).reduce(applyPairs, {});\n};\n\nfunction pathBuilder(state: StateObject) {\n return state.parent ? state.parent.path.concat(state) : /*root*/ [state];\n}\n\nfunction includesBuilder(state: StateObject) {\n let includes = state.parent ? extend({}, state.parent.includes) : {};\n includes[state.name] = true;\n return includes;\n}\n\n/**\n * This is a [[StateBuilder.builder]] function for the `resolve:` block on a [[StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * validates the `resolve` property and converts it to a [[Resolvable]] array.\n *\n * resolve: input value can be:\n *\n * {\n * // analyzed but not injected\n * myFooResolve: function() { return \"myFooData\"; },\n *\n * // function.toString() parsed, \"DependencyName\" dep as string (not min-safe)\n * myBarResolve: function(DependencyName) { return DependencyName.fetchSomethingAsPromise() },\n *\n * // Array split; \"DependencyName\" dep as string\n * myBazResolve: [ \"DependencyName\", function(dep) { return dep.fetchSomethingAsPromise() },\n *\n * // Array split; DependencyType dep as token (compared using ===)\n * myQuxResolve: [ DependencyType, function(dep) { return dep.fetchSometingAsPromise() },\n *\n * // val.$inject used as deps\n * // where:\n * // corgeResolve.$inject = [\"DependencyName\"];\n * // function corgeResolve(dep) { dep.fetchSometingAsPromise() }\n * // then \"DependencyName\" dep as string\n * myCorgeResolve: corgeResolve,\n *\n * // inject service by name\n * // When a string is found, desugar creating a resolve that injects the named service\n * myGraultResolve: \"SomeService\"\n * }\n *\n * or:\n *\n * [\n * new Resolvable(\"myFooResolve\", function() { return \"myFooData\" }),\n * new Resolvable(\"myBarResolve\", function(dep) { return dep.fetchSomethingAsPromise() }, [ \"DependencyName\" ]),\n * { provide: \"myBazResolve\", useFactory: function(dep) { dep.fetchSomethingAsPromise() }, deps: [ \"DependencyName\" ] }\n * ]\n */\nexport function resolvablesBuilder(state: StateObject): Resolvable[] {\n interface Tuple { token: any, val: any, deps: any[], policy: ResolvePolicy }\n \n /** convert resolve: {} and resolvePolicy: {} objects to an array of tuples */\n const objects2Tuples = (resolveObj: Obj, resolvePolicies: { [key: string]: ResolvePolicy }) =>\n Object.keys(resolveObj || {}).map(token => ({token, val: resolveObj[token], deps: undefined, policy: resolvePolicies[token]}));\n\n /** fetch DI annotations from a function or ng1-style array */\n const annotate = (fn: Function) => {\n let $injector = services.$injector;\n // ng1 doesn't have an $injector until runtime.\n // If the $injector doesn't exist, use \"deferred\" literal as a\n // marker indicating they should be annotated when runtime starts\n return fn['$inject'] || ($injector && $injector.annotate(fn, $injector.strictDi)) || \"deferred\";\n };\n\n /** true if the object has both `token` and `resolveFn`, and is probably a [[ResolveLiteral]] */\n const isResolveLiteral = (obj: any) => !!(obj.token && obj.resolveFn);\n\n /** true if the object looks like a provide literal, or a ng2 Provider */\n const isLikeNg2Provider = (obj: any) => !!((obj.provide || obj.token) && (obj.useValue || obj.useFactory || obj.useExisting || obj.useClass));\n\n /** true if the object looks like a tuple from obj2Tuples */\n const isTupleFromObj = (obj: any) => !!(obj && obj.val && (isString(obj.val) || isArray(obj.val) || isFunction(obj.val)));\n\n /** extracts the token from a Provider or provide literal */\n const token = (p: any) => p.provide || p.token;\n\n /** Given a literal resolve or provider object, returns a Resolvable */\n const literal2Resolvable = pattern([\n [prop('resolveFn'), p => new Resolvable(token(p), p.resolveFn, p.deps, p.policy)],\n [prop('useFactory'), p => new Resolvable(token(p), p.useFactory, (p.deps || p.dependencies), p.policy)],\n [prop('useClass'), p => new Resolvable(token(p), () => new (p.useClass)(), [], p.policy)],\n [prop('useValue'), p => new Resolvable(token(p), () => p.useValue, [], p.policy, p.useValue)],\n [prop('useExisting'), p => new Resolvable(token(p), identity, [p.useExisting], p.policy)],\n ]);\n\n const tuple2Resolvable = pattern([\n [pipe(prop(\"val\"), isString), (tuple: Tuple) => new Resolvable(tuple.token, identity, [ tuple.val ], tuple.policy)],\n [pipe(prop(\"val\"), isArray), (tuple: Tuple) => new Resolvable(tuple.token, tail( tuple.val), tuple.val.slice(0, -1), tuple.policy)],\n [pipe(prop(\"val\"), isFunction), (tuple: Tuple) => new Resolvable(tuple.token, tuple.val, annotate(tuple.val), tuple.policy)],\n ]);\n\n const item2Resolvable = <(obj: any) => Resolvable> pattern([\n [is(Resolvable), (r: Resolvable) => r],\n [isResolveLiteral, literal2Resolvable],\n [isLikeNg2Provider, literal2Resolvable],\n [isTupleFromObj, tuple2Resolvable],\n [val(true), (obj: any) => { throw new Error(\"Invalid resolve value: \" + stringify(obj)) }]\n ]);\n\n // If resolveBlock is already an array, use it as-is.\n // Otherwise, assume it's an object and convert to an Array of tuples\n let decl = state.resolve;\n let items: any[] = isArray(decl) ? decl : objects2Tuples(decl, state.resolvePolicy || {});\n return items.map(item2Resolvable);\n}\n\n/**\n * @internalapi A internal global service\n *\n * StateBuilder is a factory for the internal [[StateObject]] objects.\n *\n * When you register a state with the [[StateRegistry]], you register a plain old javascript object which\n * conforms to the [[StateDeclaration]] interface. This factory takes that object and builds the corresponding\n * [[StateObject]] object, which has an API and is used internally.\n *\n * Custom properties or API may be added to the internal [[StateObject]] object by registering a decorator function\n * using the [[builder]] method.\n */\nexport class StateBuilder {\n /** An object that contains all the BuilderFunctions registered, key'd by the name of the State property they build */\n private builders: Builders;\n\n constructor(private matcher: StateMatcher, urlMatcherFactory: UrlMatcherFactory) {\n let self = this;\n\n const root = () => matcher.find(\"\");\n const isRoot = (state: StateObject) => state.name === \"\";\n\n function parentBuilder(state: StateObject) {\n if (isRoot(state)) return null;\n return matcher.find(self.parentName(state)) || root();\n }\n\n this.builders = {\n name: [ nameBuilder ],\n self: [ selfBuilder ],\n parent: [ parentBuilder ],\n data: [ dataBuilder ],\n // Build a URLMatcher if necessary, either via a relative or absolute URL\n url: [ getUrlBuilder(urlMatcherFactory, root) ],\n // Keep track of the closest ancestor state that has a URL (i.e. is navigable)\n navigable: [ getNavigableBuilder(isRoot) ],\n params: [ getParamsBuilder(urlMatcherFactory.paramFactory) ],\n // Each framework-specific ui-router implementation should define its own `views` builder\n // e.g., src/ng1/statebuilders/views.ts\n views: [],\n // Keep a full path from the root down to this state as this is needed for state activation.\n path: [ pathBuilder ],\n // Speed up $state.includes() as it's used a lot\n includes: [ includesBuilder ],\n resolvables: [ resolvablesBuilder ]\n };\n }\n\n /**\n * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).\n * More than one BuilderFunction can be registered for a given property.\n *\n * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.\n *\n * @param name The name of the State property being registered for.\n * @param fn The BuilderFunction which will be used to build the State property\n * @returns a function which deregisters the BuilderFunction\n */\n builder(name: string, fn: BuilderFunction): (BuilderFunction|BuilderFunction[]|Function) {\n let builders = this.builders;\n let array = builders[name] || [];\n // Backwards compat: if only one builder exists, return it, else return whole arary.\n if (isString(name) && !isDefined(fn)) return array.length > 1 ? array : array[0];\n if (!isString(name) || !isFunction(fn)) return;\n\n builders[name] = array;\n builders[name].push(fn);\n return () => builders[name].splice(builders[name].indexOf(fn, 1)) && null;\n }\n\n /**\n * Builds all of the properties on an essentially blank State object, returning a State object which has all its\n * properties and API built.\n *\n * @param state an uninitialized State object\n * @returns the built State object\n */\n build(state: StateObject): StateObject {\n let {matcher, builders} = this;\n let parent = this.parentName(state);\n\n if (parent && !matcher.find(parent, undefined, false)) {\n return null;\n }\n\n for (let key in builders) {\n if (!builders.hasOwnProperty(key)) continue;\n let chain = builders[key].reduce((parentFn: BuilderFunction, step: BuilderFunction) => (_state) => step(_state, parentFn), noop);\n state[key] = chain(state);\n }\n return state;\n }\n\n parentName(state: StateObject) {\n // name = 'foo.bar.baz.**'\n let name = state.name || \"\";\n // segments = ['foo', 'bar', 'baz', '.**']\n let segments = name.split('.');\n // segments = ['foo', 'bar', 'baz']\n let lastSegment = segments.pop();\n // segments = ['foo', 'bar'] (ignore .** segment for future states)\n if (lastSegment === '**') segments.pop();\n\n if (segments.length) {\n if (state.parent) {\n throw new Error(`States that specify the 'parent:' property should not have a '.' in their name (${name})`);\n }\n\n // 'foo.bar'\n return segments.join(\".\");\n }\n\n if (!state.parent) return \"\";\n return isString(state.parent) ? state.parent : state.parent.name;\n }\n\n name(state: StateObject) {\n let name = state.name;\n if (name.indexOf('.') !== -1 || !state.parent) return name;\n\n let parentName = isString(state.parent) ? state.parent : state.parent.name;\n return parentName ? parentName + \".\" + name : name;\n }\n}\n", + "/**\n * @coreapi\n * @module url\n */\n/** for typedoc */\nimport {\n map, defaults, inherit, identity, unnest, tail, find, Obj, pairs, allTrueR, unnestR, arrayTuples\n} from \"../common/common\";\nimport { prop, propEq } from \"../common/hof\";\nimport { isArray, isString, isDefined } from \"../common/predicates\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { RawParams } from \"../params/interface\";\nimport { ParamFactory } from \"./interface\";\nimport { joinNeighborsR, splitOnDelim } from \"../common/strings\";\n\n/** @hidden */\nfunction quoteRegExp(string: any, param?: any) {\n let surroundPattern = ['', ''], result = string.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, \"\\\\$&\");\n if (!param) return result;\n\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')]; break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:\\/(', ')|\\/)?'];\n break;\n default:\n surroundPattern = [`(${param.squash}|`, ')?']; break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n\n/** @hidden */\nconst memoizeTo = (obj: Obj, prop: string, fn: Function) =>\n obj[prop] = obj[prop] || fn();\n\n/** @hidden */\nconst splitOnSlash = splitOnDelim('/');\n\n/** @hidden */\ninterface UrlMatcherCache {\n segments?: any[];\n weights?: number[];\n path?: UrlMatcher[];\n parent?: UrlMatcher;\n pattern?: RegExp;\n}\n\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nexport class UrlMatcher {\n /** @hidden */\n static nameValidator: RegExp = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n\n /** @hidden */\n private _cache: UrlMatcherCache = { path: [this] };\n /** @hidden */\n private _children: UrlMatcher[] = [];\n /** @hidden */\n private _params: Param[] = [];\n /** @hidden */\n private _segments: string[] = [];\n /** @hidden */\n private _compiled: string[] = [];\n\n /** The pattern that was passed into the constructor */\n public pattern: string;\n\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param config A configuration object\n * - `caseInsensitive` - `true` if URL matching should be case insensitive, otherwise `false`, the default value (for backward compatibility) is `false`.\n * - `strict` - `false` if matching against a URL with a trailing slash should be treated as equivalent to a URL without a trailing slash, the default value is `true`.\n */\n constructor(pattern: string, paramTypes: ParamTypes, paramFactory: ParamFactory, public config?: any) {\n this.pattern = pattern;\n this.config = defaults(this.config, {\n params: {},\n strict: true,\n caseInsensitive: false,\n paramMap: identity\n });\n\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\:\\s*( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\]+ - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]+|\\\\.)*\\} - a matched set of curly braces containing other atoms\n let placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n searchPlaceholder = /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g,\n last = 0, m: RegExpExecArray, patterns: any[][] = [];\n\n const checkParamErrors = (id: string) => {\n if (!UrlMatcher.nameValidator.test(id)) throw new Error(`Invalid parameter name '${id}' in pattern '${pattern}'`);\n if (find(this._params, propEq('id', id))) throw new Error(`Duplicate parameter name '${id}' in pattern '${pattern}'`);\n };\n\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n const matchDetails = (m: RegExpExecArray, isSearch: boolean) => {\n // IE[78] returns '' for unmatched groups instead of null\n let id = m[2] || m[3];\n let regexp = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n\n const makeRegexpType = (regexp) => inherit(paramTypes.type(isSearch ? \"query\" : \"path\"), {\n pattern: new RegExp(regexp, this.config.caseInsensitive ? 'i' : undefined)\n });\n\n return {\n id,\n regexp,\n cfg: this.config.params[id],\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp)\n };\n };\n\n let p: any, segment: string;\n\n while ((m = placeholder.exec(pattern))) {\n p = matchDetails(m, false);\n if (p.segment.indexOf('?') >= 0) break; // we're into the search part\n\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromPath(p.id, p.type, this.config.paramMap(p.cfg, false)));\n this._segments.push(p.segment);\n patterns.push([p.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n\n // Find any search parameter names and remove them from the last segment\n let i = segment.indexOf('?');\n\n if (i >= 0) {\n let search = segment.substring(i);\n segment = segment.substring(0, i);\n\n if (search.length > 0) {\n last = 0;\n\n while ((m = searchPlaceholder.exec(search))) {\n p = matchDetails(m, true);\n checkParamErrors(p.id);\n this._params.push(paramFactory.fromSearch(p.id, p.type, this.config.paramMap(p.cfg, true)));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n\n this._segments.push(segment);\n this._compiled = patterns.map(pattern => quoteRegExp.apply(null, pattern)).concat(quoteRegExp(segment));\n }\n\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n append(url: UrlMatcher): UrlMatcher {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n }\n\n /** @hidden */\n isRoot(): boolean {\n return this._cache.path[0] === this;\n }\n\n /** Returns the input pattern string */\n toString(): string {\n return this.pattern;\n }\n\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n exec(path: string, search: any = {}, hash?: string, options: any = {}): RawParams {\n let match = memoizeTo(this._cache, 'pattern', () => {\n return new RegExp([\n '^',\n unnest(this._cache.path.map(prop('_compiled'))).join(''),\n this.config.strict === false ? '\\/?' : '',\n '$'\n ].join(''), this.config.caseInsensitive ? 'i' : undefined);\n }).exec(path);\n\n if (!match) return null;\n\n //options = defaults(options, { isolate: false });\n\n let allParams: Param[] = this.parameters(),\n pathParams: Param[] = allParams.filter(param => !param.isSearch()),\n searchParams: Param[] = allParams.filter(param => param.isSearch()),\n nPathSegments = this._cache.path.map(urlm => urlm._segments.length - 1).reduce((a, x) => a + x),\n values: RawParams = {};\n\n if (nPathSegments !== match.length - 1)\n throw new Error(`Unbalanced capture group in route '${this.pattern}'`);\n\n function decodePathArray(string: string) {\n const reverseString = (str: string) => str.split(\"\").reverse().join(\"\");\n const unquoteDashes = (str: string) => str.replace(/\\\\-/g, \"-\");\n\n let split = reverseString(string).split(/-(?!\\\\)/);\n let allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n\n for (let i = 0; i < nPathSegments; i++) {\n let param: Param = pathParams[i];\n let value: (any|any[]) = match[i + 1];\n\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (value && param.array === true) value = decodePathArray(value);\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n }\n searchParams.forEach(param => {\n let value = search[param.id];\n for (let j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value) value = param.replace[j].to;\n }\n if (isDefined(value)) value = param.type.decode(value);\n values[param.id] = param.value(value);\n });\n\n if (hash) values[\"#\"] = hash;\n\n return values;\n }\n\n /**\n * @hidden\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n parameters(opts: any = {}): Param[] {\n if (opts.inherit === false) return this._params;\n return unnest(this._cache.path.map(matcher => matcher._params));\n }\n\n /**\n * @hidden\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n parameter(id: string, opts: any = {}): Param {\n const findParam = () => {\n for (let param of this._params) {\n if (param.id === id) return param;\n }\n };\n\n let parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n }\n\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n validates(params: RawParams): boolean {\n const validParamVal = (param: Param, val: any) =>\n !param || param.validates(val);\n\n params = params || {};\n\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n let paramSchema = this.parameters().filter(paramDef => params.hasOwnProperty(paramDef.id));\n return paramSchema.map(paramDef => validParamVal(paramDef, params[paramDef.id])).reduce(allTrueR, true);\n }\n\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n format(values: RawParams = {}) {\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n let urlMatchers = this._cache.path;\n\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n let pathSegmentsAndParams: Array = urlMatchers.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map(x => isString(x) ? x : getDetails(x));\n\n // Extract the query params into a separate array\n let queryParams: Array = urlMatchers.map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n\n const isInvalid = (param: ParamDetails) => param.isValid === false;\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param: Param): ParamDetails {\n // Normalize to typed value\n let value = param.value(values[param.id]);\n let isValid = param.validates(value);\n let isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n let squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n let encoded = param.type.encode(value);\n\n return { param, value, isValid, isDefaultValue, squash, encoded };\n }\n\n // Build up the path-portion from the list of static segments and parameters\n let pathString = pathSegmentsAndParams.reduce((acc: string, x: string|ParamDetails) => {\n // The element is a static segment (a raw string); just append it\n if (isString(x)) return acc + x;\n\n // Otherwise, it's a ParamDetails.\n let { squash, encoded, param } = x;\n\n // If squash is === true, try to remove a slash from the path\n if (squash === true) return (acc.match(/\\/$/)) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash)) return acc + squash;\n if (squash !== false) return acc; // ?\n if (encoded == null) return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded)) return acc + map( encoded, UrlMatcher.encodeDashes).join(\"-\");\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw) return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent( encoded);\n }, \"\");\n\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n let queryString = queryParams.map((paramDetails: ParamDetails) => {\n let { param, squash, encoded, isDefaultValue } = paramDetails;\n if (encoded == null || (isDefaultValue && squash !== false)) return;\n if (!isArray(encoded)) encoded = [ encoded];\n if (encoded.length === 0) return;\n if (!param.raw) encoded = map( encoded, encodeURIComponent);\n\n return ( encoded).map(val => `${param.id}=${val}`);\n }).filter(identity).reduce(unnestR, []).join(\"&\");\n\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? `?${queryString}` : \"\") + (values[\"#\"] ? \"#\" + values[\"#\"] : \"\");\n }\n\n /** @hidden */\n static encodeDashes(str: string) { // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, c => `%5C%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n }\n\n /** @hidden Given a matcher, return an array with the matcher's path segments and path params, in order */\n static pathSegmentsAndParams(matcher: UrlMatcher) {\n let staticSegments = matcher._segments;\n let pathParams = matcher._params.filter(p => p.location === DefType.PATH);\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter(x => x !== \"\" && isDefined(x));\n }\n\n /** @hidden Given a matcher, return an array with the matcher's query params */\n static queryParams(matcher: UrlMatcher): Param[] {\n return matcher._params.filter(p => p.location === DefType.SEARCH);\n }\n\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n static compare(a: UrlMatcher, b: UrlMatcher): number {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n const segments = (matcher: UrlMatcher) =>\n matcher._cache.segments = matcher._cache.segments ||\n matcher._cache.path.map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map(x => isString(x) ? splitOnSlash(x) : x)\n .reduce(unnestR, []);\n\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n const weights = (matcher: UrlMatcher) =>\n matcher._cache.weights = matcher._cache.weights ||\n segments(matcher).map(segment => {\n // Sort slashes first, then static strings, the Params\n if (segment === '/') return 1;\n if (isString(segment)) return 2;\n if (segment instanceof Param) return 3;\n });\n\n /**\n * Pads shorter array in-place (mutates)\n */\n const padArrays = (l: any[], r: any[], padVal: any) => {\n const len = Math.max(l.length, r.length);\n while (l.length < len) l.push(padVal);\n while (r.length < len) r.push(padVal);\n };\n\n const weightsA = weights(a), weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n let cmp, i, pairs = arrayTuples(weightsA, weightsB);\n\n for (i = 0; i < pairs.length; i++) {\n cmp = pairs[i][0] - pairs[i][1];\n if (cmp !== 0) return cmp;\n }\n\n return 0;\n }\n}\n\n/** @hidden */\ninterface ParamDetails {\n param: Param;\n value: any;\n isValid: boolean;\n isDefaultValue: boolean;\n squash: (boolean|string);\n encoded: (string|string[]);\n}\n", + "/**\n * @internalapi\n * @module url\n */\n/** for typedoc */\nimport { createProxyFunctions, extend, removeFrom } from '../common/common';\nimport { isDefined, isFunction, isString } from '../common/predicates';\nimport { UrlMatcher } from './urlMatcher';\nimport { RawParams } from '../params/interface';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { is, pattern, val } from '../common/hof';\nimport { UrlRuleFactory } from './urlRule';\nimport { TargetState } from '../state/targetState';\nimport { MatcherUrlRule, MatchResult, UrlParts, UrlRule, UrlRuleHandlerFn, UrlRuleMatchFn, UrlRulesApi, UrlSyncApi, } from './interface';\nimport { TargetStateDef } from '../state/interface';\nimport { stripFile } from '../common';\n\n/** @hidden */\nfunction appendBasePath(url: string, isHtml5: boolean, absolute: boolean, baseHref: string): string {\n if (baseHref === '/') return url;\n if (isHtml5) return stripFile(baseHref) + url;\n if (absolute) return baseHref.slice(1) + url;\n return url;\n}\n\n/** @hidden */\nconst prioritySort = (a: UrlRule, b: UrlRule) =>\n (b.priority || 0) - (a.priority || 0);\n\n/** @hidden */\nconst typeSort = (a: UrlRule, b: UrlRule) => {\n const weights = { \"STATE\": 4, \"URLMATCHER\": 4, \"REGEXP\": 3, \"RAW\": 2, \"OTHER\": 1 };\n return (weights[a.type] || 0) - (weights[b.type] || 0);\n};\n\n/** @hidden */\nconst urlMatcherSort = (a: MatcherUrlRule, b: MatcherUrlRule) =>\n !a.urlMatcher || !b.urlMatcher ? 0 : UrlMatcher.compare(a.urlMatcher, b.urlMatcher);\n\n/** @hidden */\nconst idSort = (a: UrlRule, b: UrlRule) => {\n // Identically sorted STATE and URLMATCHER best rule will be chosen by `matchPriority` after each rule matches the URL\n const useMatchPriority = { STATE: true, URLMATCHER: true };\n const equal = useMatchPriority[a.type] && useMatchPriority[b.type];\n return equal ? 0 : (a.$id || 0) - (b.$id || 0);\n};\n\n/**\n * Default rule priority sorting function.\n *\n * Sorts rules by:\n *\n * - Explicit priority (set rule priority using [[UrlRulesApi.when]])\n * - Rule type (STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1)\n * - `UrlMatcher` specificity ([[UrlMatcher.compare]]): works for STATE and URLMATCHER types to pick the most specific rule.\n * - Rule registration order (for rule types other than STATE and URLMATCHER)\n * - Equally sorted State and UrlMatcher rules will each match the URL.\n * Then, the *best* match is chosen based on how many parameter values were matched.\n *\n * @coreapi\n */\nlet defaultRuleSortFn: (a: UrlRule, b: UrlRule) => number;\ndefaultRuleSortFn = (a, b) => {\n let cmp = prioritySort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = typeSort(a, b);\n if (cmp !== 0) return cmp;\n\n cmp = urlMatcherSort(a as MatcherUrlRule, b as MatcherUrlRule);\n if (cmp !== 0) return cmp;\n\n return idSort(a, b);\n};\n\n/**\n * Updates URL and responds to URL changes\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class updates the URL when the state changes.\n * It also responds to changes in the URL.\n */\nexport class UrlRouter implements UrlRulesApi, UrlSyncApi, Disposable {\n /** used to create [[UrlRule]] objects for common cases */\n public urlRuleFactory: UrlRuleFactory;\n\n /** @hidden */ private _router: UIRouter;\n /** @hidden */ private location: string;\n /** @hidden */ private _sortFn = defaultRuleSortFn;\n /** @hidden */ private _stopFn: Function;\n /** @hidden */ _rules: UrlRule[] = [];\n /** @hidden */ private _otherwiseFn: UrlRule;\n /** @hidden */ interceptDeferred = false;\n /** @hidden */ private _id = 0;\n /** @hidden */ private _sorted = false;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this.urlRuleFactory = new UrlRuleFactory(router);\n createProxyFunctions(val(UrlRouter.prototype), this, val(this));\n }\n\n /** @internalapi */\n dispose() {\n this.listen(false);\n this._rules = [];\n delete this._otherwiseFn;\n }\n\n /** @inheritdoc */\n sort(compareFn?: (a: UrlRule, b: UrlRule) => number) {\n this._rules = this.stableSort(this._rules, this._sortFn = compareFn || this._sortFn);\n this._sorted = true;\n }\n\n private ensureSorted() {\n this._sorted || this.sort();\n }\n\n private stableSort(arr, compareFn) {\n const arrOfWrapper = arr.map((elem, idx) => ({ elem, idx }));\n\n arrOfWrapper.sort((wrapperA, wrapperB) => {\n const cmpDiff = compareFn(wrapperA.elem, wrapperB.elem);\n return cmpDiff === 0\n ? wrapperA.idx - wrapperB.idx\n : cmpDiff;\n });\n\n return arrOfWrapper.map(wrapper => wrapper.elem);\n }\n\n /**\n * Given a URL, check all rules and return the best [[MatchResult]]\n * @param url\n * @returns {MatchResult}\n */\n match(url: UrlParts): MatchResult {\n this.ensureSorted();\n\n url = extend({path: '', search: {}, hash: '' }, url);\n let rules = this.rules();\n if (this._otherwiseFn) rules.push(this._otherwiseFn);\n\n // Checks a single rule. Returns { rule: rule, match: match, weight: weight } if it matched, or undefined\n\n let checkRule = (rule: UrlRule): MatchResult => {\n let match = rule.match(url, this._router);\n return match && { match, rule, weight: rule.matchPriority(match) };\n };\n\n // The rules are pre-sorted.\n // - Find the first matching rule.\n // - Find any other matching rule that sorted *exactly the same*, according to `.sort()`.\n // - Choose the rule with the highest match weight.\n let best: MatchResult;\n for (let i = 0; i < rules.length; i++) {\n // Stop when there is a 'best' rule and the next rule sorts differently than it.\n if (best && this._sortFn(rules[i], best.rule) !== 0) break;\n\n let current = checkRule(rules[i]);\n // Pick the best MatchResult\n best = (!best || current && current.weight > best.weight) ? current : best;\n }\n\n return best;\n }\n\n /** @inheritdoc */\n sync(evt?) {\n if (evt && evt.defaultPrevented) return;\n\n let router = this._router,\n $url = router.urlService,\n $state = router.stateService;\n\n let url: UrlParts = {\n path: $url.path(), search: $url.search(), hash: $url.hash(),\n };\n\n let best = this.match(url);\n\n let applyResult = pattern([\n [isString, (newurl: string) => $url.url(newurl, true)],\n [TargetState.isDef, (def: TargetStateDef) => $state.go(def.state, def.params, def.options)],\n [is(TargetState), (target: TargetState) => $state.go(target.state(), target.params(), target.options())],\n ]);\n\n applyResult(best && best.rule.handler(best.match, url, router));\n }\n\n /** @inheritdoc */\n listen(enabled?: boolean): Function {\n if (enabled === false) {\n this._stopFn && this._stopFn();\n delete this._stopFn;\n } else {\n return this._stopFn = this._stopFn || this._router.urlService.onChange(evt => this.sync(evt));\n }\n }\n\n /**\n * Internal API.\n * @internalapi\n */\n update(read?: boolean) {\n let $url = this._router.locationService;\n if (read) {\n this.location = $url.path();\n return;\n }\n if ($url.path() === this.location) return;\n\n $url.url(this.location, true);\n }\n\n /**\n * Internal API.\n *\n * Pushes a new location to the browser history.\n *\n * @internalapi\n * @param urlMatcher\n * @param params\n * @param options\n */\n push(urlMatcher: UrlMatcher, params?: RawParams, options?: { replace?: (string|boolean) }) {\n let replace = options && !!options.replace;\n this._router.urlService.url(urlMatcher.format(params || {}), replace);\n }\n\n /**\n * Builds and returns a URL with interpolated parameters\n *\n * #### Example:\n * ```js\n * matcher = $umf.compile(\"/about/:person\");\n * params = { person: \"bob\" };\n * $bob = $urlRouter.href(matcher, params);\n * // $bob == \"/about/bob\";\n * ```\n *\n * @param urlMatcher The [[UrlMatcher]] object which is used as the template of the URL to generate.\n * @param params An object of parameter values to fill the matcher's required parameters.\n * @param options Options object. The options are:\n *\n * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. \"http://www.example.com/fullurl\".\n *\n * @returns Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher`\n */\n href(urlMatcher: UrlMatcher, params?: any, options?: { absolute: boolean }): string {\n let url = urlMatcher.format(params);\n if (url == null) return null;\n\n options = options || { absolute: false };\n\n let cfg = this._router.urlService.config;\n let isHtml5 = cfg.html5Mode();\n if (!isHtml5 && url !== null) {\n url = \"#\" + cfg.hashPrefix() + url;\n }\n url = appendBasePath(url, isHtml5, options.absolute, cfg.baseHref());\n\n if (!options.absolute || !url) {\n return url;\n }\n\n let slash = (!isHtml5 && url ? '/' : ''), port = cfg.port();\n port = (port === 80 || port === 443 ? '' : ':' + port);\n\n return [cfg.protocol(), '://', cfg.host(), port, slash, url].join('');\n }\n\n\n /**\n * Manually adds a URL Rule.\n *\n * Usually, a url rule is added using [[StateDeclaration.url]] or [[when]].\n * This api can be used directly for more control (to register a [[BaseUrlRule]], for example).\n * Rules can be created using [[UrlRouter.urlRuleFactory]], or create manually as simple objects.\n *\n * A rule should have a `match` function which returns truthy if the rule matched.\n * It should also have a `handler` function which is invoked if the rule is the best match.\n *\n * @return a function that deregisters the rule\n */\n rule(rule: UrlRule): Function {\n if (!UrlRuleFactory.isUrlRule(rule)) throw new Error(\"invalid rule\");\n rule.$id = this._id++;\n rule.priority = rule.priority || 0;\n\n this._rules.push(rule);\n this._sorted = false;\n\n return () => this.removeRule(rule);\n }\n\n /** @inheritdoc */\n removeRule(rule): void {\n removeFrom(this._rules, rule);\n }\n\n /** @inheritdoc */\n rules(): UrlRule[] {\n this.ensureSorted();\n return this._rules.slice();\n }\n\n /** @inheritdoc */\n otherwise(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n this._otherwiseFn = this.urlRuleFactory.create(val(true), handlerFn);\n this._sorted = false;\n };\n\n /** @inheritdoc */\n initial(handler: string | UrlRuleHandlerFn | TargetState | TargetStateDef) {\n let handlerFn: UrlRuleHandlerFn = getHandlerFn(handler);\n\n let matchFn: UrlRuleMatchFn = (urlParts, router) =>\n router.globals.transitionHistory.size() === 0 && !!/^\\/?$/.exec(urlParts.path);\n\n this.rule(this.urlRuleFactory.create(matchFn, handlerFn));\n };\n\n /** @inheritdoc */\n when(matcher: (RegExp|UrlMatcher|string), handler: string|UrlRuleHandlerFn, options?: { priority: number }): UrlRule {\n let rule = this.urlRuleFactory.create(matcher, handler);\n if (isDefined(options && options.priority)) rule.priority = options.priority;\n this.rule(rule);\n return rule;\n };\n\n /** @inheritdoc */\n deferIntercept(defer?: boolean) {\n if (defer === undefined) defer = true;\n this.interceptDeferred = defer;\n };\n}\n\nfunction getHandlerFn(handler: string|UrlRuleHandlerFn|TargetState|TargetStateDef): UrlRuleHandlerFn {\n if (!isFunction(handler) && !isString(handler) && !is(TargetState)(handler) && !TargetState.isDef(handler)) {\n throw new Error(\"'handler' must be a string, function, TargetState, or have a state: 'newtarget' property\");\n }\n return isFunction(handler) ? handler as UrlRuleHandlerFn : val(handler);\n}\n", + "/** @module hooks */ /** */\nimport { Transition } from \"../transition/transition\";\nimport { UIRouter } from \"../router\";\nimport { TransitionService } from \"../transition/transitionService\";\n\nfunction addCoreResolvables(trans: Transition) {\n trans.addResolvable({ token: UIRouter, deps: [], resolveFn: () => trans.router, data: trans.router }, \"\");\n trans.addResolvable({ token: Transition, deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$transition$', deps: [], resolveFn: () => trans, data: trans }, \"\");\n trans.addResolvable({ token: '$stateParams', deps: [], resolveFn: () => trans.params(), data: trans.params() }, \"\");\n\n trans.entering().forEach(state => {\n trans.addResolvable({ token: '$state$', deps: [], resolveFn: () => state, data: state }, state);\n });\n}\n\nexport const registerAddCoreResolvables = (transitionService: TransitionService) =>\n transitionService.onCreate({}, addCoreResolvables);\n", + "/** @module hooks */\n/** for typedoc */\nimport { TransitionStateHookFn } from '../transition/interface';\nimport { Transition } from '../transition/transition';\nimport { TransitionService } from '../transition/transitionService';\nimport { StateDeclaration } from '../state/interface';\nimport { StateObject } from '../state/stateObject';\n\n/**\n * A factory which creates an onEnter, onExit or onRetain transition hook function\n *\n * The returned function invokes the (for instance) state.onEnter hook when the\n * state is being entered.\n *\n * @hidden\n */\nfunction makeEnterExitRetainHook(hookName: string): TransitionStateHookFn {\n return (transition: Transition, state: StateDeclaration) => {\n let _state: StateObject = state.$$state();\n let hookFn: TransitionStateHookFn = _state[hookName];\n return hookFn(transition, state);\n }\n}\n\n/**\n * The [[TransitionStateHookFn]] for onExit\n *\n * When the state is being exited, the state's .onExit function is invoked.\n *\n * Registered using `transitionService.onExit({ exiting: (state) => !!state.onExit }, onExitHook);`\n *\n * See: [[IHookRegistry.onExit]]\n */\nconst onExitHook: TransitionStateHookFn = makeEnterExitRetainHook('onExit');\nexport const registerOnExitHook = (transitionService: TransitionService) =>\n transitionService.onExit({exiting: state => !!state.onExit}, onExitHook);\n\n/**\n * The [[TransitionStateHookFn]] for onRetain\n *\n * When the state was already entered, and is not being exited or re-entered, the state's .onRetain function is invoked.\n *\n * Registered using `transitionService.onRetain({ retained: (state) => !!state.onRetain }, onRetainHook);`\n *\n * See: [[IHookRegistry.onRetain]]\n */\nconst onRetainHook: TransitionStateHookFn = makeEnterExitRetainHook('onRetain');\nexport const registerOnRetainHook = (transitionService: TransitionService) =>\n transitionService.onRetain({retained: state => !!state.onRetain}, onRetainHook);\n\n/**\n * The [[TransitionStateHookFn]] for onEnter\n *\n * When the state is being entered, the state's .onEnter function is invoked.\n *\n * Registered using `transitionService.onEnter({ entering: (state) => !!state.onEnter }, onEnterHook);`\n *\n * See: [[IHookRegistry.onEnter]]\n */\nconst onEnterHook: TransitionStateHookFn = makeEnterExitRetainHook('onEnter');\nexport const registerOnEnterHook = (transitionService: TransitionService) =>\n transitionService.onEnter({entering: state => !!state.onEnter}, onEnterHook);\n\n", + "/** @module hooks */ /** */\nimport {Transition} from \"../transition/transition\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {StateDeclaration, LazyLoadResult} from \"../state/interface\";\nimport {services} from \"../common/coreservices\";\nimport { StateRule } from \"../url/interface\";\n\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => System.import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nconst lazyLoadHook: TransitionHookFn = (transition: Transition) => {\n let router = transition.router;\n\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n let orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n let $url = router.urlService;\n let result = $url.match($url.parts());\n let rule = result && result.rule;\n\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === \"STATE\") {\n let state = (rule as StateRule).state;\n let params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n\n let promises = transition.entering()\n .filter(state => !!state.$$state().lazyLoad)\n .map(state => lazyLoadState(transition, state));\n\n return services.$q.all(promises).then(retryTransition);\n};\n\nexport const registerLazyLoadHook = (transitionService: TransitionService) =>\n transitionService.onBefore({ entering: (state) => !!state.lazyLoad }, lazyLoadHook);\n\n\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition: Transition, state: StateDeclaration): Promise {\n let lazyLoadFn = state.$$state().lazyLoad;\n\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n let promise = lazyLoadFn['_promise'];\n if (!promise) {\n const success = (result) => {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n\n const error = (err) => {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n\n promise = lazyLoadFn['_promise'] =\n services.$q.when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result: LazyLoadResult) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(state => transition.router.stateRegistry.register(state));\n }\n return result;\n }\n\n return promise;\n}\n", + "/** @module hooks */ /** */\n\nimport { trace } from '../common/trace';\nimport { Rejection } from '../transition/rejectFactory';\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that skips a transition if it should be ignored\n *\n * This hook is invoked at the end of the onBefore phase.\n *\n * If the transition should be ignored (because no parameter or states changed)\n * then the transition is ignored and not processed.\n */\nfunction ignoredHook(trans: Transition) {\n const ignoredReason = trans._ignoredReason();\n if (!ignoredReason) return;\n\n trace.traceTransitionIgnored(trans);\n\n const pending = trans.router.globals.transition;\n\n // The user clicked a link going back to the *current state* ('A')\n // However, there is also a pending transition in flight (to 'B')\n // Abort the transition to 'B' because the user now wants to be back at 'A'.\n if (ignoredReason === 'SameAsCurrent' && pending) {\n pending.abort();\n }\n\n return Rejection.ignored().toPromise();\n}\n\nexport const registerIgnoredTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, ignoredHook, { priority: -9999 });\n", + "/** @module hooks */ /** */\n\nimport { TransitionService } from '../transition/transitionService';\nimport { Transition } from '../transition/transition';\n\n/**\n * A [[TransitionHookFn]] that rejects the Transition if it is invalid\n *\n * This hook is invoked at the end of the onBefore phase.\n * If the transition is invalid (for example, param values do not validate)\n * then the transition is rejected.\n */\nfunction invalidTransitionHook(trans: Transition) {\n if (!trans.valid()) {\n throw new Error(trans.error());\n }\n}\n\nexport const registerInvalidTransitionHook = (transitionService: TransitionService) =>\n transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n LocationConfig, LocationServices, identity, unnestR, isArray, splitEqual, splitHash, splitQuery\n} from \"../common\";\nimport { UIRouter } from \"../router\";\n\nexport const keyValsToObjectR = (accum, [key, val]) => {\n if (!accum.hasOwnProperty(key)) {\n accum[key] = val;\n } else if (isArray(accum[key])) {\n accum[key].push(val);\n } else {\n accum[key] = [accum[key], val]\n }\n return accum;\n};\n\nexport const getParams = (queryString: string): any =>\n queryString.split(\"&\").filter(identity).map(splitEqual).reduce(keyValsToObjectR, {});\n\nexport function parseUrl(url: string) {\n const orEmptyString = x => x || \"\";\n let [beforehash, hash] = splitHash(url).map(orEmptyString);\n let [path, search] = splitQuery(beforehash).map(orEmptyString);\n\n return { path, search, hash, url };\n}\n\nexport const buildUrl = (loc: LocationServices) => {\n let path = loc.path();\n let searchObject = loc.search();\n let hash = loc.hash();\n\n let search = Object.keys(searchObject).map(key => {\n let param = searchObject[key];\n let vals = isArray(param) ? param : [param];\n return vals.map(val => key + \"=\" + val);\n }).reduce(unnestR, []).join(\"&\");\n\n return path + (search ? \"?\" + search : \"\") + (hash ? \"#\" + hash : \"\");\n};\n\nexport function locationPluginFactory(\n name: string,\n isHtml5: boolean,\n serviceClass: { new(router?: UIRouter): LocationServices },\n configurationClass: { new(router?: UIRouter, isHtml5?: boolean): LocationConfig }\n) {\n return function(router: UIRouter) {\n let service = router.locationService = new serviceClass(router);\n let configuration = router.locationConfig = new configurationClass(router, isHtml5);\n\n function dispose(router: UIRouter) {\n router.dispose(service);\n router.dispose(configuration);\n }\n\n return { name, service, configuration, dispose };\n };\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BrowserLocationConfig } from \"./browserLocationConfig\";\nimport { HashLocationService } from \"./hashLocationService\";\nimport { locationPluginFactory } from \"./utils\";\nimport { LocationPlugin, ServicesPlugin } from \"./interface\";\nimport { UIRouter } from \"../router\";\nimport { PushStateLocationService } from \"./pushStateLocationService\";\nimport { MemoryLocationService } from \"./memoryLocationService\";\nimport { MemoryLocationConfig } from \"./memoryLocationConfig\";\nimport { $injector } from \"./injector\";\nimport { $q } from \"./q\";\nimport { services } from \"../common/coreservices\";\n\nexport function servicesPlugin(router: UIRouter): ServicesPlugin {\n services.$injector = $injector;\n services.$q = $q;\n\n return { name: \"vanilla.services\", $q, $injector, dispose: () => null };\n}\n\n/** A `UIRouterPlugin` uses the browser hash to get/set the current location */\nexport const hashLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory('vanilla.hashBangLocation', false, HashLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location using the browser's `location` and `history` apis */\nexport const pushStateLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.pushStateLocation\", true, PushStateLocationService, BrowserLocationConfig);\n\n/** A `UIRouterPlugin` that gets/sets the current location from an in-memory object */\nexport const memoryLocationPlugin: (router: UIRouter) => LocationPlugin =\n locationPluginFactory(\"vanilla.memoryLocation\", false, MemoryLocationService, MemoryLocationConfig);\n", + "/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n", + "/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n", + "/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n", + "/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n", + "/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n", + "/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n", + "/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n", + "/**\n * @coreapi\n * @module core\n */\n/** \n * Matches state names using glob-like pattern strings.\n *\n * Globs can be used in specific APIs including:\n *\n * - [[StateService.is]]\n * - [[StateService.includes]]\n * - The first argument to Hook Registration functions like [[TransitionService.onStart]]\n * - [[HookMatchCriteria]] and [[HookMatchCriterion]]\n *\n * A `Glob` string is a pattern which matches state names.\n * Nested state names are split into segments (separated by a dot) when processing.\n * The state named `foo.bar.baz` is split into three segments ['foo', 'bar', 'baz']\n *\n * Globs work according to the following rules:\n *\n * ### Exact match:\n *\n * The glob `'A.B'` matches the state named exactly `'A.B'`.\n *\n * | Glob |Matches states named|Does not match state named|\n * |:------------|:--------------------|:---------------------|\n * | `'A'` | `'A'` | `'B'` , `'A.C'` |\n * | `'A.B'` | `'A.B'` | `'A'` , `'A.B.C'` |\n * | `'foo'` | `'foo'` | `'FOO'` , `'foo.bar'`|\n *\n * ### Single star (`*`)\n *\n * A single star (`*`) is a wildcard that matches exactly one segment.\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:---------------------|:--------------------------|\n * | `'*'` | `'A'` , `'Z'` | `'A.B'` , `'Z.Y.X'` |\n * | `'A.*'` | `'A.B'` , `'A.C'` | `'A'` , `'A.B.C'` |\n * | `'A.*.*'` | `'A.B.C'` , `'A.X.Y'`| `'A'`, `'A.B'` , `'Z.Y.X'`|\n *\n * ### Double star (`**`)\n *\n * A double star (`'**'`) is a wildcard that matches *zero or more segments*\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:----------------------------------------------|:----------------------------------|\n * | `'**'` | `'A'` , `'A.B'`, `'Z.Y.X'` | (matches all states) |\n * | `'A.**'` | `'A'` , `'A.B'` , `'A.C.X'` | `'Z.Y.X'` |\n * | `'**.X'` | `'X'` , `'A.X'` , `'Z.Y.X'` | `'A'` , `'A.login.Z'` |\n * | `'A.**.X'` | `'A.X'` , `'A.B.X'` , `'A.B.C.X'` | `'A'` , `'A.B.C'` |\n *\n */\nexport class Glob {\n text: string;\n glob: Array;\n regexp: RegExp;\n\n constructor(text: string) {\n this.text = text;\n this.glob = text.split('.');\n\n let regexpString = this.text.split('.')\n .map(seg => {\n if (seg === '**') return '(?:|(?:\\\\.[^.]*)*)';\n if (seg === '*') return '\\\\.[^.]*';\n return '\\\\.' + seg;\n }).join('');\n\n this.regexp = new RegExp(\"^\" + regexpString + \"$\");\n }\n\n matches(name: string) {\n return this.regexp.test('.' + name);\n }\n\n /** Returns true if the string has glob-like characters in it */\n static is(text: string) {\n return !!/[!,*]+/.exec(text);\n }\n\n /** Returns a glob from the string, or null if the string isn't Glob-like */\n static fromString(text: string) {\n return Glob.is(text) ? new Glob(text) : null;\n }\n}\n", + "/**\n * @coreapi\n * @module state\n */\n/** for typedoc */\nimport { StateDeclaration, _ViewDeclaration, _StateDeclaration, LazyLoadResult } from \"./interface\";\nimport { defaults, values, find, inherit } from \"../common/common\";\nimport { propEq } from \"../common/hof\";\nimport { Param } from \"../params/param\";\nimport { UrlMatcher } from \"../url/urlMatcher\";\nimport { Resolvable } from \"../resolve/resolvable\";\nimport { TransitionStateHookFn } from \"../transition/interface\";\nimport { TargetState } from \"./targetState\";\nimport { Transition } from \"../transition/transition\";\nimport { Glob } from \"../common/glob\";\nimport { isObject, isFunction } from \"../common/predicates\";\n\n/**\n * Internal representation of a UI-Router state.\n *\n * Instances of this class are created when a [[StateDeclaration]] is registered with the [[StateRegistry]].\n *\n * A registered [[StateDeclaration]] is augmented with a getter ([[StateDeclaration.$$state]]) which returns the corresponding [[StateObject]] object.\n *\n * This class prototypally inherits from the corresponding [[StateDeclaration]].\n * Each of its own properties (i.e., `hasOwnProperty`) are built using builders from the [[StateBuilder]].\n */\nexport class StateObject {\n /** The parent [[StateObject]] */\n public parent: StateObject;\n\n /** The name used to register the state */\n public name: string;\n\n /** Prototypally inherits from [[StateDeclaration.abstract]] */\n public abstract: boolean;\n\n /** Prototypally inherits from [[StateDeclaration.resolve]] */\n public resolve: ({ [key: string]: (string|any[]|Function) }|any[]);\n\n /** A list of [[Resolvable]] objects. The internal representation of [[resolve]]. */\n public resolvables: Resolvable[];\n\n /** Prototypally inherits from [[StateDeclaration.resolvePolicy]] */\n public resolvePolicy: any;\n\n /** A compiled URLMatcher which detects when the state's URL is matched */\n public url: UrlMatcher;\n\n /** The parameters for the state, built from the URL and [[StateDeclaration.params]] */\n public params: { [key: string]: Param };\n\n /**\n * The views for the state.\n * Note: `@uirouter/core` does not register a builder for views.\n * The framework specific code should register a `views` builder.\n */\n public views: { [key: string]: _ViewDeclaration; };\n\n /**\n * The original [[StateDeclaration]] used to build this [[StateObject]].\n * Note: `this` object also prototypally inherits from the `self` declaration object.\n */\n public self: StateDeclaration;\n\n /** The nearest parent [[StateObject]] which has a URL */\n public navigable: StateObject;\n\n /** The parent [[StateObject]] objects from this state up to the root */\n public path: StateObject[];\n\n /**\n * Prototypally inherits from [[StateDeclaration.data]]\n * Note: This is the only field on the [[StateDeclaration]] which is mutated.\n * The definition object's `data` field is replaced with a new object\n * which prototypally inherits from the parent state definition's `data` field.\n */\n public data: any;\n\n /** \n * An object containing the parent States' names as keys and \n * true as their values.\n */\n public includes: { [name: string]: boolean };\n\n /** Prototypally inherits from [[StateDeclaration.onExit]] */\n public onExit: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onRetain]] */\n public onRetain: TransitionStateHookFn;\n /** Prototypally inherits from [[StateDeclaration.onEnter]] */\n public onEnter: TransitionStateHookFn;\n\n /** Prototypally inherits from [[StateDeclaration.lazyLoad]] */\n public lazyLoad: (transition: Transition, state: StateDeclaration) => Promise;\n\n /** Prototypally inherits from [[StateDeclaration.redirectTo]] */\n redirectTo: (\n string |\n (($transition$: Transition) => TargetState) |\n { state: (string|StateDeclaration), params: { [key: string]: any }}\n );\n\n /** @hidden */\n __stateObjectCache: {\n /** Might be null */\n nameGlob?: Glob\n };\n\n\n /** @deprecated use State.create() */\n constructor(config?: StateDeclaration) {\n return StateObject.create(config || {});\n }\n\n /**\n * Create a state object to put the private/internal implementation details onto.\n * The object's prototype chain looks like:\n * (Internal State Object) -> (Copy of State.prototype) -> (State Declaration object) -> (State Declaration's prototype...)\n *\n * @param stateDecl the user-supplied State Declaration\n * @returns {StateObject} an internal State object\n */\n static create(stateDecl: _StateDeclaration): StateObject {\n stateDecl = StateObject.isStateClass(stateDecl) ? new stateDecl() : stateDecl;\n\n let state = inherit(inherit(stateDecl, StateObject.prototype)) as StateObject;\n stateDecl.$$state = () => state;\n state.self = stateDecl;\n state.__stateObjectCache = {\n nameGlob: Glob.fromString(state.name) // might return null\n };\n return state;\n }\n\n /** Predicate which returns true if the object is an class with @State() decorator */\n static isStateClass = (stateDecl: _StateDeclaration): stateDecl is ({ new (): StateDeclaration }) =>\n isFunction(stateDecl) && stateDecl['__uiRouterState'] === true;\n\n /** Predicate which returns true if the object is an internal [[StateObject]] object */\n static isState = (obj: any): obj is StateObject =>\n isObject(obj['__stateObjectCache']);\n\n /**\n * Returns true if the provided parameter is the same state.\n *\n * Compares the identity of the state against the passed value, which is either an object\n * reference to the actual `State` instance, the original definition object passed to\n * `$stateProvider.state()`, or the fully-qualified name.\n *\n * @param ref Can be one of (a) a `State` instance, (b) an object that was passed\n * into `$stateProvider.state()`, (c) the fully-qualified name of a state as a string.\n * @returns Returns `true` if `ref` matches the current `State` instance.\n */\n is(ref: StateObject|StateDeclaration|string): boolean {\n return this === ref || this.self === ref || this.fqn() === ref;\n }\n\n /**\n * @deprecated this does not properly handle dot notation\n * @returns Returns a dot-separated name of the state.\n */\n fqn(): string {\n if (!this.parent || !(this.parent instanceof this.constructor)) return this.name;\n let name = this.parent.fqn();\n return name ? name + \".\" + this.name : this.name;\n }\n\n /**\n * Returns the root node of this state's tree.\n *\n * @returns The root of this state's tree.\n */\n root(): StateObject {\n return this.parent && this.parent.root() || this;\n }\n\n /**\n * Gets the state's `Param` objects\n *\n * Gets the list of [[Param]] objects owned by the state.\n * If `opts.inherit` is true, it also includes the ancestor states' [[Param]] objects.\n * If `opts.matchingKeys` exists, returns only `Param`s whose `id` is a key on the `matchingKeys` object\n *\n * @param opts options\n */\n parameters(opts?: { inherit?: boolean, matchingKeys?: any }): Param[] {\n opts = defaults(opts, { inherit: true, matchingKeys: null });\n let inherited = opts.inherit && this.parent && this.parent.parameters() || [];\n return inherited.concat(values(this.params))\n .filter(param => !opts.matchingKeys || opts.matchingKeys.hasOwnProperty(param.id));\n }\n\n /**\n * Returns a single [[Param]] that is owned by the state\n *\n * If `opts.inherit` is true, it also searches the ancestor states` [[Param]]s.\n * @param id the name of the [[Param]] to return\n * @param opts options\n */\n parameter(id: string, opts: { inherit?: boolean } = {}): Param {\n return (\n this.url && this.url.parameter(id, opts) ||\n find(values(this.params), propEq('id', id)) ||\n opts.inherit && this.parent && this.parent.parameter(id)\n );\n }\n\n toString() {\n return this.fqn();\n }\n}\n", + "/**\n * This module is a stub for core services such as Dependency Injection or Browser Location.\n * Core services may be implemented by a specific framework, such as ng1 or ng2, or be pure javascript.\n *\n * @module common\n */\n/** for typedoc */\nimport {IInjectable, Obj} from \"./common\";\nimport { Disposable } from \"../interface\";\nimport { UrlParts } from \"../url/interface\";\n\nexport let notImplemented = (fnname: string) => () => {\n throw new Error(`${fnname}(): No coreservices implementation for UI-Router is loaded.`);\n};\n\nlet services: CoreServices = {\n $q: undefined,\n $injector: undefined,\n};\n\nexport interface $QLikeDeferred {\n resolve: (val?: any) => void;\n reject: (reason?: any) => void;\n promise: Promise;\n}\n\nexport interface $QLike {\n when(value?: T | PromiseLike): Promise;\n reject(reason: any): Promise;\n defer(): $QLikeDeferred;\n all(promises: { [key: string]: Promise }): Promise;\n all(promises: Promise[]): Promise;\n}\n\nexport interface $InjectorLike {\n get(token: any): any;\n get(token: any): T;\n has(token: any): boolean;\n invoke(fn: IInjectable, context?: any, locals?: Obj): any;\n annotate(fn: IInjectable, strictDi?: boolean): any[];\n strictDi?: boolean;\n}\n\nexport interface CoreServices {\n $q: $QLike;\n $injector: $InjectorLike;\n}\n\nexport interface LocationServices extends Disposable {\n /**\n * Gets the current url string\n *\n * The URL is normalized using the internal [[path]]/[[search]]/[[hash]] values.\n *\n * For example, the URL may be stored in the hash ([[HashLocationServices]]) or\n * have a base HREF prepended ([[PushStateLocationServices]]).\n *\n * The raw URL in the browser might be:\n *\n * ```\n * http://mysite.com/somepath/index.html#/internal/path/123?param1=foo#anchor\n * ```\n *\n * or\n *\n * ```\n * http://mysite.com/basepath/internal/path/123?param1=foo#anchor\n * ```\n *\n * then this method returns:\n *\n * ```\n * /internal/path/123?param1=foo#anchor\n * ```\n *\n *\n * #### Example:\n * ```js\n * locationServices.url(); // \"/some/path?query=value#anchor\"\n * ```\n *\n * @returns the current value of the url, as a string.\n */\n url(): string;\n\n /**\n * Updates the url, or gets the current url\n *\n * Updates the url, changing it to the value in `newurl`\n *\n * #### Example:\n * ```js\n * locationServices.url(\"/some/path?query=value#anchor\", true);\n * ```\n *\n * @param newurl The new value for the URL.\n * This url should reflect only the new internal [[path]], [[search]], and [[hash]] values.\n * It should not include the protocol, site, port, or base path of an absolute HREF.\n * @param replace When true, replaces the current history entry (instead of appending it) with this new url\n * @param state The history's state object, i.e., pushState (if the LocationServices implementation supports it)\n * @return the url (after potentially being processed)\n */\n url(newurl: string, replace?: boolean, state?: any): string;\n\n /**\n * Gets the path part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `/some/path`\n *\n * @return the path portion of the url\n */\n path(): string;\n\n /**\n * Gets the search part of the current url as an object\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `{ query: 'value' }`\n *\n * @return the search (querystring) portion of the url, as an object\n */\n search(): { [key: string]: any };\n\n /**\n * Gets the hash part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `anchor`\n *\n * @return the hash (anchor) portion of the url\n */\n hash(): string;\n\n /**\n * Registers a url change handler\n *\n * #### Example:\n * ```js\n * let deregisterFn = locationServices.onChange((evt) => console.log(\"url change\", evt));\n * ```\n *\n * @param callback a function that will be called when the url is changing\n * @return a function that de-registers the callback\n */\n onChange(callback: Function): Function;\n}\n\n/**\n * This service returns the location configuration\n *\n * This service returns information about the location configuration.\n * This service is primarily used when building URLs (e.g., for `hrefs`)\n */\nexport interface LocationConfig extends Disposable {\n /**\n * Gets the port, e.g., `80`\n *\n * @return the port number\n */\n port(): number;\n /**\n * Gets the protocol, e.g., `http`\n *\n * @return the protocol\n */\n protocol(): string;\n /**\n * Gets the host, e.g., `localhost`\n *\n * @return the protocol\n */\n host(): string;\n /**\n * Gets the base Href, e.g., `http://localhost/approot/`\n *\n * @return the application's base href\n */\n baseHref(): string;\n /**\n * Returns true when running in pushstate mode\n *\n * @return true when running in pushstate mode\n */\n html5Mode(): boolean;\n /**\n * Gets the hashPrefix (when not running in pushstate mode)\n *\n * If the current url is `http://localhost/app#!/uirouter/path/#anchor`, it returns `!` which is the prefix for the \"hashbang\" portion.\n *\n * @return the hash prefix\n */\n hashPrefix(): string;\n /**\n * Sets the hashPrefix (when not running in pushstate mode)\n *\n * @return the new hash prefix\n */\n hashPrefix(newprefix: string): string;\n}\n\nexport {services};\n", + "/**\n * @module common\n */ /** for typedoc */\n\nexport class Queue {\n constructor(private _items: T[] = [], private _limit: number = null) { }\n\n enqueue(item: T) {\n let items = this._items;\n items.push(item);\n if (this._limit && items.length > this._limit) items.shift();\n return item;\n }\n\n dequeue(): T {\n if (this.size())\n return this._items.splice(0, 1)[0];\n }\n\n clear(): Array {\n let current = this._items;\n this._items = [];\n return current;\n }\n\n size(): number {\n return this._items.length;\n }\n\n remove(item: T) {\n let idx = this._items.indexOf(item);\n return idx > -1 && this._items.splice(idx, 1)[0];\n }\n\n peekTail(): T {\n return this._items[this._items.length - 1];\n }\n\n peekHead(): T {\n if (this.size())\n return this._items[0];\n }\n}\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\n\"use strict\";\nimport {extend, silentRejection} from \"../common/common\";\nimport {stringify} from \"../common/strings\";\nimport { is } from '../common/hof';\n\nexport enum RejectType {\n SUPERSEDED = 2, ABORTED = 3, INVALID = 4, IGNORED = 5, ERROR = 6\n}\n\n/** @hidden */ let id = 0;\n\nexport class Rejection {\n $id = id++;\n type: number;\n message: string;\n detail: any;\n redirected: boolean;\n\n constructor(type: number, message?: string, detail?: any) {\n this.type = type;\n this.message = message;\n this.detail = detail;\n }\n\n toString() {\n const detailString = (d: any) => \n d && d.toString !== Object.prototype.toString ? d.toString() : stringify(d);\n let detail = detailString(this.detail);\n let { $id, type, message } = this;\n return `Transition Rejection($id: ${$id} type: ${type}, message: ${message}, detail: ${detail})`;\n }\n\n toPromise(): Promise {\n return extend(silentRejection(this), { _transitionRejection: this });\n }\n\n /** Returns true if the obj is a rejected promise created from the `asPromise` factory */\n static isRejectionPromise(obj: any): boolean {\n return obj && (typeof obj.then === 'function') && is(Rejection)(obj._transitionRejection);\n }\n\n /** Returns a Rejection due to transition superseded */\n static superseded(detail?: any, options?: any): Rejection {\n let message = \"The transition has been superseded by a different transition\";\n let rejection = new Rejection(RejectType.SUPERSEDED, message, detail);\n if (options && options.redirected) {\n rejection.redirected = true;\n }\n return rejection;\n }\n\n /** Returns a Rejection due to redirected transition */\n static redirected(detail?: any): Rejection {\n return Rejection.superseded(detail, { redirected: true });\n }\n\n /** Returns a Rejection due to invalid transition */\n static invalid(detail?: any): Rejection {\n let message = \"This transition is invalid\";\n return new Rejection(RejectType.INVALID, message, detail);\n }\n\n /** Returns a Rejection due to ignored transition */\n static ignored(detail?: any): Rejection {\n let message = \"The transition was ignored\";\n return new Rejection(RejectType.IGNORED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static aborted(detail?: any): Rejection {\n let message = \"The transition has been aborted\";\n return new Rejection(RejectType.ABORTED, message, detail);\n }\n\n /** Returns a Rejection due to aborted transition */\n static errored(detail?: any): Rejection {\n let message = \"The transition errored\";\n return new Rejection(RejectType.ERROR, message, detail);\n }\n \n /**\n * Returns a Rejection\n *\n * Normalizes a value as a Rejection.\n * If the value is already a Rejection, returns it.\n * Otherwise, wraps and returns the value as a Rejection (Rejection type: ERROR).\n *\n * @returns `detail` if it is already a `Rejection`, else returns an ERROR Rejection.\n */\n static normalize(detail?: Rejection | Error | any): Rejection {\n return is(Rejection)(detail) ? detail : Rejection.errored(detail);\n }\n}\n", + "/**\n * @coreapi\n * @module transition\n */ /** for typedoc */\nimport {StateDeclaration} from \"../state/interface\";\nimport {Predicate} from \"../common/common\";\n\nimport {Transition} from \"./transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport {TargetState} from \"../state/targetState\";\nimport {RegisteredHook} from \"./hookRegistry\";\n\n/**\n * The TransitionOptions object can be used to change the behavior of a transition.\n *\n * It is passed as the third argument to [[StateService.go]], [[StateService.transitionTo]].\n * It can also be used with a `uiSref`.\n */\nexport interface TransitionOptions {\n /**\n * This option changes how the Transition interacts with the browser's location bar (URL).\n *\n * - If `true`, it will update the url in the location bar.\n * - If `false`, it will not update the url in the location bar.\n * - If it is the string `\"replace\"`, it will update the url and also replace the last history record.\n *\n * @default `true`\n */\n location ?: (boolean|string);\n\n /**\n * When transitioning to relative path (e.g '`^`'), this option defines which state to be relative from.\n * @default `$state.current`\n */\n relative ?: (string|StateDeclaration|StateObject);\n\n /**\n * This option sets whether or not the transition's parameter values should be inherited from\n * the current parameter values.\n *\n * - If `true`, it will inherit parameter values from the current parameter values.\n * - If `false`, only the parameters which are provided to `transitionTo` will be used.\n *\n * @default `false`\n */\n inherit ?: boolean;\n\n /**\n * @deprecated\n */\n notify ?: boolean;\n\n /**\n * This option may be used to force states which are currently active to reload.\n *\n * During a normal transition, a state is \"retained\" if:\n * - It was previously active\n * - The state's parameter values have not changed\n * - All the parent states' parameter values have not changed\n *\n * Forcing a reload of a state will cause it to be exited and entered, which will:\n * - Refetch that state's resolve data\n * - Exit the state (onExit hook)\n * - Re-enter the state (onEnter hook)\n * - Re-render the views (controllers and templates)\n *\n * - When `true`, the destination state (and all parent states) will be reloaded.\n * - When it is a string and is the name of a state, or when it is a State object,\n * that state and any children states will be reloaded.\n *\n * @default `false`\n */\n reload ?: (boolean|string|StateDeclaration|StateObject);\n /**\n * You can define your own Transition Options inside this property and use them, e.g., from a Transition Hook\n */\n custom ?: any;\n /** @internalapi */\n reloadState ?: (StateObject);\n /** @internalapi\n * If this transition is a redirect, this property should be the original Transition (which was redirected to this one)\n */\n redirectedFrom?: Transition;\n /** @internalapi */\n current ?: () => Transition;\n /** @internalapi */\n source ?: \"sref\" | \"url\" | \"redirect\" | \"otherwise\" | \"unknown\";\n}\n\n/** @internalapi */\nexport interface TransitionHookOptions {\n current ?: () => Transition; //path?\n transition ?: Transition;\n hookType ?: string;\n target ?: any;\n traceData ?: any;\n bind ?: any;\n stateHook ?: boolean;\n}\n\n/**\n * TreeChanges encapsulates the various Paths that are involved in a Transition.\n *\n * Get a TreeChanges object using [[Transition.treeChanges]]\n *\n * A UI-Router Transition is from one Path in a State Tree to another Path. For a given Transition,\n * this object stores the \"to\" and \"from\" paths, as well as subsets of those: the \"retained\",\n * \"exiting\" and \"entering\" paths.\n *\n * Each path in TreeChanges is an array of [[PathNode]] objects. Each PathNode in the array corresponds to a portion\n * of a nested state.\n *\n * For example, if you had a nested state named `foo.bar.baz`, it would have three\n * portions, `foo, bar, baz`. If you transitioned **to** `foo.bar.baz` and inspected the [[TreeChanges.to]]\n * Path, you would find a node in the array for each portion: `foo`, `bar`, and `baz`.\n *\n * ---\n *\n * @todo show visual state tree\n */\nexport interface TreeChanges {\n /** @nodoc */\n [key: string]: PathNode[];\n\n /** The path of nodes in the state tree that the transition is coming *from* */\n from: PathNode[];\n\n /** The path of nodes in the state tree that the transition is going *to* */\n to: PathNode[];\n\n /**\n * The path of active nodes that the transition is retaining.\n *\n * These nodes are neither exited, nor entered.\n * Before and after the transition is successful, these nodes are active.\n */\n retained: PathNode[];\n\n /**\n * The path of previously active nodes that the transition is exiting.\n *\n * After the Transition is successful, these nodes are no longer active.\n *\n * Note that a state that is being reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n exiting: PathNode[];\n\n /**\n * The path of nodes that the transition is entering.\n *\n * After the Transition is successful, these nodes will be active.\n * Because they are entering, they have their resolves fetched, `onEnter` hooks run, and their views\n * (component(s) or controller(s)+template(s)) refreshed.\n *\n * Note that a state that is reloaded (due to parameter values changing, or `reload: true`) may be in both the\n * `exiting` and `entering` paths.\n */\n entering: PathNode[];\n}\n\nexport type IHookRegistration = (matchCriteria: HookMatchCriteria, callback: HookFn, options?: HookRegOptions) => Function;\n\n/**\n * The signature for Transition Hooks.\n *\n * Transition hooks are callback functions that hook into the lifecycle of transitions.\n * As a transition runs, it reaches certain lifecycle events.\n * As each event occurs, the hooks which are registered for the event are called (in priority order).\n *\n * A transition hook may alter a Transition by returning a [[HookResult]].\n *\n * #### See:\n *\n * - [[IHookRegistry.onBefore]]\n * - [[IHookRegistry.onStart]]\n * - [[IHookRegistry.onFinish]]\n * - [[IHookRegistry.onSuccess]]\n * - [[IHookRegistry.onError]]\n *\n * @param transition the current [[Transition]]\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n *\n */\nexport interface TransitionHookFn {\n (transition: Transition) : HookResult;\n}\n\n/**\n * The signature for Transition State Hooks.\n *\n * A function which hooks into a lifecycle event for a specific state.\n *\n * Transition State Hooks are callback functions that hook into the lifecycle events of specific states during a transition.\n * As a transition runs, it may exit some states, retain (keep) states, and enter states.\n * As each lifecycle event occurs, the hooks which are registered for the event and that state are called (in priority order).\n *\n * #### See:\n *\n * - [[IHookRegistry.onExit]]\n * - [[IHookRegistry.onRetain]]\n * - [[IHookRegistry.onEnter]]\n *\n * @param transition the current [[Transition]]\n * @param state the [[StateObject]] that the hook is bound to\n * @param injector (for ng1 or ng2 only) the injector service\n *\n * @returns a [[HookResult]] which may alter the transition\n */\nexport interface TransitionStateHookFn {\n (transition: Transition, state: StateDeclaration) : HookResult;\n}\n\n/**\n * The signature for Transition onCreate Hooks.\n *\n * Transition onCreate Hooks are callbacks that allow customization or preprocessing of\n * a Transition before it is returned from [[TransitionService.create]]\n *\n * @param transition the [[Transition]] that was just created\n * @return a [[Transition]] which will then be returned from [[TransitionService.create]]\n */\nexport interface TransitionCreateHookFn {\n (transition: Transition): void;\n}\n\nexport type HookFn = (TransitionHookFn|TransitionStateHookFn|TransitionCreateHookFn);\n\n/**\n * The return value of a [[TransitionHookFn]] or [[TransitionStateHookFn]]\n *\n * When returned from a [[TransitionHookFn]] or [[TransitionStateHookFn]], these values alter the running [[Transition]]:\n *\n * - `false`: the transition will be cancelled.\n * - [[TargetState]]: the transition will be redirected to the new target state (see: [[StateService.target]])\n * - `Promise`: the transition will wait for the promise to resolve or reject\n * - If the promise is rejected (or resolves to `false`), the transition will be cancelled\n * - If the promise resolves to a [[TargetState]], the transition will be redirected\n * - If the promise resolves to anything else, the transition will resume\n * - Anything else: the transition will resume\n */\nexport type HookResult = (boolean | TargetState | void | Promise);\n\n/**\n * These options may be provided when registering a Transition Hook (such as `onStart`)\n */\nexport interface HookRegOptions {\n /**\n * Sets the priority of the registered hook\n *\n * Hooks of the same type (onBefore, onStart, etc) are invoked in priority order. A hook with a higher priority\n * is invoked before a hook with a lower priority.\n *\n * The default hook priority is 0\n */\n priority?: number;\n\n /**\n * Specifies what `this` is bound to during hook invocation.\n */\n bind?: any;\n\n /**\n * Limits the number of times that the hook will be invoked.\n * Once the hook has been invoked this many times, it is automatically deregistered.\n */\n invokeLimit?: number;\n}\n\n/**\n * This interface specifies the api for registering Transition Hooks. Both the\n * [[TransitionService]] and also the [[Transition]] object itself implement this interface.\n * Note: the Transition object only allows hooks to be registered before the Transition is started.\n */\nexport interface IHookRegistry {\n /**\n * Registers a [[TransitionHookFn]], called *before a transition starts*.\n *\n * Registers a transition lifecycle hook, which is invoked before a transition even begins.\n * This hook can be useful to implement logic which prevents a transition from even starting, such\n * as authentication, redirection\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onBefore` hooks are invoked *before a Transition starts*.\n * No resolves have been fetched yet.\n * Each `onBefore` hook is invoked synchronously, in the same call stack as [[StateService.transitionTo]].\n * The registered `onBefore` hooks are invoked in priority order.\n *\n * Note: during the `onBefore` phase, additional hooks can be added to the specific [[Transition]] instance.\n * These \"on-the-fly\" hooks only affect the currently running transition..\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * If any hook modifies the transition *synchronously* (by throwing, returning `false`, or returning\n * a [[TargetState]]), the remainder of the hooks are skipped.\n * If a hook returns a promise, the remainder of the `onBefore` hooks are still invoked synchronously.\n * All promises are resolved, and processed asynchronously before the `onStart` phase of the Transition.\n *\n * ### Examples\n *\n * #### Default Substate\n *\n * This example redirects any transition from 'home' to 'home.dashboard'. This is commonly referred to as a\n * \"default substate\".\n *\n * @example\n * ```js\n * // ng2\n * transitionService.onBefore({ to: 'home' }, (trans: Transition) =>\n * trans.router.stateService.target(\"home.dashboard\"));\n * ```\n *\n * #### Data Driven Default Substate\n *\n * This example provides data-driven default substate functionality. It matches on a transition to any state\n * which has `defaultSubstate: \"some.sub.state\"` defined. See: [[Transition.to]] which returns the \"to state\"\n * definition.\n *\n * @example\n * ```js\n * // ng1\n * // state declaration\n * {\n * name: 'home',\n * template: '
    ',\n * defaultSubstate: 'home.dashboard'\n * }\n *\n * var criteria = {\n * to: function(state) {\n * return state.defaultSubstate != null;\n * }\n * }\n *\n * $transitions.onBefore(criteria, function(trans: Transition) {\n * var substate = trans.to().defaultSubstate;\n * return trans.router.stateService.target(substate);\n * });\n * ```\n *\n *\n * #### Require authentication\n *\n * This example cancels a transition to a state which requires authentication, if the user is not currently authenticated.\n *\n * This example assumes a state tree where all states which require authentication are children of a parent `'requireauth'` state.\n * This example assumes `MyAuthService` synchronously returns a boolean from `isAuthenticated()`.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onBefore( { to: 'requireauth.**' }, function(trans) {\n * var myAuthService = trans.injector().get('MyAuthService');\n * // If isAuthenticated returns false, the transition is cancelled.\n * return myAuthService.isAuthenticated();\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @returns a function which deregisters the hook.\n */\n onBefore(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called when a transition starts.\n *\n * Registers a transition lifecycle hook, which is invoked as a transition starts running.\n * This hook can be useful to perform some asynchronous action before completing a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onStart` hooks are invoked asynchronously when the Transition starts running.\n * This happens after the `onBefore` phase is complete.\n * At this point, the Transition has not yet exited nor entered any states.\n * The registered `onStart` hooks are invoked in priority order.\n *\n * Note: A built-in `onStart` hook with high priority is used to fetch any eager resolve data.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Example\n *\n * #### Login during transition\n *\n * This example intercepts any transition to a state which requires authentication, when the user is\n * not currently authenticated. It allows the user to authenticate asynchronously, then resumes the\n * transition. If the user did not authenticate successfully, it redirects to the \"guest\" state, which\n * does not require authentication.\n *\n * This example assumes:\n * - a state tree where all states which require authentication are children of a parent `'auth'` state.\n * - `MyAuthService.isAuthenticated()` synchronously returns a boolean.\n * - `MyAuthService.authenticate()` presents a login dialog, and returns a promise which is resolved\n * or rejected, whether or not the login attempt was successful.\n *\n * #### Example:\n * ```js\n * // ng1\n * $transitions.onStart( { to: 'auth.**' }, function(trans) {\n * var $state = trans.router.stateService;\n * var MyAuthService = trans.injector().get('MyAuthService');\n *\n * // If the user is not authenticated\n * if (!MyAuthService.isAuthenticated()) {\n *\n * // Then return a promise for a successful login.\n * // The transition will wait for this promise to settle\n *\n * return MyAuthService.authenticate().catch(function() {\n *\n * // If the authenticate() method failed for whatever reason,\n * // redirect to a 'guest' state which doesn't require auth.\n * return $state.target(\"guest\");\n * });\n * }\n * });\n * ```\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onStart(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is entered.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being entered.\n *\n * Since this hook is run only when the specific state is being *entered*, it can be useful for\n * performing tasks when entering a submodule/feature area such as initializing a stateful service,\n * or for guarding access to a submodule/feature area.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onEnter` hooks generally specify `{ entering: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onEnter` hooks are invoked when the Transition is entering a state.\n * States are entered after the `onRetain` phase is complete.\n * If more than one state is being entered, the parent state is entered first.\n * The registered `onEnter` hooks for a state are invoked in priority order.\n *\n * Note: A built-in `onEnter` hook with high priority is used to fetch lazy resolve data for states being entered.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onEnter` hooks using the [[TransitionService]], you may define an `onEnter` hook\n * directly on a state declaration (see: [[StateDeclaration.onEnter]]).\n *\n *\n * ### Examples\n *\n * #### Audit Log\n *\n * This example uses a service to log that a user has entered the admin section of an app.\n * This assumes that there are substates of the \"admin\" state, such as \"admin.users\", \"admin.pages\", etc.\n * @example\n * ```\n *\n * $transitions.onEnter({ entering: 'admin' }, function(transition, state) {\n * var AuditService = trans.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * ```\n *\n * #### Audit Log (inside a state declaration)\n *\n * The `onEnter` inside this state declaration is syntactic sugar for the previous Audit Log example.\n * ```\n * {\n * name: 'admin',\n * component: 'admin',\n * onEnter: function($transition$, $state$) {\n * var AuditService = $transition$.injector().get('AuditService');\n * AuditService.log(\"Entered \" + state.name + \" module while transitioning to \" + transition.to().name);\n * }\n * }\n * ```\n *\n * Note: A state declaration's `onEnter` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onEnter(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is retained/kept.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) for\n * a specific state that was previously active will remain active (is not being entered nor exited).\n *\n * This hook is invoked when a state is \"retained\" or \"kept\".\n * It means the transition is coming *from* a substate of the retained state *to* a substate of the retained state.\n * This hook can be used to perform actions when the user moves from one substate to another, such as between steps in a wizard.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onRetain` hooks generally specify `{ retained: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onRetain` hooks are invoked after any `onExit` hooks have been fired.\n * If more than one state is retained, the child states' `onRetain` hooks are invoked first.\n * The registered `onRetain` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onRetain` hooks using the [[TransitionService]], you may define an `onRetain` hook\n * directly on a state declaration (see: [[StateDeclaration.onRetain]]).\n *\n * Note: A state declaration's `onRetain` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onRetain(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionStateHookFn]], called when a specific state is exited.\n *\n * Registers a lifecycle hook, which is invoked (during a transition) when a specific state is being exited.\n *\n * Since this hook is run only when the specific state is being *exited*, it can be useful for\n * performing tasks when leaving a submodule/feature area such as cleaning up a stateful service,\n * or for preventing the user from leaving a state or submodule until some criteria is satisfied.\n *\n * See [[TransitionStateHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * `onExit` hooks generally specify `{ exiting: 'somestate' }`.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onExit` hooks are invoked when the Transition is exiting a state.\n * States are exited after any `onStart` phase is complete.\n * If more than one state is being exited, the child states are exited first.\n * The registered `onExit` hooks for a state are invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * ### Inside a state declaration\n *\n * Instead of registering `onExit` hooks using the [[TransitionService]], you may define an `onExit` hook\n * directly on a state declaration (see: [[StateDeclaration.onExit]]).\n *\n * Note: A state declaration's `onExit` function is injected for Angular 1 only.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onExit(matchCriteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called *just before a transition finishes*.\n *\n * Registers a transition lifecycle hook, which is invoked just before a transition finishes.\n * This hook is a last chance to cancel or redirect a transition.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onFinish` hooks are invoked after the `onEnter` phase is complete.\n * These hooks are invoked just before the transition is \"committed\".\n * Each hook is invoked in priority order.\n *\n * ### Return value\n *\n * The hook's return value can be used to pause, cancel, or redirect the current Transition.\n * See [[HookResult]] for more information.\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onFinish(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a successful transition completed.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition successfully completes.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * `onSuccess` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If the Transition is successful and its promise is resolved, then the `onSuccess` hooks are invoked.\n * Since these hooks are run after the transition is over, their return value is ignored.\n * The `onSuccess` hooks are invoked in priority order.\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onSuccess(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Registers a [[TransitionHookFn]], called after a transition has errored.\n *\n * Registers a transition lifecycle hook, which is invoked after a transition has been rejected for any reason.\n *\n * See [[TransitionHookFn]] for the signature of the function.\n *\n * The [[HookMatchCriteria]] is used to determine which Transitions the hook should be invoked for.\n * To match all Transitions, use an empty criteria object `{}`.\n *\n * ### Lifecycle\n *\n * The `onError` hooks are chained off the Transition's promise (see [[Transition.promise]]).\n * If a Transition fails, its promise is rejected and the `onError` hooks are invoked.\n * The `onError` hooks are invoked in priority order.\n *\n * Since these hooks are run after the transition is over, their return value is ignored.\n *\n * A transition \"errors\" if it was started, but failed to complete (for any reason).\n * A *non-exhaustive list* of reasons a transition can error:\n *\n * - A transition was cancelled because a new transition started while it was still running (`Transition superseded`)\n * - A transition was cancelled by a Transition Hook returning false\n * - A transition was redirected by a Transition Hook returning a [[TargetState]]\n * - A Transition Hook or resolve function threw an error\n * - A Transition Hook returned a rejected promise\n * - A resolve function returned a rejected promise\n *\n * To check the failure reason, inspect the return value of [[Transition.error]].\n *\n * Note: `onError` should be used for targeted error handling, or error recovery.\n * For simple catch-all error reporting, use [[StateService.defaultErrorHandler]].\n *\n * ### Return value\n *\n * Since the Transition is already completed, the hook's return value is ignored\n *\n * @param matchCriteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be injected and invoked.\n * @returns a function which deregisters the hook.\n */\n onError(matchCriteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function;\n\n /**\n * Returns all the registered hooks of a given `hookName` type\n *\n * #### Example:\n * ```\n * $transitions.getHooks(\"onEnter\")\n * ```\n */\n getHooks(hookName: string): RegisteredHook[];\n\n /** @hidden place to store the hooks */\n _registeredHooks: { [key: string]: RegisteredHook[] };\n}\n\n/** A predicate type which tests if a [[StateObject]] passes some test. Returns a boolean. */\nexport type IStateMatch = Predicate;\n\n/**\n * This object is used to configure whether or not a Transition Hook is invoked for a particular transition,\n * based on the Transition's \"to state\" and \"from state\".\n *\n * Each property (`to`, `from`, `exiting`, `retained`, and `entering`) can be a state [[Glob]] string,\n * a boolean, or a function that takes a state and returns a boolean (see [[HookMatchCriterion]])\n *\n * All properties are optional. If any property is omitted, it is replaced with the value `true`, and always matches.\n * To match any transition, use an empty criteria object `{}`.\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from the `parent` state and going to the `parent.child` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.child'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any substate of `parent` and going directly to the `parent` state.\n * var match = {\n * to: 'parent',\n * from: 'parent.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any substate of `mymodule`\n * var match = {\n * to: 'mymodule.**'\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition coming from any state and going to any state that has `data.authRequired`\n * // set to a truthy value.\n * var match = {\n * to: function(state) {\n * return state.data != null && state.data.authRequired === true;\n * }\n * }\n * ```\n *\n * #### Example:\n * ```js\n * // This matches a transition that is exiting `parent.child`\n * var match = {\n * exiting: 'parent.child'\n * }\n * ```\n */\nexport interface HookMatchCriteria {\n [key: string]: HookMatchCriterion | undefined;\n\n /** A [[HookMatchCriterion]] to match the destination state */\n to?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match the original (from) state */\n from?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be exiting */\n exiting?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be retained */\n retained?: HookMatchCriterion;\n /** A [[HookMatchCriterion]] to match any state that would be entering */\n entering?: HookMatchCriterion;\n}\n\nexport interface IMatchingNodes {\n [key: string]: PathNode[];\n\n to: PathNode[];\n from: PathNode[];\n exiting: PathNode[];\n retained: PathNode[];\n entering: PathNode[];\n}\n\n/** @hidden */\nexport interface RegisteredHooks {\n [key: string]: RegisteredHook[];\n}\n\n/** @hidden */\nexport interface PathTypes {\n [key: string]: PathType;\n\n to: PathType;\n from: PathType;\n exiting: PathType;\n retained: PathType;\n entering: PathType;\n}\n\n/** @hidden */\nexport interface PathType {\n name: string;\n scope: TransitionHookScope;\n}\n\n/**\n * Hook Criterion used to match a transition.\n *\n * A [[Glob]] string that matches the name of a state.\n *\n * Or, a function with the signature `function(state) { return matches; }`\n * which should return a boolean to indicate if a state matches.\n *\n * Or, `true` to always match\n */\nexport type HookMatchCriterion = (string|IStateMatch|boolean)\n\nexport enum TransitionHookPhase { CREATE, BEFORE, RUN, SUCCESS, ERROR }\nexport enum TransitionHookScope { TRANSITION, STATE }\n", + "/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateDeclaration, StateOrName, TargetStateDef } from \"./interface\";\nimport { TransitionOptions } from \"../transition/interface\";\nimport { StateObject } from \"./stateObject\";\nimport { isString } from \"../common/predicates\";\nimport { stringify } from '../common/strings';\nimport { extend } from '../common';\nimport { StateRegistry } from './stateRegistry';\nimport { RawParams } from '../params';\n\n/**\n * Encapsulate the target (destination) state/params/options of a [[Transition]].\n *\n * This class is frequently used to redirect a transition to a new destination.\n *\n * See:\n *\n * - [[HookResult]]\n * - [[TransitionHookFn]]\n * - [[TransitionService.onStart]]\n *\n * To create a `TargetState`, use [[StateService.target]].\n *\n * ---\n *\n * This class wraps:\n *\n * 1) an identifier for a state\n * 2) a set of parameters\n * 3) and transition options\n * 4) the registered state object (the [[StateDeclaration]])\n *\n * Many UI-Router APIs such as [[StateService.go]] take a [[StateOrName]] argument which can\n * either be a *state object* (a [[StateDeclaration]] or [[StateObject]]) or a *state name* (a string).\n * The `TargetState` class normalizes those options.\n *\n * A `TargetState` may be valid (the state being targeted exists in the registry)\n * or invalid (the state being targeted is not registered).\n */\nexport class TargetState {\n private _definition: StateObject;\n private _params: RawParams;\n private _options: TransitionOptions;\n\n /**\n * The TargetState constructor\n *\n * Note: Do not construct a `TargetState` manually.\n * To create a `TargetState`, use the [[StateService.target]] factory method.\n *\n * @param _stateRegistry The StateRegistry to use to look up the _definition\n * @param _identifier An identifier for a state.\n * Either a fully-qualified state name, or the object used to define the state.\n * @param _params Parameters for the target state\n * @param _options Transition options.\n *\n * @internalapi\n */\n constructor(\n private _stateRegistry: StateRegistry,\n private _identifier: StateOrName,\n _params?: RawParams,\n _options?: TransitionOptions,\n ) {\n this._identifier = _identifier;\n this._params = extend({}, _params || {});\n this._options = extend({}, _options || {});\n this._definition = _stateRegistry.matcher.find(_identifier, this._options.relative);\n }\n\n /** The name of the state this object targets */\n name(): string {\n return this._definition && this._definition.name || this._identifier;\n }\n\n /** The identifier used when creating this TargetState */\n identifier(): StateOrName {\n return this._identifier;\n }\n\n /** The target parameter values */\n params(): RawParams {\n return this._params;\n }\n\n /** The internal state object (if it was found) */\n $state(): StateObject {\n return this._definition;\n }\n\n /** The internal state declaration (if it was found) */\n state(): StateDeclaration {\n return this._definition && this._definition.self;\n }\n\n /** The target options */\n options() {\n return this._options;\n }\n\n /** True if the target state was found */\n exists(): boolean {\n return !!(this._definition && this._definition.self);\n }\n\n /** True if the object is valid */\n valid(): boolean {\n return !this.error();\n }\n\n /** If the object is invalid, returns the reason why */\n error(): string {\n let base = this.options().relative;\n if (!this._definition && !!base) {\n let stateName = base.name ? base.name : base;\n return `Could not resolve '${this.name()}' from state '${stateName}'`;\n }\n if (!this._definition)\n return `No such state '${this.name()}'`;\n if (!this._definition.self)\n return `State '${this.name()}' has an invalid definition`;\n }\n\n toString() {\n return `'${this.name()}'${stringify(this.params())}`;\n }\n\n /** Returns true if the object has a state property that might be a state or state name */\n static isDef = (obj): obj is TargetStateDef =>\n obj && obj.state && (isString(obj.state) || isString(obj.state.name));\n\n /**\n * Returns a copy of this TargetState which targets a different state.\n * The new TargetState has the same parameter values and transition options.\n *\n * @param state The new state that should be targeted\n */\n withState(state: StateOrName): TargetState {\n return new TargetState(this._stateRegistry, state, this._params, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified parameter values.\n *\n * @param params the new parameter values to use\n * @param replace When false (default) the new parameter values will be merged with the current values.\n * When true the parameter values will be used instead of the current values.\n */\n withParams(params: RawParams, replace = false): TargetState {\n const newParams: RawParams = replace ? params : extend({}, this._params, params);\n return new TargetState(this._stateRegistry, this._identifier, newParams, this._options);\n }\n\n /**\n * Returns a copy of this TargetState, using the specified Transition Options.\n *\n * @param options the new options to use\n * @param replace When false (default) the new options will be merged with the current options.\n * When true the options will be used instead of the current options.\n */\n withOptions(options: TransitionOptions, replace = false): TargetState {\n const newOpts = replace ? options : extend({}, this._options, options);\n return new TargetState(this._stateRegistry, this._identifier, this._params, newOpts);\n }\n}\n", + "/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { TransitionHookOptions, HookResult, TransitionHookPhase } from './interface';\nimport { defaults, noop, silentRejection } from '../common/common';\nimport { fnToString, maxLength } from '../common/strings';\nimport { isPromise } from '../common/predicates';\nimport { is, parse } from '../common/hof';\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { Rejection } from './rejectFactory';\nimport { TargetState } from '../state/targetState';\nimport { Transition } from './transition';\nimport { TransitionEventType } from './transitionEventType';\nimport { RegisteredHook } from './hookRegistry';\nimport { StateDeclaration } from '../state/interface';\n\nlet defaultOptions: TransitionHookOptions = {\n current: noop,\n transition: null,\n traceData: {},\n bind: null,\n};\n\nexport type GetResultHandler = (hook: TransitionHook) => ResultHandler;\nexport type GetErrorHandler = (hook: TransitionHook) => ErrorHandler;\n\nexport type ResultHandler = (result: HookResult) => Promise;\nexport type ErrorHandler = (error: any) => Promise;\n\n/** @hidden */\nexport class TransitionHook {\n type: TransitionEventType;\n constructor(private transition: Transition,\n private stateContext: StateDeclaration,\n private registeredHook: RegisteredHook,\n private options: TransitionHookOptions) {\n this.options = defaults(options, defaultOptions);\n this.type = registeredHook.eventType;\n }\n\n /**\n * These GetResultHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetResultHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static HANDLE_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) =>\n hook.handleHookResult(result);\n\n /**\n * If the result is a promise rejection, log it.\n * Otherwise, ignore the result.\n */\n static LOG_REJECTED_RESULT: GetResultHandler = (hook: TransitionHook) => (result: HookResult) => {\n isPromise(result) && result.catch(err =>\n hook.logError(Rejection.normalize(err)));\n return undefined;\n }\n\n /**\n * These GetErrorHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetErrorHandler (See: [[TransitionService._defineCoreEvents]])\n */\n static LOG_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n hook.logError(error);\n\n static REJECT_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) =>\n silentRejection(error);\n\n static THROW_ERROR: GetErrorHandler = (hook: TransitionHook) => (error: any) => {\n throw error;\n }\n\n private isSuperseded = () =>\n this.type.hookPhase === TransitionHookPhase.RUN && !this.options.transition.isActive();\n\n logError(err): any {\n this.transition.router.stateService.defaultErrorHandler()(err);\n }\n\n invokeHook(): Promise | void {\n let hook = this.registeredHook;\n if (hook._deregistered) return;\n\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n let options = this.options;\n trace.traceHookInvocation(this, this.transition, options);\n\n const invokeCallback = () =>\n hook.callback.call(options.bind, this.transition, this.stateContext);\n\n const normalizeErr = err =>\n Rejection.normalize(err).toPromise();\n\n const handleError = err =>\n hook.eventType.getErrorHandler(this)(err);\n\n const handleResult = result =>\n hook.eventType.getResultHandler(this)(result);\n\n try {\n let result = invokeCallback();\n\n if (!this.type.synchronous && isPromise(result)) {\n return result.catch(normalizeErr)\n .then(handleResult, handleError);\n } else {\n return handleResult(result);\n }\n } catch (err) {\n // If callback throws (synchronously)\n return handleError(Rejection.normalize(err));\n } finally {\n if (hook.invokeLimit && ++hook.invokeCount >= hook.invokeLimit) {\n hook.deregister();\n }\n }\n }\n\n /**\n * This method handles the return value of a Transition Hook.\n *\n * A hook can return false (cancel), a TargetState (redirect),\n * or a promise (which may later resolve to false or a redirect)\n *\n * This also handles \"transition superseded\" -- when a new transition\n * was started while the hook was still running\n */\n handleHookResult(result: HookResult): Promise {\n let notCurrent = this.getNotCurrentRejection();\n if (notCurrent) return notCurrent;\n\n // Hook returned a promise\n if (isPromise(result)) {\n // Wait for the promise, then reprocess with the resulting value\n return result.then(val => this.handleHookResult(val));\n }\n\n trace.traceHookResult(result, this.transition, this.options);\n\n // Hook returned false\n if (result === false) {\n // Abort this Transition\n return Rejection.aborted(\"Hook aborted transition\").toPromise();\n }\n\n const isTargetState = is(TargetState);\n // hook returned a TargetState\n if (isTargetState(result)) {\n // Halt the current Transition and redirect (a new Transition) to the TargetState.\n return Rejection.redirected(result).toPromise();\n }\n }\n\n\n /**\n * Return a Rejection promise if the transition is no longer current due\n * to a stopped router (disposed), or a new transition has started and superseded this one.\n */\n private getNotCurrentRejection() {\n let router = this.transition.router;\n\n // The router is stopped\n if (router._disposed) {\n return Rejection.aborted(`UIRouter instance #${router.$id} has been stopped (disposed)`).toPromise();\n }\n\n if (this.transition._aborted) {\n return Rejection.aborted().toPromise();\n }\n\n // This transition is no longer current.\n // Another transition started while this hook was still running.\n if (this.isSuperseded()) {\n // Abort this transition\n return Rejection.superseded(this.options.current()).toPromise();\n }\n }\n\n toString() {\n let { options, registeredHook } = this;\n let event = parse(\"traceData.hookType\")(options) || \"internal\",\n context = parse(\"traceData.context.state.name\")(options) || parse(\"traceData.context\")(options) || \"unknown\",\n name = fnToString(registeredHook.callback);\n return `${event} context: ${context}, ${maxLength(200, name)}`;\n }\n\n /**\n * Chains together an array of TransitionHooks.\n *\n * Given a list of [[TransitionHook]] objects, chains them together.\n * Each hook is invoked after the previous one completes.\n *\n * #### Example:\n * ```js\n * var hooks: TransitionHook[] = getHooks();\n * let promise: Promise = TransitionHook.chain(hooks);\n *\n * promise.then(handleSuccess, handleError);\n * ```\n *\n * @param hooks the list of hooks to chain together\n * @param waitFor if provided, the chain is `.then()`'ed off this promise\n * @returns a `Promise` for sequentially invoking the hooks (in order)\n */\n static chain(hooks: TransitionHook[], waitFor?: Promise): Promise {\n // Chain the next hook off the previous\n const createHookChainR = (prev: Promise, nextHook: TransitionHook) =>\n prev.then(() => nextHook.invokeHook());\n return hooks.reduce(createHookChainR, waitFor || services.$q.when());\n }\n\n\n /**\n * Invokes all the provided TransitionHooks, in order.\n * Each hook's return value is checked.\n * If any hook returns a promise, then the rest of the hooks are chained off that promise, and the promise is returned.\n * If no hook returns a promise, then all hooks are processed synchronously.\n *\n * @param hooks the list of TransitionHooks to invoke\n * @param doneCallback a callback that is invoked after all the hooks have successfully completed\n *\n * @returns a promise for the async result, or the result of the callback\n */\n static invokeHooks(hooks: TransitionHook[], doneCallback: (result?: HookResult) => T): Promise | T {\n for (let idx = 0; idx < hooks.length; idx++) {\n let hookResult = hooks[idx].invokeHook();\n\n if (isPromise(hookResult)) {\n let remainingHooks = hooks.slice(idx + 1);\n\n return TransitionHook.chain(remainingHooks, hookResult)\n .then(doneCallback);\n }\n }\n\n return doneCallback();\n }\n\n /**\n * Run all TransitionHooks, ignoring their return value.\n */\n static runAllHooks(hooks: TransitionHook[]): void {\n hooks.forEach(hook => hook.invokeHook());\n }\n\n}\n", + "/** @module path */ /** for typedoc */\nimport {extend, applyPairs, find, allTrueR, pairs, arrayTuples} from \"../common/common\";\nimport {propEq} from \"../common/hof\";\nimport {StateObject} from \"../state/stateObject\";\nimport {RawParams} from \"../params/interface\";\nimport {Param} from \"../params/param\";\nimport {Resolvable} from \"../resolve/resolvable\";\nimport {ViewConfig} from \"../view/interface\";\n\n/**\n * @internalapi\n *\n * A node in a [[TreeChanges]] path\n *\n * For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.\n * Each PathNode corresponds to a state being entered, exited, or retained.\n * The stateful information includes parameter values and resolve data.\n */\nexport class PathNode {\n /** The state being entered, exited, or retained */\n public state: StateObject;\n /** The parameters declared on the state */\n public paramSchema: Param[];\n /** The parameter values that belong to the state */\n public paramValues: { [key: string]: any };\n /** The individual (stateful) resolvable objects that belong to the state */\n public resolvables: Resolvable[];\n /** The state's declared view configuration objects */\n public views: ViewConfig[];\n\n /** Creates a copy of a PathNode */\n constructor(node: PathNode);\n /** Creates a new (empty) PathNode for a State */\n constructor(state: StateObject);\n constructor(stateOrNode: any) {\n if (stateOrNode instanceof PathNode) {\n let node: PathNode = stateOrNode;\n this.state = node.state;\n this.paramSchema = node.paramSchema.slice();\n this.paramValues = extend({}, node.paramValues);\n this.resolvables = node.resolvables.slice();\n this.views = node.views && node.views.slice();\n } else {\n let state: StateObject = stateOrNode;\n this.state = state;\n this.paramSchema = state.parameters({ inherit: false });\n this.paramValues = {};\n this.resolvables = state.resolvables.map(res => res.clone());\n }\n }\n\n /** Sets [[paramValues]] for the node, from the values of an object hash */\n applyRawParams(params: RawParams): PathNode {\n const getParamVal = (paramDef: Param) => [ paramDef.id, paramDef.value(params[paramDef.id]) ];\n this.paramValues = this.paramSchema.reduce((memo, pDef) => applyPairs(memo, getParamVal(pDef)), {});\n return this;\n }\n\n /** Gets a specific [[Param]] metadata that belongs to the node */\n parameter(name: string): Param {\n return find(this.paramSchema, propEq(\"id\", name));\n }\n\n /**\n * @returns true if the state and parameter values for another PathNode are\n * equal to the state and param values for this PathNode\n */\n equals(node: PathNode, paramsFn?: GetParamsFn): boolean {\n const diff = this.diff(node, paramsFn);\n return diff && diff.length === 0;\n }\n\n /**\n * Finds Params with different parameter values on another PathNode.\n *\n * Given another node (of the same state), finds the parameter values which differ.\n * Returns the [[Param]] (schema objects) whose parameter values differ.\n *\n * Given another node for a different state, returns `false`\n *\n * @param node The node to compare to\n * @param paramsFn A function that returns which parameters should be compared.\n * @returns The [[Param]]s which differ, or null if the two nodes are for different states\n */\n diff(node: PathNode, paramsFn?: GetParamsFn): Param[] | false {\n if (this.state !== node.state) return false;\n\n const params: Param[] = paramsFn ? paramsFn(this) : this.paramSchema;\n return Param.changed(params, this.paramValues, node.paramValues);\n }\n\n /** Returns a clone of the PathNode */\n static clone(node: PathNode) {\n return new PathNode(node);\n }\n}\n\n/** @hidden */\nexport type GetParamsFn = (pathNode: PathNode) => Param[];", + "/** @module path */ /** for typedoc */\n\nimport {\n extend, find, pick, omit, tail, mergeR, values, unnestR, Predicate, inArray, arrayTuples,\n} from \"../common/common\";\nimport {prop, propEq, not} from \"../common/hof\";\n\nimport {RawParams} from \"../params/interface\";\nimport {TreeChanges} from \"../transition/interface\";\nimport {ViewConfig} from \"../view/interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nimport {StateObject} from \"../state/stateObject\";\nimport {TargetState} from \"../state/targetState\";\nimport {GetParamsFn, PathNode} from \"./pathNode\";\nimport {ViewService} from \"../view/view\";\nimport { Param } from '../params/param';\nimport { StateRegistry } from '../state';\n\n/**\n * This class contains functions which convert TargetStates, Nodes and paths from one type to another.\n */\nexport class PathUtils {\n\n constructor() { }\n\n /** Given a PathNode[], create an TargetState */\n static makeTargetState(registry: StateRegistry, path: PathNode[]): TargetState {\n let state = tail(path).state;\n return new TargetState(registry, state, path.map(prop(\"paramValues\")).reduce(mergeR, {}), {});\n }\n\n static buildPath(targetState: TargetState) {\n let toParams = targetState.params();\n return targetState.$state().path.map(state => new PathNode(state).applyRawParams(toParams));\n }\n\n /** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */\n static buildToPath(fromPath: PathNode[], targetState: TargetState): PathNode[] {\n let toPath: PathNode[] = PathUtils.buildPath(targetState);\n if (targetState.options().inherit) {\n return PathUtils.inheritParams(fromPath, toPath, Object.keys(targetState.params()));\n }\n return toPath;\n }\n\n /**\n * Creates ViewConfig objects and adds to nodes.\n *\n * On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state\n */\n static applyViewConfigs($view: ViewService, path: PathNode[], states: StateObject[]) {\n // Only apply the viewConfigs to the nodes for the given states\n path.filter(node => inArray(states, node.state)).forEach(node => {\n let viewDecls: _ViewDeclaration[] = values(node.state.views || {});\n let subPath = PathUtils.subPath(path, n => n === node);\n let viewConfigs: ViewConfig[][] = viewDecls.map(view => $view.createViewConfig(subPath, view));\n node.views = viewConfigs.reduce(unnestR, []);\n });\n }\n\n /**\n * Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath\n *\n * For a parameter in a node to be inherited from the from path:\n * - The toPath's node must have a matching node in the fromPath (by state).\n * - The parameter name must not be found in the toKeys parameter array.\n *\n * Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some\n * caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,\n * it is not inherited from the fromPath.\n */\n static inheritParams(fromPath: PathNode[], toPath: PathNode[], toKeys: string[] = []): PathNode[] {\n function nodeParamVals(path: PathNode[], state: StateObject): RawParams {\n let node: PathNode = find(path, propEq('state', state));\n return extend({}, node && node.paramValues);\n }\n\n let noInherit = fromPath.map(node => node.paramSchema)\n .reduce(unnestR, [])\n .filter(param => !param.inherit)\n .map(prop('id'));\n\n /**\n * Given an [[PathNode]] \"toNode\", return a new [[PathNode]] with param values inherited from the\n * matching node in fromPath. Only inherit keys that aren't found in \"toKeys\" from the node in \"fromPath\"\"\n */\n function makeInheritedParamsNode(toNode: PathNode): PathNode {\n // All param values for the node (may include default key/vals, when key was not found in toParams)\n let toParamVals = extend({}, toNode && toNode.paramValues);\n // limited to only those keys found in toParams\n let incomingParamVals = pick(toParamVals, toKeys);\n toParamVals = omit(toParamVals, toKeys);\n let fromParamVals = omit(nodeParamVals(fromPath, toNode.state) || {}, noInherit);\n // extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals\n let ownParamVals: RawParams = extend(toParamVals, fromParamVals, incomingParamVals);\n return new PathNode(toNode.state).applyRawParams(ownParamVals);\n }\n\n // The param keys specified by the incoming toParams\n return toPath.map(makeInheritedParamsNode);\n }\n\n static nonDynamicParams = (node: PathNode): Param[] =>\n node.state.parameters({ inherit: false })\n .filter(param => !param.dynamic);\n\n /**\n * Computes the tree changes (entering, exiting) between a fromPath and toPath.\n */\n static treeChanges(fromPath: PathNode[], toPath: PathNode[], reloadState: StateObject): TreeChanges {\n let keep = 0, max = Math.min(fromPath.length, toPath.length);\n\n const nodesMatch = (node1: PathNode, node2: PathNode) =>\n node1.equals(node2, PathUtils.nonDynamicParams);\n\n while (keep < max && fromPath[keep].state !== reloadState && nodesMatch(fromPath[keep], toPath[keep])) {\n keep++;\n }\n\n /** Given a retained node, return a new node which uses the to node's param values */\n function applyToParams(retainedNode: PathNode, idx: number): PathNode {\n let cloned = PathNode.clone(retainedNode);\n cloned.paramValues = toPath[idx].paramValues;\n return cloned;\n }\n\n let from: PathNode[], retained: PathNode[], exiting: PathNode[], entering: PathNode[], to: PathNode[];\n\n from = fromPath;\n retained = from.slice(0, keep);\n exiting = from.slice(keep);\n\n // Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped\n let retainedWithToParams = retained.map(applyToParams);\n entering = toPath.slice(keep);\n to = (retainedWithToParams).concat(entering);\n\n return { from, to, retained, exiting, entering };\n }\n\n /**\n * Returns a new path which is: the subpath of the first path which matches the second path.\n *\n * The new path starts from root and contains any nodes that match the nodes in the second path.\n * It stops before the first non-matching node.\n *\n * Nodes are compared using their state property and their parameter values.\n * If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.\n *\n * @param pathA the first path\n * @param pathB the second path\n * @param paramsFn a function which returns the parameters to consider when comparing\n *\n * @returns an array of PathNodes from the first path which match the nodes in the second path\n */\n static matching(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): PathNode[] {\n let done = false;\n let tuples: PathNode[][] = arrayTuples(pathA, pathB);\n return tuples.reduce((matching, [nodeA, nodeB]) => {\n done = done || !nodeA.equals(nodeB, paramsFn);\n return done ? matching : matching.concat(nodeA);\n }, []);\n }\n\n /**\n * Returns true if two paths are identical.\n *\n * @param pathA\n * @param pathB\n * @param paramsFn a function which returns the parameters to consider when comparing\n * @returns true if the the states and parameter values for both paths are identical\n */\n static equals(pathA: PathNode[], pathB: PathNode[], paramsFn?: GetParamsFn): boolean {\n return pathA.length === pathB.length &&\n PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length;\n }\n\n /**\n * Return a subpath of a path, which stops at the first matching node\n *\n * Given an array of nodes, returns a subset of the array starting from the first node,\n * stopping when the first node matches the predicate.\n *\n * @param path a path of [[PathNode]]s\n * @param predicate a [[Predicate]] fn that matches [[PathNode]]s\n * @returns a subpath up to the matching node, or undefined if no match is found\n */\n static subPath(path: PathNode[], predicate: Predicate): PathNode[] {\n let node = find(path, predicate);\n let elementIdx = path.indexOf(node);\n return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);\n }\n\n /** Gets the raw parameter values from a path */\n static paramValues = (path: PathNode[]) =>\n path.reduce((acc, node) => extend(acc, node.paramValues), {});\n}\n", + "/**\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {extend, equals, inArray, identity} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {trace} from \"../common/trace\";\nimport {ResolvePolicy, ResolvableLiteral, resolvePolicies} from \"./interface\";\n\nimport {ResolveContext} from \"./resolveContext\";\nimport {stringify} from \"../common/strings\";\nimport {isFunction, isObject} from \"../common/predicates\";\nimport {Transition} from \"../transition/transition\";\nimport {StateObject} from \"../state/stateObject\";\nimport {PathNode} from \"../path/pathNode\";\nimport { isNullOrUndefined } from '../common';\n\n\n// TODO: explicitly make this user configurable\nexport let defaultResolvePolicy: ResolvePolicy = {\n when: \"LAZY\",\n async: \"WAIT\"\n};\n\n/**\n * The basic building block for the resolve system.\n *\n * Resolvables encapsulate a state's resolve's resolveFn, the resolveFn's declared dependencies, the wrapped (.promise),\n * and the unwrapped-when-complete (.data) result of the resolveFn.\n *\n * Resolvable.get() either retrieves the Resolvable's existing promise, or else invokes resolve() (which invokes the\n * resolveFn) and returns the resulting promise.\n *\n * Resolvable.get() and Resolvable.resolve() both execute within a context path, which is passed as the first\n * parameter to those fns.\n */\nexport class Resolvable implements ResolvableLiteral {\n token: any;\n policy: ResolvePolicy;\n resolveFn: Function;\n deps: any[];\n\n data: any;\n resolved: boolean = false;\n promise: Promise = undefined;\n\n /** This constructor creates a Resolvable copy */\n constructor(resolvable: Resolvable)\n\n /** This constructor creates a new Resolvable from the plain old [[ResolvableLiteral]] javascript object */\n constructor(resolvable: ResolvableLiteral)\n\n /**\n * This constructor creates a new `Resolvable`\n *\n * #### Example:\n * ```js\n * var resolvable1 = new Resolvable('mytoken', http => http.get('foo.json').toPromise(), [Http]);\n *\n * var resolvable2 = new Resolvable(UserService, dep => new UserService(dep.data), [SomeDependency]);\n *\n * var resolvable1Clone = new Resolvable(resolvable1);\n * ```\n *\n * @param token The new resolvable's injection token, such as `\"userList\"` (a string) or `UserService` (a class).\n * When this token is used during injection, the resolved value will be injected.\n * @param resolveFn The function that returns the resolved value, or a promise for the resolved value\n * @param deps An array of dependencies, which will be injected into the `resolveFn`\n * @param policy the [[ResolvePolicy]] defines when and how the Resolvable is processed\n * @param data Pre-resolved data. If the resolve value is already known, it may be provided here.\n */\n constructor(token: any, resolveFn: Function, deps?: any[], policy?: ResolvePolicy, data?: any)\n constructor(arg1: any, resolveFn?: Function, deps?: any[], policy?: ResolvePolicy, data?: any) {\n if (arg1 instanceof Resolvable) {\n extend(this, arg1);\n } else if (isFunction(resolveFn)) {\n if (isNullOrUndefined(arg1)) throw new Error(\"new Resolvable(): token argument is required\");\n if (!isFunction(resolveFn)) throw new Error(\"new Resolvable(): resolveFn argument must be a function\");\n\n this.token = arg1;\n this.policy = policy;\n this.resolveFn = resolveFn;\n this.deps = deps || [];\n\n this.data = data;\n this.resolved = data !== undefined;\n this.promise = this.resolved ? services.$q.when(this.data) : undefined;\n } else if (isObject(arg1) && arg1.token && isFunction(arg1.resolveFn)) {\n let literal = arg1;\n return new Resolvable(literal.token, literal.resolveFn, literal.deps, literal.policy, literal.data);\n }\n }\n\n getPolicy(state: StateObject): ResolvePolicy {\n let thisPolicy = this.policy || {};\n let statePolicy = state && state.resolvePolicy || {};\n return {\n when: thisPolicy.when || statePolicy.when || defaultResolvePolicy.when,\n async: thisPolicy.async || statePolicy.async || defaultResolvePolicy.async,\n };\n }\n\n /**\n * Asynchronously resolve this Resolvable's data\n *\n * Given a ResolveContext that this Resolvable is found in:\n * Wait for this Resolvable's dependencies, then invoke this Resolvable's function\n * and update the Resolvable's state\n */\n resolve(resolveContext: ResolveContext, trans?: Transition) {\n let $q = services.$q;\n\n // Gets all dependencies from ResolveContext and wait for them to be resolved\n const getResolvableDependencies = () =>\n $q.all(resolveContext.getDependencies(this).map(resolvable =>\n resolvable.get(resolveContext, trans))) as Promise;\n\n // Invokes the resolve function passing the resolved dependencies as arguments\n const invokeResolveFn = (resolvedDeps: any[]) =>\n this.resolveFn.apply(null, resolvedDeps);\n\n /**\n * For RXWAIT policy:\n *\n * Given an observable returned from a resolve function:\n * - enables .cache() mode (this allows multicast subscribers)\n * - then calls toPromise() (this triggers subscribe() and thus fetches)\n * - Waits for the promise, then return the cached observable (not the first emitted value).\n */\n const waitForRx = (observable$: any) => {\n let cached = observable$.cache(1);\n return cached.take(1).toPromise().then(() => cached);\n };\n\n // If the resolve policy is RXWAIT, wait for the observable to emit something. otherwise pass through.\n let node: PathNode = resolveContext.findNode(this);\n let state: StateObject = node && node.state;\n let maybeWaitForRx = this.getPolicy(state).async === \"RXWAIT\" ? waitForRx : identity;\n\n // After the final value has been resolved, update the state of the Resolvable\n const applyResolvedValue = (resolvedValue: any) => {\n this.data = resolvedValue;\n this.resolved = true;\n trace.traceResolvableResolved(this, trans);\n return this.data;\n };\n\n // Sets the promise property first, then getsResolvableDependencies in the context of the promise chain. Always waits one tick.\n return this.promise = $q.when()\n .then(getResolvableDependencies)\n .then(invokeResolveFn)\n .then(maybeWaitForRx)\n .then(applyResolvedValue);\n }\n\n /**\n * Gets a promise for this Resolvable's data.\n *\n * Fetches the data and returns a promise.\n * Returns the existing promise if it has already been fetched once.\n */\n get(resolveContext: ResolveContext, trans?: Transition): Promise {\n return this.promise || this.resolve(resolveContext, trans);\n }\n\n toString() {\n return `Resolvable(token: ${stringify(this.token)}, requires: [${this.deps.map(stringify)}])`;\n }\n\n clone(): Resolvable {\n return new Resolvable(this);\n }\n \n static fromData = (token: any, data: any) => \n new Resolvable(token, () => data, null, null, data);\n}\n", + "/**\n * # The Resolve subsystem\n *\n * This subsystem is an asynchronous, hierarchical Dependency Injection system.\n *\n * Typically, resolve is configured on a state using a [[StateDeclaration.resolve]] declaration.\n *\n * @coreapi\n * @module resolve\n */ /** for typedoc */\nimport {Resolvable} from \"./resolvable\";\n\n/**\n * An interface which is similar to an Angular 2 `Provider`\n */\nexport interface ProviderLike {\n provide: any,\n useClass?: any,\n useFactory?: Function,\n useValue?: any,\n useExisting?: any,\n deps?: any[]\n}\n\n/**\n * A plain object used to describe a [[Resolvable]]\n *\n * These objects may be used in the [[StateDeclaration.resolve]] array to declare\n * async data that the state or substates require.\n *\n * #### Example:\n * ```js\n *\n * var state = {\n * name: 'main',\n * resolve: [\n * { token: 'myData', deps: [MyDataApi], resolveFn: (myDataApi) => myDataApi.getData() },\n * ],\n * }\n * ```\n */\nexport interface ResolvableLiteral {\n /**\n * A Dependency Injection token\n *\n * This Resolvable's DI token.\n * The Resolvable will be injectable elsewhere using the token.\n */\n token: any;\n\n /**\n * A function which fetches the Resolvable's data\n *\n * A function which returns one of:\n *\n * - The resolved value (synchronously)\n * - A promise for the resolved value\n * - An Observable of the resolved value(s)\n *\n * This function will be provided the dependencies listed in [[deps]] as its arguments.\n * The resolve system will asynchronously fetch the dependencies before invoking this function.\n */\n resolveFn: Function;\n\n /**\n * Defines the Resolve Policy\n *\n * A policy that defines when to invoke the resolve,\n * and whether to wait for async and unwrap the data\n */\n policy?: ResolvePolicy;\n\n /**\n * The Dependency Injection tokens\n *\n * This is an array of Dependency Injection tokens for the dependencies of the [[resolveFn]].\n *\n * The DI tokens are references to other `Resolvables`, or to other\n * services from the native DI system.\n */\n deps?: any[];\n\n /** Pre-resolved data. */\n data?: any\n}\n\n/**\n * Defines how a resolve is processed during a transition\n *\n * This object is the [[StateDeclaration.resolvePolicy]] property.\n *\n * #### Example:\n * ```js\n * // Fetched when the resolve's state is being entered.\n * // Wait for the promise to resolve.\n * var policy1 = { when: \"LAZY\", async: \"WAIT\" }\n *\n * // Fetched when the Transition is starting.\n * // Do not wait for the returned promise to resolve.\n * // Inject the raw promise/value\n * var policy2 = { when: \"EAGER\", async: \"NOWAIT\" }\n * ```\n *\n * The policy for a given Resolvable is merged from three sources (highest priority first):\n *\n * - 1) Individual resolve definition\n * - 2) State definition\n * - 3) Global default\n *\n * #### Example:\n * ```js\n * // Wait for an Observable to emit one item.\n * // Since `wait` is not specified, it uses the `wait`\n * // policy defined on the state, or the global default\n * // if no `wait` policy is defined on the state\n * var myResolvablePolicy = { async: \"RXWAIT\" }\n * ```\n */\nexport interface ResolvePolicy {\n /**\n * Defines when a Resolvable is resolved (fetched) during a transition\n *\n * - `LAZY` (default)\n * - Resolved as the resolve's state is being entered\n * - `EAGER`\n * - Resolved as the transition is starting\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched when each state is entered.\n * All of `main` resolves are processed before fetching `main.home` resolves.\n * ```js\n * var state = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n *\n * var state = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'LAZY' }, // default\n * }\n * ```\n *\n * #### Example:\n * Resolves for `main` and `main.home` are fetched at the same time when the transition starts.\n * This happens earlier in the lifecycle than when states are entered.\n * All of the `main` and `main.home` resolves are fetched as soon as possible.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n *\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { when: 'EAGER' },\n * }\n * ```\n */\n when?: PolicyWhen;\n\n /**\n * Determines the unwrapping behavior of asynchronous resolve values.\n *\n * - `WAIT` (default)\n * - If a promise is returned from the resolveFn, wait for the promise before proceeding\n * - The unwrapped value from the promise\n * - `NOWAIT`\n * - If a promise is returned from the resolve, do not wait for the promise.\n * - Any other value returned is wrapped in a promise.\n * - The promise will not be unwrapped.\n * - The promise itself will be provided when the resolve is injected or bound elsewhere.\n * - `RXWAIT`\n * - When an Observable is returned from the resolveFn, wait until the Observable emits at least one item.\n * - The Observable item will not be unwrapped.\n * - The Observable stream itself will be provided when the resolve is injected or bound elsewhere.\n *\n * #### Example:\n * The `Transition` will not wait for the resolve promise(s) from `main` to settle before continuing.\n * Resolves for `main` will be provided to components wrapped in a `Promise`.\n *\n * The `Transition` will wait for the `main.home` resolve promises.\n * Resolved values will be unwrapped before being provided to components.\n * ```js\n * var mainState = {\n * name: 'main',\n * resolve: mainResolves, // defined elsewhere\n * resolvePolicy: { async: 'NOWAIT' },\n * }\n * var homeState = {\n * name: 'main.home',\n * resolve: homeResolves, // defined elsewhere\n * resolvePolicy: { async: 'WAIT' }, // default\n * }\n * ```\n */\n async?: PolicyAsync;\n}\n\nexport type PolicyWhen = \"LAZY\" | \"EAGER\" ;\nexport type PolicyAsync = \"WAIT\" | \"NOWAIT\" | \"RXWAIT\" ;\n\n/** @internalapi */\nexport let resolvePolicies = {\n when: {\n LAZY: \"LAZY\",\n EAGER: \"EAGER\"\n },\n async: {\n WAIT: \"WAIT\",\n NOWAIT: \"NOWAIT\",\n RXWAIT: \"RXWAIT\"\n }\n};\n", + "/** @module resolve */\n/** for typedoc */\nimport { find, tail, uniqR, unnestR, inArray } from \"../common/common\";\nimport { propEq, not } from \"../common/hof\";\nimport { trace } from \"../common/trace\";\nimport { services, $InjectorLike } from \"../common/coreservices\";\nimport { resolvePolicies, PolicyWhen, ResolvePolicy } from \"./interface\";\nimport { PathNode } from \"../path/pathNode\";\nimport { Resolvable } from \"./resolvable\";\nimport { StateObject } from \"../state/stateObject\";\nimport { PathUtils } from \"../path/pathFactory\";\nimport { stringify } from \"../common/strings\";\nimport { Transition } from \"../transition/transition\";\nimport { UIInjector } from \"../interface\";\nimport { isUndefined } from '../common';\n\nconst whens = resolvePolicies.when;\nconst ALL_WHENS = [whens.EAGER, whens.LAZY];\nconst EAGER_WHENS = [whens.EAGER];\n\nexport const NATIVE_INJECTOR_TOKEN: string = \"Native Injector\";\n\n/**\n * Encapsulates Dependency Injection for a path of nodes\n *\n * UI-Router states are organized as a tree.\n * A nested state has a path of ancestors to the root of the tree.\n * When a state is being activated, each element in the path is wrapped as a [[PathNode]].\n * A `PathNode` is a stateful object that holds things like parameters and resolvables for the state being activated.\n *\n * The ResolveContext closes over the [[PathNode]]s, and provides DI for the last node in the path.\n */\nexport class ResolveContext {\n _injector: UIInjector;\n\n constructor(private _path: PathNode[]) { }\n\n /** Gets all the tokens found in the resolve context, de-duplicated */\n getTokens(): any[] {\n return this._path.reduce((acc, node) => acc.concat(node.resolvables.map(r => r.token)), []).reduce(uniqR, []);\n }\n\n /**\n * Gets the Resolvable that matches the token\n *\n * Gets the last Resolvable that matches the token in this context, or undefined.\n * Throws an error if it doesn't exist in the ResolveContext\n */\n getResolvable(token: any): Resolvable {\n let matching = this._path.map(node => node.resolvables)\n .reduce(unnestR, [])\n .filter((r: Resolvable) => r.token === token);\n return tail(matching);\n }\n\n /** Returns the [[ResolvePolicy]] for the given [[Resolvable]] */\n getPolicy(resolvable: Resolvable): ResolvePolicy {\n let node = this.findNode(resolvable);\n return resolvable.getPolicy(node.state);\n }\n\n /**\n * Returns a ResolveContext that includes a portion of this one\n *\n * Given a state, this method creates a new ResolveContext from this one.\n * The new context starts at the first node (root) and stops at the node for the `state` parameter.\n *\n * #### Why\n *\n * When a transition is created, the nodes in the \"To Path\" are injected from a ResolveContext.\n * A ResolveContext closes over a path of [[PathNode]]s and processes the resolvables.\n * The \"To State\" can inject values from its own resolvables, as well as those from all its ancestor state's (node's).\n * This method is used to create a narrower context when injecting ancestor nodes.\n *\n * @example\n * `let ABCD = new ResolveContext([A, B, C, D]);`\n *\n * Given a path `[A, B, C, D]`, where `A`, `B`, `C` and `D` are nodes for states `a`, `b`, `c`, `d`:\n * When injecting `D`, `D` should have access to all resolvables from `A`, `B`, `C`, `D`.\n * However, `B` should only be able to access resolvables from `A`, `B`.\n *\n * When resolving for the `B` node, first take the full \"To Path\" Context `[A,B,C,D]` and limit to the subpath `[A,B]`.\n * `let AB = ABCD.subcontext(a)`\n */\n subContext(state: StateObject): ResolveContext {\n return new ResolveContext(PathUtils.subPath(this._path, node => node.state === state));\n }\n\n /**\n * Adds Resolvables to the node that matches the state\n *\n * This adds a [[Resolvable]] (generally one created on the fly; not declared on a [[StateDeclaration.resolve]] block).\n * The resolvable is added to the node matching the `state` parameter.\n *\n * These new resolvables are not automatically fetched.\n * The calling code should either fetch them, fetch something that depends on them,\n * or rely on [[resolvePath]] being called when some state is being entered.\n *\n * Note: each resolvable's [[ResolvePolicy]] is merged with the state's policy, and the global default.\n *\n * @param newResolvables the new Resolvables\n * @param state Used to find the node to put the resolvable on\n */\n addResolvables(newResolvables: Resolvable[], state: StateObject) {\n let node = find(this._path, propEq('state', state));\n let keys = newResolvables.map(r => r.token);\n node.resolvables = node.resolvables.filter(r => keys.indexOf(r.token) === -1).concat(newResolvables);\n }\n\n /**\n * Returns a promise for an array of resolved path Element promises\n *\n * @param when\n * @param trans\n * @returns {Promise|any}\n */\n resolvePath(when: PolicyWhen = \"LAZY\", trans?: Transition): Promise<{ token: any, value: any }[]> {\n // This option determines which 'when' policy Resolvables we are about to fetch.\n let whenOption: string = inArray(ALL_WHENS, when) ? when : \"LAZY\";\n // If the caller specified EAGER, only the EAGER Resolvables are fetched.\n // if the caller specified LAZY, both EAGER and LAZY Resolvables are fetched.`\n let matchedWhens = whenOption === resolvePolicies.when.EAGER ? EAGER_WHENS : ALL_WHENS;\n\n // get the subpath to the state argument, if provided\n trace.traceResolvePath(this._path, when, trans);\n\n const matchesPolicy = (acceptedVals: string[], whenOrAsync: \"when\"|\"async\") =>\n (resolvable: Resolvable) =>\n inArray(acceptedVals, this.getPolicy(resolvable)[whenOrAsync]);\n\n // Trigger all the (matching) Resolvables in the path\n // Reduce all the \"WAIT\" Resolvables into an array\n let promises: Promise[] = this._path.reduce((acc, node) => {\n let nodeResolvables = node.resolvables.filter(matchesPolicy(matchedWhens, 'when'));\n let nowait = nodeResolvables.filter(matchesPolicy(['NOWAIT'], 'async'));\n let wait = nodeResolvables.filter(not(matchesPolicy(['NOWAIT'], 'async')));\n\n // For the matching Resolvables, start their async fetch process.\n let subContext = this.subContext(node.state);\n let getResult = (r: Resolvable) => r.get(subContext, trans)\n // Return a tuple that includes the Resolvable's token\n .then(value => ({ token: r.token, value: value }));\n nowait.forEach(getResult);\n return acc.concat(wait.map(getResult));\n }, []);\n\n // Wait for all the \"WAIT\" resolvables\n return services.$q.all(promises);\n }\n\n injector(): UIInjector {\n return this._injector || (this._injector = new UIInjectorImpl(this));\n }\n\n findNode(resolvable: Resolvable): PathNode {\n return find(this._path, (node: PathNode) => inArray(node.resolvables, resolvable));\n }\n\n /**\n * Gets the async dependencies of a Resolvable\n *\n * Given a Resolvable, returns its dependencies as a Resolvable[]\n */\n getDependencies(resolvable: Resolvable): Resolvable[] {\n let node = this.findNode(resolvable);\n // Find which other resolvables are \"visible\" to the `resolvable` argument\n // subpath stopping at resolvable's node, or the whole path (if the resolvable isn't in the path)\n let subPath: PathNode[] = PathUtils.subPath(this._path, x => x === node) || this._path;\n let availableResolvables: Resolvable[] = subPath\n .reduce((acc, _node) => acc.concat(_node.resolvables), []) //all of subpath's resolvables\n .filter(res => res !== resolvable); // filter out the `resolvable` argument\n\n const getDependency = (token: any) => {\n let matching = availableResolvables.filter(r => r.token === token);\n if (matching.length) return tail(matching);\n\n let fromInjector = this.injector().getNative(token);\n if (isUndefined(fromInjector)) {\n throw new Error(\"Could not find Dependency Injection token: \" + stringify(token));\n }\n\n return new Resolvable(token, () => fromInjector, [], fromInjector);\n };\n\n return resolvable.deps.map(getDependency);\n }\n}\n\nclass UIInjectorImpl implements UIInjector {\n native: $InjectorLike;\n\n constructor(public context: ResolveContext) {\n this.native = this.get(NATIVE_INJECTOR_TOKEN) || services.$injector;\n }\n\n get(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) {\n if (this.context.getPolicy(resolvable).async === 'NOWAIT') {\n return resolvable.get(this.context);\n }\n\n if (!resolvable.resolved) {\n throw new Error(\"Resolvable async .get() not complete:\" + stringify(resolvable.token))\n }\n return resolvable.data;\n }\n\n return this.getNative(token);\n }\n\n getAsync(token: any) {\n let resolvable = this.context.getResolvable(token);\n if (resolvable) return resolvable.get(this.context);\n return services.$q.when(this.native.get(token));\n }\n\n getNative(token: any) {\n return this.native && this.native.get(token);\n }\n}\n", + "/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { stringify } from '../common/strings';\nimport { map, find, extend, mergeR, tail, omit, arrayTuples, unnestR, identity, anyTrueR } from '../common/common';\nimport {isObject, isUndefined} from '../common/predicates';\nimport { prop, propEq, val, not, is } from '../common/hof';\nimport { StateDeclaration, StateOrName } from '../state/interface';\nimport {\n TransitionOptions, TreeChanges, IHookRegistry, TransitionHookPhase, RegisteredHooks, HookRegOptions,\n HookMatchCriteria, TransitionStateHookFn, TransitionHookFn,\n} from './interface'; // has or is using\nimport { TransitionHook } from './transitionHook';\nimport { matchState, makeEvent, RegisteredHook } from './hookRegistry';\nimport { HookBuilder } from './hookBuilder';\nimport { PathNode } from '../path/pathNode';\nimport { PathUtils } from '../path/pathFactory';\nimport { StateObject } from '../state/stateObject';\nimport { TargetState } from '../state/targetState';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ViewConfig } from '../view/interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { RawParams } from '../params/interface';\nimport { ResolvableLiteral } from '../resolve/interface';\n\n/** @hidden */\nconst stateSelf: (_state: StateObject) => StateDeclaration = prop(\"self\");\n\n/**\n * Represents a transition between two states.\n *\n * When navigating to a state, we are transitioning **from** the current state **to** the new state.\n *\n * This object contains all contextual information about the to/from states, parameters, resolves.\n * It has information about all states being entered and exited as a result of the transition.\n */\nexport class Transition implements IHookRegistry {\n\n /** @hidden */\n static diToken = Transition;\n\n /**\n * A unique identifier for the transition.\n *\n * This is an auto incrementing integer, starting from `0`.\n */\n $id: number;\n\n /**\n * A reference to the [[UIRouter]] instance\n *\n * This reference can be used to access the router services, such as the [[StateService]]\n */\n router: UIRouter;\n\n /** @hidden */\n private _deferred = services.$q.defer();\n /**\n * This promise is resolved or rejected based on the outcome of the Transition.\n *\n * When the transition is successful, the promise is resolved\n * When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error\n */\n promise: Promise = this._deferred.promise;\n /**\n * A boolean which indicates if the transition was successful\n *\n * After a successful transition, this value is set to true.\n * After an unsuccessful transition, this value is set to false.\n *\n * The value will be undefined if the transition is not complete\n */\n success: boolean;\n /** @hidden */\n _aborted: boolean;\n /** @hidden */\n private _error: any;\n\n /** @hidden Holds the hook registration functions such as those passed to Transition.onStart() */\n _registeredHooks: RegisteredHooks = { };\n\n /** @hidden */\n private _options: TransitionOptions;\n /** @hidden */\n private _treeChanges: TreeChanges;\n /** @hidden */\n private _targetState: TargetState;\n /** @hidden */\n private _hookBuilder = new HookBuilder(this);\n\n\n /** @hidden */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return; }\n\n /** @hidden\n * Creates the transition-level hook registration functions\n * (which can then be used to register hooks)\n */\n private createTransitionHookRegFns() {\n this.router.transitionService._pluginapi._getEvents()\n .filter(type => type.hookPhase !== TransitionHookPhase.CREATE)\n .forEach(type => makeEvent(this, this.router.transitionService, type));\n }\n\n /** @internalapi */\n getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /**\n * Creates a new Transition object.\n *\n * If the target state is not valid, an error is thrown.\n *\n * @internalapi\n *\n * @param fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`\n * encapsulates the \"from state\".\n * @param targetState The target state and parameters being transitioned to (also, the transition options)\n * @param router The [[UIRouter]] instance\n */\n constructor(fromPath: PathNode[], targetState: TargetState, router: UIRouter) {\n this.router = router;\n this._targetState = targetState;\n\n if (!targetState.valid()) {\n throw new Error(targetState.error());\n }\n\n // current() is assumed to come from targetState.options, but provide a naive implementation otherwise.\n this._options = extend({ current: val(this) }, targetState.options());\n this.$id = router.transitionService._transitionCount++;\n let toPath = PathUtils.buildToPath(fromPath, targetState);\n this._treeChanges = PathUtils.treeChanges(fromPath, toPath, this._options.reloadState);\n this.createTransitionHookRegFns();\n\n let onCreateHooks = this._hookBuilder.buildHooksForPhase(TransitionHookPhase.CREATE);\n TransitionHook.invokeHooks(onCreateHooks, () => null);\n\n this.applyViewConfigs(router);\n }\n\n private applyViewConfigs(router: UIRouter) {\n let enteringStates = this._treeChanges.entering.map(node => node.state);\n PathUtils.applyViewConfigs(router.transitionService.$view, this._treeChanges.to, enteringStates);\n }\n\n /**\n * @internalapi\n *\n * @returns the internal from [State] object\n */\n $from() {\n return tail(this._treeChanges.from).state;\n }\n\n /**\n * @internalapi\n *\n * @returns the internal to [State] object\n */\n $to() {\n return tail(this._treeChanges.to).state;\n }\n\n /**\n * Returns the \"from state\"\n *\n * Returns the state that the transition is coming *from*.\n *\n * @returns The state declaration object for the Transition's (\"from state\").\n */\n from(): StateDeclaration {\n return this.$from().self;\n }\n\n /**\n * Returns the \"to state\"\n *\n * Returns the state that the transition is going *to*.\n *\n * @returns The state declaration object for the Transition's target state (\"to state\").\n */\n to(): StateDeclaration {\n return this.$to().self;\n }\n\n /**\n * Gets the Target State\n *\n * A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.\n *\n * @returns the [[TargetState]] of this Transition\n */\n targetState() {\n return this._targetState;\n }\n\n /**\n * Determines whether two transitions are equivalent.\n * @deprecated\n */\n is(compare: (Transition|{to?: any, from?: any})): boolean {\n if (compare instanceof Transition) {\n // TODO: Also compare parameters\n return this.is({ to: compare.$to().name, from: compare.$from().name });\n }\n return !(\n (compare.to && !matchState(this.$to(), compare.to)) ||\n (compare.from && !matchState(this.$from(), compare.from))\n );\n }\n\n /**\n * Gets transition parameter values\n *\n * Returns the parameter values for a transition as key/value pairs.\n * This object is immutable.\n *\n * By default, returns the new parameter values (for the \"to state\").\n *\n * #### Example:\n * ```js\n * var toParams = transition.params();\n * ```\n *\n * To return the previous parameter values, supply `'from'` as the `pathname` argument.\n *\n * #### Example:\n * ```js\n * var fromParams = transition.params('from');\n * ```\n *\n * @param pathname the name of the treeChanges path to get parameter values for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n *\n * @returns transition parameter values for the desired path.\n */\n params(pathname?: string): any;\n params(pathname?: string): T;\n params(pathname: string = \"to\") {\n return Object.freeze(this._treeChanges[pathname].map(prop(\"paramValues\")).reduce(mergeR, {}));\n }\n\n\n /**\n * Creates a [[UIInjector]] Dependency Injector\n *\n * Returns a Dependency Injector for the Transition's target state (to state).\n * The injector provides resolve values which the target state has access to.\n *\n * The `UIInjector` can also provide values from the native root/global injector (ng1/ng2).\n *\n * #### Example:\n * ```js\n * .onEnter({ entering: 'myState' }, trans => {\n * var myResolveValue = trans.injector().get('myResolve');\n * // Inject a global service from the global/native injector (if it exists)\n * var MyService = trans.injector().get('MyService');\n * })\n * ```\n *\n * In some cases (such as `onBefore`), you may need access to some resolve data but it has not yet been fetched.\n * You can use [[UIInjector.getAsync]] to get a promise for the data.\n * #### Example:\n * ```js\n * .onBefore({}, trans => {\n * return trans.injector().getAsync('myResolve').then(myResolveValue =>\n * return myResolveValue !== 'ABORT';\n * });\n * });\n * ```\n *\n * If a `state` is provided, the injector that is returned will be limited to resolve values that the provided state has access to.\n * This can be useful if both a parent state `foo` and a child state `foo.bar` have both defined a resolve such as `data`.\n * #### Example:\n * ```js\n * .onEnter({ to: 'foo.bar' }, trans => {\n * // returns result of `foo` state's `data` resolve\n * // even though `foo.bar` also has a `data` resolve\n * var fooData = trans.injector('foo').get('data');\n * });\n * ```\n *\n * If you need resolve data from the exiting states, pass `'from'` as `pathName`.\n * The resolve data from the `from` path will be returned.\n * #### Example:\n * ```js\n * .onExit({ exiting: 'foo.bar' }, trans => {\n * // Gets the resolve value of `data` from the exiting state.\n * var fooData = trans.injector(null, 'foo.bar').get('data');\n * });\n * ```\n *\n *\n * @param state Limits the resolves provided to only the resolves the provided state has access to.\n * @param pathName Default: `'to'`: Chooses the path for which to create the injector. Use this to access resolves for `exiting` states.\n *\n * @returns a [[UIInjector]]\n */\n injector(state?: StateOrName, pathName = \"to\"): UIInjector {\n let path: PathNode[] = this._treeChanges[pathName];\n if (state) path = PathUtils.subPath(path, node => node.state === state || node.state.name === state);\n return new ResolveContext(path).injector();\n }\n\n /**\n * Gets all available resolve tokens (keys)\n *\n * This method can be used in conjunction with [[injector]] to inspect the resolve values\n * available to the Transition.\n *\n * This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states\n * in the Transition's [[TreeChanges.to]] path.\n *\n * #### Example:\n * This example logs all resolve values\n * ```js\n * let tokens = trans.getResolveTokens();\n * tokens.forEach(token => console.log(token + \" = \" + trans.injector().get(token)));\n * ```\n *\n * #### Example:\n * This example creates promises for each resolve value.\n * This triggers fetches of resolves (if any have not yet been fetched).\n * When all promises have all settled, it logs the resolve values.\n * ```js\n * let tokens = trans.getResolveTokens();\n * let promise = tokens.map(token => trans.injector().getAsync(token));\n * Promise.all(promises).then(values => console.log(\"Resolved values: \" + values));\n * ```\n *\n * Note: Angular 1 users whould use `$q.all()`\n *\n * @param pathname resolve context's path name (e.g., `to` or `from`)\n *\n * @returns an array of resolve tokens (keys)\n */\n getResolveTokens(pathname: string = \"to\"): any[] {\n return new ResolveContext(this._treeChanges[pathname]).getTokens();\n }\n\n /**\n * Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.\n *\n * #### Example:\n * ```js\n * transitionService.onBefore({}, transition => {\n * transition.addResolvable({\n * token: 'myResolve',\n * deps: ['MyService'],\n * resolveFn: myService => myService.getData()\n * });\n * });\n * ```\n *\n * @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])\n * @param state the state in the \"to path\" which should receive the new resolve (otherwise, the root state)\n */\n addResolvable(resolvable: Resolvable|ResolvableLiteral, state: StateOrName = \"\"): void {\n resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);\n\n let stateName: string = (typeof state === \"string\") ? state : state.name;\n let topath = this._treeChanges.to;\n let targetNode = find(topath, node => node.state.name === stateName);\n let resolveContext: ResolveContext = new ResolveContext(topath);\n resolveContext.addResolvables([resolvable as Resolvable], targetNode.state);\n }\n\n /**\n * Gets the transition from which this transition was redirected.\n *\n * If the current transition is a redirect, this method returns the transition that was redirected.\n *\n * #### Example:\n * ```js\n * let transitionA = $state.go('A').transition\n * transitionA.onStart({}, () => $state.target('B'));\n * $transitions.onSuccess({ to: 'B' }, (trans) => {\n * trans.to().name === 'B'; // true\n * trans.redirectedFrom() === transitionA; // true\n * });\n * ```\n *\n * @returns The previous Transition, or null if this Transition is not the result of a redirection\n */\n redirectedFrom(): Transition {\n return this._options.redirectedFrom || null;\n }\n\n /**\n * Gets the original transition in a redirect chain\n *\n * A transition might belong to a long chain of multiple redirects.\n * This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.\n *\n * #### Example:\n * ```js\n * // states\n * registry.register({ name: 'A', redirectTo: 'B' });\n * registry.register({ name: 'B', redirectTo: 'C' });\n * registry.register({ name: 'C', redirectTo: 'D' });\n * registry.register({ name: 'D' });\n *\n * let transitionA = $state.go('A').transition\n *\n * $transitions.onSuccess({ to: 'D' }, (trans) => {\n * trans.to().name === 'D'; // true\n * trans.redirectedFrom().to().name === 'C'; // true\n * trans.originalTransition() === transitionA; // true\n * trans.originalTransition().to().name === 'A'; // true\n * });\n * ```\n *\n * @returns The original Transition that started a redirect chain\n */\n originalTransition(): Transition {\n let rf = this.redirectedFrom();\n return (rf && rf.originalTransition()) || this;\n }\n\n /**\n * Get the transition options\n *\n * @returns the options for this Transition.\n */\n options(): TransitionOptions {\n return this._options;\n }\n\n /**\n * Gets the states being entered.\n *\n * @returns an array of states that will be entered during this transition.\n */\n entering(): StateDeclaration[] {\n return map(this._treeChanges.entering, prop('state')).map(stateSelf);\n }\n\n /**\n * Gets the states being exited.\n *\n * @returns an array of states that will be exited during this transition.\n */\n exiting(): StateDeclaration[] {\n return map(this._treeChanges.exiting, prop('state')).map(stateSelf).reverse();\n }\n\n /**\n * Gets the states being retained.\n *\n * @returns an array of states that are already entered from a previous Transition, that will not be\n * exited during this Transition\n */\n retained(): StateDeclaration[] {\n return map(this._treeChanges.retained, prop('state')).map(stateSelf);\n }\n\n /**\n * Get the [[ViewConfig]]s associated with this Transition\n *\n * Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.\n * This method fetches the `ViewConfigs` for a given path in the Transition (e.g., \"to\" or \"entering\").\n *\n * @param pathname the name of the path to fetch views for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n * @param state If provided, only returns the `ViewConfig`s for a single state in the path\n *\n * @returns a list of ViewConfig objects for the given path.\n */\n views(pathname: string = \"entering\", state?: StateObject): ViewConfig[] {\n let path = this._treeChanges[pathname];\n path = !state ? path : path.filter(propEq('state', state));\n return path.map(prop(\"views\")).filter(identity).reduce(unnestR, []);\n }\n\n /**\n * Return the transition's tree changes\n *\n * A transition goes from one state/parameters to another state/parameters.\n * During a transition, states are entered and/or exited.\n *\n * This function returns various branches (paths) which represent the changes to the\n * active state tree that are caused by the transition.\n *\n * @param pathname The name of the tree changes path to get:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n */\n treeChanges(pathname: string): PathNode[];\n treeChanges(): TreeChanges;\n treeChanges(pathname?: string) {\n return pathname ? this._treeChanges[pathname] : this._treeChanges;\n }\n\n /**\n * Creates a new transition that is a redirection of the current one.\n *\n * This transition can be returned from a [[TransitionService]] hook to\n * redirect a transition to a new state and/or set of parameters.\n *\n * @internalapi\n *\n * @returns Returns a new [[Transition]] instance.\n */\n redirect(targetState: TargetState): Transition {\n let redirects = 1, trans: Transition = this;\n while ((trans = trans.redirectedFrom()) != null) {\n if (++redirects > 20) throw new Error(`Too many consecutive Transition redirects (20+)`);\n }\n\n let redirectOpts: TransitionOptions = { redirectedFrom: this, source: \"redirect\" };\n // If the original transition was caused by URL sync, then use { location: 'replace' }\n // on the new transition (unless the target state explicitly specifies location: false).\n // This causes the original url to be replaced with the url for the redirect target\n // so the original url disappears from the browser history.\n if (this.options().source === 'url' && targetState.options().location !== false) {\n redirectOpts.location = 'replace';\n }\n\n let newOptions = extend({}, this.options(), targetState.options(), redirectOpts);\n targetState = targetState.withOptions(newOptions, true);\n\n let newTransition = this.router.transitionService.create(this._treeChanges.from, targetState);\n let originalEnteringNodes = this._treeChanges.entering;\n let redirectEnteringNodes = newTransition._treeChanges.entering;\n\n // --- Re-use resolve data from original transition ---\n // When redirecting from a parent state to a child state where the parent parameter values haven't changed\n // (because of the redirect), the resolves fetched by the original transition are still valid in the\n // redirected transition.\n //\n // This allows you to define a redirect on a parent state which depends on an async resolve value.\n // You can wait for the resolve, then redirect to a child state based on the result.\n // The redirected transition does not have to re-fetch the resolve.\n // ---------------------------------------------------------\n\n const nodeIsReloading = (reloadState: StateObject) => (node: PathNode) => {\n return reloadState && node.state.includes[reloadState.name];\n };\n\n // Find any \"entering\" nodes in the redirect path that match the original path and aren't being reloaded\n let matchingEnteringNodes: PathNode[] = PathUtils.matching(redirectEnteringNodes, originalEnteringNodes, PathUtils.nonDynamicParams)\n .filter(not(nodeIsReloading(targetState.options().reloadState)));\n\n // Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.\n matchingEnteringNodes.forEach((node, idx) => {\n node.resolvables = originalEnteringNodes[idx].resolvables;\n });\n\n return newTransition;\n }\n\n /** @hidden If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */\n private _changedParams(): Param[] {\n let tc = this._treeChanges;\n\n /** Return undefined if it's not a \"dynamic\" transition, for the following reasons */\n // If user explicitly wants a reload\n if (this._options.reload) return undefined;\n // If any states are exiting or entering\n if (tc.exiting.length || tc.entering.length) return undefined;\n // If to/from path lengths differ\n if (tc.to.length !== tc.from.length) return undefined;\n // If the to/from paths are different\n let pathsDiffer: boolean = arrayTuples(tc.to, tc.from)\n .map(tuple => tuple[0].state !== tuple[1].state)\n .reduce(anyTrueR, false);\n if (pathsDiffer) return undefined;\n\n // Find any parameter values that differ\n let nodeSchemas: Param[][] = tc.to.map((node: PathNode) => node.paramSchema);\n let [toValues, fromValues] = [tc.to, tc.from].map(path => path.map(x => x.paramValues));\n let tuples = arrayTuples(nodeSchemas, toValues, fromValues);\n\n return tuples.map(([schema, toVals, fromVals]) => Param.changed(schema, toVals, fromVals)).reduce(unnestR, []);\n }\n\n /**\n * Returns true if the transition is dynamic.\n *\n * A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.\n *\n * @returns true if the Transition is dynamic\n */\n dynamic(): boolean {\n let changes = this._changedParams();\n return !changes ? false : changes.map(x => x.dynamic).reduce(anyTrueR, false);\n }\n\n /**\n * Returns true if the transition is ignored.\n *\n * A transition is ignored if no states are entered nor exited, and no parameter values have changed.\n *\n * @returns true if the Transition is ignored.\n */\n ignored(): boolean {\n return !!this._ignoredReason();\n }\n\n /** @hidden */\n _ignoredReason(): \"SameAsCurrent\"|\"SameAsPending\"|undefined {\n const pending = this.router.globals.transition;\n const reloadState = this._options.reloadState;\n\n const same = (pathA, pathB) => {\n if (pathA.length !== pathB.length) return false;\n const matching = PathUtils.matching(pathA, pathB);\n return pathA.length === matching.filter(node => !reloadState || !node.state.includes[reloadState.name]).length;\n };\n\n let newTC = this.treeChanges();\n let pendTC = pending && pending.treeChanges();\n\n if (pendTC && same(pendTC.to, newTC.to) && same(pendTC.exiting, newTC.exiting)) return \"SameAsPending\";\n if (newTC.exiting.length === 0 && newTC.entering.length === 0 && same(newTC.from, newTC.to)) return \"SameAsCurrent\";\n }\n\n /**\n * Runs the transition\n *\n * This method is generally called from the [[StateService.transitionTo]]\n *\n * @internalapi\n *\n * @returns a promise for a successful transition.\n */\n run(): Promise {\n let runAllHooks = TransitionHook.runAllHooks;\n\n // Gets transition hooks array for the given phase\n const getHooksFor = (phase: TransitionHookPhase) =>\n this._hookBuilder.buildHooksForPhase(phase);\n\n // When the chain is complete, then resolve or reject the deferred\n const transitionSuccess = () => {\n trace.traceSuccess(this.$to(), this);\n this.success = true;\n this._deferred.resolve(this.to());\n runAllHooks(getHooksFor(TransitionHookPhase.SUCCESS));\n };\n\n const transitionError = (reason: any) => {\n trace.traceError(reason, this);\n this.success = false;\n this._deferred.reject(reason);\n this._error = reason;\n runAllHooks(getHooksFor(TransitionHookPhase.ERROR));\n };\n\n const runTransition = () => {\n // Wait to build the RUN hook chain until the BEFORE hooks are done\n // This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.\n let allRunHooks = getHooksFor(TransitionHookPhase.RUN);\n let done = () => services.$q.when(undefined);\n return TransitionHook.invokeHooks(allRunHooks, done);\n };\n\n const startTransition = () => {\n let globals = this.router.globals;\n\n globals.lastStartedTransitionId = this.$id;\n globals.transition = this;\n globals.transitionHistory.enqueue(this);\n\n trace.traceTransitionStart(this);\n\n return services.$q.when(undefined);\n };\n\n let allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);\n TransitionHook.invokeHooks(allBeforeHooks, startTransition)\n .then(runTransition)\n .then(transitionSuccess, transitionError);\n\n return this.promise;\n }\n\n /** Checks if this transition is currently active/running. */\n isActive = () =>\n this.router.globals.transition === this;\n\n /**\n * Checks if the Transition is valid\n *\n * @returns true if the Transition is valid\n */\n valid() {\n return !this.error() || this.success !== undefined;\n }\n\n /**\n * Aborts this transition\n *\n * Imperative API to abort a Transition.\n * This only applies to Transitions that are not yet complete.\n */\n abort() {\n // Do not set flag if the transition is already complete\n if (isUndefined(this.success)) {\n this._aborted = true;\n }\n }\n\n /**\n * The Transition error reason.\n *\n * If the transition is invalid (and could not be run), returns the reason the transition is invalid.\n * If the transition was valid and ran, but was not successful, returns the reason the transition failed.\n *\n * @returns an error message explaining why the transition is invalid, or the reason the transition failed.\n */\n error() {\n let state: StateObject = this.$to();\n\n if (state.self.abstract)\n return `Cannot transition to abstract state '${state.name}'`;\n\n const paramDefs = state.parameters(), values = this.params();\n const invalidParams = paramDefs.filter(param => !param.validates(values[param.id]));\n if (invalidParams.length) {\n return `Param values not valid for state '${state.name}'. Invalid params: [ ${invalidParams.map(param => param.id).join(', ')} ]`;\n }\n\n if (this.success === false)\n return this._error;\n }\n\n /**\n * A string representation of the Transition\n *\n * @returns A string representation of the Transition\n */\n toString () {\n let fromStateOrName = this.from();\n let toStateOrName = this.to();\n\n const avoidEmptyHash = (params: RawParams) =>\n (params[\"#\"] !== null && params[\"#\"] !== undefined) ? params : omit(params, [\"#\"]);\n\n // (X) means the to state is invalid.\n let id = this.$id,\n from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName,\n fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))),\n toValid = this.valid() ? \"\" : \"(X) \",\n to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName,\n toParams = stringify(avoidEmptyHash(this.params()));\n\n return `Transition#${id}( '${from}'${fromParams} -> ${toValid}'${to}'${toParams} )`;\n }\n}\n", + "/**\n * @coreapi\n * @module params\n */\n/** */\nimport { fromJson, toJson, identity, equals, inherit, map, extend, pick } from \"../common/common\";\nimport { isDefined, isNullOrUndefined } from \"../common/predicates\";\nimport { is } from \"../common/hof\";\nimport { services } from \"../common/coreservices\";\nimport { ParamType } from \"./paramType\";\nimport { ParamTypeDefinition } from \"./interface\";\n\n/**\n * A registry for parameter types.\n *\n * This registry manages the built-in (and custom) parameter types.\n *\n * The built-in parameter types are:\n *\n * - [[string]]\n * - [[path]]\n * - [[query]]\n * - [[hash]]\n * - [[int]]\n * - [[bool]]\n * - [[date]]\n * - [[json]]\n * - [[any]]\n */\nexport class ParamTypes {\n /** @hidden */\n types: any;\n /** @hidden */\n enqueue: boolean = true;\n /** @hidden */\n typeQueue: any[] = [];\n\n /**\n * Built-in parameter type: `string`\n *\n * This parameter type coerces values to strings.\n * It matches anything (`new RegExp(\".*\")`) in the URL\n */\n static string: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `path`\n *\n * This parameter type is the default type for path parameters.\n * A path parameter is any parameter declared in the path portion of a url\n *\n * - `/foo/:param1/:param2`: two path parameters\n *\n * This parameter type behaves exactly like the [[string]] type with one exception.\n * When matching parameter values in the URL, the `path` type does not match forward slashes `/`.\n *\n * #### Angular 1 note:\n * In ng1, this type is overridden with one that pre-encodes slashes as `~2F` instead of `%2F`.\n * For more details about this angular 1 behavior, see: https://github.com/angular-ui/ui-router/issues/2598\n */\n static path: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `query`\n *\n * This parameter type is the default type for query/search parameters.\n * It behaves the same as the [[string]] parameter type.\n *\n * A query parameter is any parameter declared in the query/search portion of a url\n *\n * - `/bar?param2`: a query parameter\n */\n static query: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `hash`\n *\n * This parameter type is used for the `#` parameter (the hash)\n * It behaves the same as the [[string]] parameter type.\n * @coreapi\n */\n static hash: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `int`\n *\n * This parameter type serializes javascript integers (`number`s which represent an integer) to the URL.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'user',\n * url: '/user/{id:int}'\n * });\n * ```\n * ```js\n * $state.go('user', { id: 1298547 });\n * ```\n *\n * The URL will serialize to: `/user/1298547`.\n *\n * When the parameter value is read, it will be the `number` `1298547`, not the string `\"1298547\"`.\n */\n static int: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `bool`\n *\n * This parameter type serializes `true`/`false` as `1`/`0`\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'inbox',\n * url: '/inbox?{unread:bool}'\n * });\n * ```\n * ```js\n * $state.go('inbox', { unread: true });\n * ```\n *\n * The URL will serialize to: `/inbox?unread=1`.\n *\n * Conversely, if the url is `/inbox?unread=0`, the value of the `unread` parameter will be a `false`.\n */\n static bool: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `date`\n *\n * This parameter type can be used to serialize Javascript dates as parameter values.\n *\n * #### Example:\n * ```js\n * .state({\n * name: 'search',\n * url: '/search?{start:date}'\n * });\n * ```\n * ```js\n * $state.go('search', { start: new Date(2000, 0, 1) });\n * ```\n *\n * The URL will serialize to: `/search?start=2000-01-01`.\n *\n * Conversely, if the url is `/search?start=2016-12-25`, the value of the `start` parameter will be a `Date` object where:\n *\n * - `date.getFullYear() === 2016`\n * - `date.getMonth() === 11` (month is 0-based)\n * - `date.getDate() === 25`\n */\n static date: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `json`\n *\n * This parameter type can be used to serialize javascript objects into the URL using JSON serialization.\n *\n * #### Example:\n * This example serializes an plain javascript object to the URL\n * ```js\n * .state({\n * name: 'map',\n * url: '/map/{coords:json}'\n * });\n * ```\n * ```js\n * $state.go('map', { coords: { x: 10399.2, y: 49071 });\n * ```\n *\n * The URL will serialize to: `/map/%7B%22x%22%3A10399.2%2C%22y%22%3A49071%7D`\n */\n static json: ParamTypeDefinition;\n\n /**\n * Built-in parameter type: `any`\n *\n * This parameter type is used by default for url-less parameters (parameters that do not appear in the URL).\n * This type does not encode or decode.\n * It is compared using a deep `equals` comparison.\n *\n * #### Example:\n * This example defines a non-url parameter on a [[StateDeclaration]].\n * ```js\n * .state({\n * name: 'new',\n * url: '/new',\n * params: {\n * inrepyto: null\n * }\n * });\n * ```\n * ```js\n * $state.go('new', { inreplyto: currentMessage });\n * ```\n */\n static any: ParamTypeDefinition;\n\n\n /** @internalapi */\n private defaultTypes: any = pick(ParamTypes.prototype, [\"hash\", \"string\", \"query\", \"path\", \"int\", \"bool\", \"date\", \"json\", \"any\"]);\n\n /** @internalapi */\n constructor() {\n // Register default types. Store them in the prototype of this.types.\n const makeType = (definition: ParamTypeDefinition, name: string) =>\n new ParamType(extend({ name }, definition));\n this.types = inherit(map(this.defaultTypes, makeType), {});\n }\n\n /** @internalapi */\n dispose() {\n this.types = {};\n }\n\n /**\n * Registers a parameter type\n *\n * End users should call [[UrlMatcherFactory.type]], which delegates to this method.\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n if (!isDefined(definition)) return this.types[name];\n if (this.types.hasOwnProperty(name)) throw new Error(`A type named '${name}' has already been defined.`);\n\n this.types[name] = new ParamType(extend({ name }, definition));\n\n if (definitionFn) {\n this.typeQueue.push({ name, def: definitionFn });\n if (!this.enqueue) this._flushTypeQueue();\n }\n\n return this;\n }\n\n /** @internalapi */\n _flushTypeQueue() {\n while (this.typeQueue.length) {\n let type = this.typeQueue.shift();\n if (type.pattern) throw new Error(\"You cannot override a type's .pattern at runtime.\");\n extend(this.types[type.name], services.$injector.invoke(type.def));\n }\n }\n}\n\n/** @hidden */\nfunction initDefaultTypes() {\n\n const makeDefaultType = (def) => {\n const valToString = (val: any) =>\n val != null ? val.toString() : val;\n\n const defaultTypeBase = {\n encode: valToString,\n decode: valToString,\n is: is(String),\n pattern: /.*/,\n equals: (a: any, b: any) => a == b, // allow coersion for null/undefined/\"\"\n };\n\n return extend({}, defaultTypeBase, def) as ParamTypeDefinition;\n };\n\n // Default Parameter Type Definitions\n extend(ParamTypes.prototype, {\n string: makeDefaultType({}),\n\n path: makeDefaultType({\n pattern: /[^/]*/,\n }),\n\n query: makeDefaultType({}),\n\n hash: makeDefaultType({\n inherit: false,\n }),\n\n int: makeDefaultType({\n decode: (val: string) => parseInt(val, 10),\n is: function(val: any) {\n return !isNullOrUndefined(val) && this.decode(val.toString()) === val;\n },\n pattern: /-?\\d+/,\n }),\n\n bool: makeDefaultType({\n encode: (val: any) => val && 1 || 0,\n decode: (val: string) => parseInt(val, 10) !== 0,\n is: is(Boolean),\n pattern: /0|1/,\n }),\n\n date: makeDefaultType({\n encode: function(val: any) {\n return !this.is(val) ? undefined : [\n val.getFullYear(),\n ('0' + (val.getMonth() + 1)).slice(-2),\n ('0' + val.getDate()).slice(-2),\n ].join(\"-\");\n },\n decode: function(val: string) {\n if (this.is(val)) return val as Date;\n let match = this.capture.exec(val);\n return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;\n },\n is: (val: any) => val instanceof Date && !isNaN(val.valueOf()),\n equals(l: any, r: any) {\n return ['getFullYear', 'getMonth', 'getDate']\n .reduce((acc, fn) => acc && l[fn]() === r[fn](), true);\n },\n pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,\n capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,\n }),\n\n json: makeDefaultType({\n encode: toJson,\n decode: fromJson,\n is: is(Object),\n equals: equals,\n pattern: /[^/]*/,\n }),\n\n // does not encode/decode\n any: makeDefaultType({\n encode: identity,\n decode: identity,\n is: () => true,\n equals: equals,\n }),\n });\n}\n\ninitDefaultTypes();\n\n", + "/**\n * @coreapi\n * @module params\n */\n/** */\nimport {extend, ancestors, Obj} from \"../common/common\";\nimport {StateObject} from \"../state/stateObject\";\n\n/** @internalapi */\nexport class StateParams {\n [key: string]: any;\n\n constructor(params: Obj = {}) {\n extend(this, params);\n }\n\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n $inherit(newParams: Obj, $current: StateObject, $to: StateObject) {\n let parents = ancestors($current, $to),\n parentParams: string[],\n inherited: Obj = {},\n inheritList: string[] = [];\n\n for (let i in parents) {\n if (!parents[i] || !parents[i].params) continue;\n parentParams = Object.keys(parents[i].params);\n if (!parentParams.length) continue;\n\n for (let j in parentParams) {\n if (inheritList.indexOf(parentParams[j]) >= 0) continue;\n inheritList.push(parentParams[j]);\n inherited[parentParams[j]] = this[parentParams[j]];\n }\n }\n return extend({}, inherited, newParams);\n };\n}\n\n", + "/** @module state */ /** for typedoc */\nimport {isString} from \"../common/predicates\";\nimport {StateOrName} from \"./interface\";\nimport {StateObject} from \"./stateObject\";\nimport {values} from \"../common/common\";\n\nexport class StateMatcher {\n constructor (private _states: { [key: string]: StateObject }) { }\n \n isRelative(stateName: string) {\n stateName = stateName || \"\";\n return stateName.indexOf(\".\") === 0 || stateName.indexOf(\"^\") === 0;\n }\n\n\n find(stateOrName: StateOrName, base?: StateOrName, matchGlob = true): StateObject {\n if (!stateOrName && stateOrName !== \"\") return undefined;\n let isStr = isString(stateOrName);\n let name: string = isStr ? stateOrName : (stateOrName).name;\n\n if (this.isRelative(name)) name = this.resolvePath(name, base);\n let state = this._states[name];\n\n if (state && (isStr || (!isStr && (state === stateOrName || state.self === stateOrName)))) {\n return state;\n } else if (isStr && matchGlob) {\n let _states = values(this._states);\n let matches = _states.filter(state =>\n state.__stateObjectCache.nameGlob &&\n state.__stateObjectCache.nameGlob.matches(name)\n );\n\n if (matches.length > 1) {\n console.log(`stateMatcher.find: Found multiple matches for ${name} using glob: `, matches.map(match => match.name));\n }\n return matches[0];\n }\n return undefined;\n }\n\n resolvePath(name: string, base: StateOrName) {\n if (!base) throw new Error(`No reference point given for path '${name}'`);\n \n let baseState: StateObject = this.find(base);\n\n let splitName = name.split(\".\"), i = 0, pathLength = splitName.length, current = baseState;\n\n for (; i < pathLength; i++) {\n if (splitName[i] === \"\" && i === 0) {\n current = baseState;\n continue;\n }\n if (splitName[i] === \"^\") {\n if (!current.parent) throw new Error(`Path '${name}' not valid for state '${baseState.name}'`);\n current = current.parent;\n continue;\n }\n break;\n }\n let relName = splitName.slice(i).join(\".\");\n return current.name + (current.name && relName ? \".\" : \"\") + relName;\n }\n}\n", + "/** @module state */ /** for typedoc */\nimport { inArray } from \"../common/common\";\nimport { isString } from \"../common/predicates\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { StateObject } from \"./stateObject\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateRegistryListener, StateRegistry } from \"./stateRegistry\";\nimport { Disposable } from \"../interface\";\nimport { UrlRouter } from \"../url/urlRouter\";\nimport { prop } from \"../common/hof\";\nimport { StateMatcher } from \"./stateMatcher\";\n\n/** @internalapi */\nexport class StateQueueManager implements Disposable {\n queue: StateObject[];\n matcher: StateMatcher;\n\n constructor(\n private $registry: StateRegistry,\n private $urlRouter: UrlRouter,\n public states: { [key: string]: StateObject; },\n public builder: StateBuilder,\n public listeners: StateRegistryListener[]) {\n this.queue = [];\n this.matcher = $registry.matcher;\n }\n\n /** @internalapi */\n dispose() {\n this.queue = [];\n }\n\n register(stateDecl: _StateDeclaration) {\n let queue = this.queue;\n let state = StateObject.create(stateDecl);\n let name = state.name;\n\n if (!isString(name)) throw new Error(\"State must have a valid name\");\n if (this.states.hasOwnProperty(name) || inArray(queue.map(prop('name')), name))\n throw new Error(`State '${name}' is already defined`);\n\n queue.push(state);\n this.flush();\n\n return state;\n }\n\n flush() {\n let {queue, states, builder} = this;\n let registered: StateObject[] = [], // states that got registered\n orphans: StateObject[] = [], // states that don't yet have a parent registered\n previousQueueLength = {}; // keep track of how long the queue when an orphan was first encountered\n const getState = (name) =>\n this.states.hasOwnProperty(name) && this.states[name];\n\n while (queue.length > 0) {\n let state: StateObject = queue.shift();\n let name = state.name;\n let result: StateObject = builder.build(state);\n let orphanIdx: number = orphans.indexOf(state);\n\n if (result) {\n let existingState = getState(name);\n if (existingState && existingState.name === name) {\n throw new Error(`State '${name}' is already defined`);\n }\n\n let existingFutureState = getState(name + \".**\");\n if (existingFutureState) {\n // Remove future state of the same name\n this.$registry.deregister(existingFutureState);\n }\n\n states[name] = state;\n this.attachRoute(state);\n if (orphanIdx >= 0) orphans.splice(orphanIdx, 1);\n registered.push(state);\n continue;\n }\n\n let prev = previousQueueLength[name];\n previousQueueLength[name] = queue.length;\n if (orphanIdx >= 0 && prev === queue.length) {\n // Wait until two consecutive iterations where no additional states were dequeued successfully.\n // throw new Error(`Cannot register orphaned state '${name}'`);\n queue.push(state);\n return states;\n } else if (orphanIdx < 0) {\n orphans.push(state);\n }\n\n queue.push(state);\n }\n\n if (registered.length) {\n this.listeners.forEach(listener => listener(\"registered\", registered.map(s => s.self)));\n }\n\n return states;\n }\n\n attachRoute(state: StateObject) {\n if (state.abstract || !state.url) return;\n\n this.$urlRouter.rule(this.$urlRouter.urlRuleFactory.create(state));\n }\n}\n", + "/**\n * @coreapi\n * @module state\n */ /** for typedoc */\n\nimport { StateObject } from \"./stateObject\";\nimport { StateMatcher } from \"./stateMatcher\";\nimport { StateBuilder } from \"./stateBuilder\";\nimport { StateQueueManager } from \"./stateQueueManager\";\nimport { StateDeclaration, _StateDeclaration } from \"./interface\";\nimport { BuilderFunction } from \"./stateBuilder\";\nimport { StateOrName } from \"./interface\";\nimport { removeFrom } from \"../common/common\";\nimport { UIRouter } from \"../router\";\nimport { propEq } from \"../common/hof\";\n\n/**\n * The signature for the callback function provided to [[StateRegistry.onStatesChanged]].\n *\n * This callback receives two parameters:\n *\n * @param event a string; either \"registered\" or \"deregistered\"\n * @param states the list of [[StateDeclaration]]s that were registered (or deregistered).\n */\nexport type StateRegistryListener = (event: \"registered\"|\"deregistered\", states: StateDeclaration[]) => void;\n\nexport class StateRegistry {\n private _root: StateObject;\n private states: { [key: string]: StateObject } = {};\n\n matcher: StateMatcher;\n private builder: StateBuilder;\n stateQueue: StateQueueManager;\n\n listeners: StateRegistryListener[] = [];\n\n /** @internalapi */\n constructor(private _router: UIRouter) {\n this.matcher = new StateMatcher(this.states);\n this.builder = new StateBuilder(this.matcher, _router.urlMatcherFactory);\n this.stateQueue = new StateQueueManager(this, _router.urlRouter, this.states, this.builder, this.listeners);\n this._registerRoot();\n }\n\n /** @internalapi */\n private _registerRoot() {\n let rootStateDef: StateDeclaration = {\n name: '',\n url: '^',\n views: null,\n params: {\n '#': { value: null, type: 'hash', dynamic: true }\n },\n abstract: true\n };\n\n let _root = this._root = this.stateQueue.register(rootStateDef);\n _root.navigable = null;\n }\n\n /** @internalapi */\n dispose() {\n this.stateQueue.dispose();\n this.listeners = [];\n this.get().forEach(state => this.get(state) && this.deregister(state));\n }\n\n /**\n * Listen for a State Registry events\n *\n * Adds a callback that is invoked when states are registered or deregistered with the StateRegistry.\n *\n * #### Example:\n * ```js\n * let allStates = registry.get();\n *\n * // Later, invoke deregisterFn() to remove the listener\n * let deregisterFn = registry.onStatesChanged((event, states) => {\n * switch(event) {\n * case: 'registered':\n * states.forEach(state => allStates.push(state));\n * break;\n * case: 'deregistered':\n * states.forEach(state => {\n * let idx = allStates.indexOf(state);\n * if (idx !== -1) allStates.splice(idx, 1);\n * });\n * break;\n * }\n * });\n * ```\n *\n * @param listener a callback function invoked when the registered states changes.\n * The function receives two parameters, `event` and `state`.\n * See [[StateRegistryListener]]\n * @return a function that deregisters the listener\n */\n onStatesChanged(listener: StateRegistryListener): () => void {\n this.listeners.push(listener);\n return function deregisterListener() {\n removeFrom(this.listeners)(listener);\n }.bind(this);\n }\n\n /**\n * Gets the implicit root state\n *\n * Gets the root of the state tree.\n * The root state is implicitly created by UI-Router.\n * Note: this returns the internal [[StateObject]] representation, not a [[StateDeclaration]]\n *\n * @return the root [[StateObject]]\n */\n root() {\n return this._root;\n }\n\n /**\n * Adds a state to the registry\n *\n * Registers a [[StateDeclaration]] or queues it for registration.\n *\n * Note: a state will be queued if the state's parent isn't yet registered.\n *\n * @param stateDefinition the definition of the state to register.\n * @returns the internal [[StateObject]] object.\n * If the state was successfully registered, then the object is fully built (See: [[StateBuilder]]).\n * If the state was only queued, then the object is not fully built.\n */\n register(stateDefinition: _StateDeclaration): StateObject {\n return this.stateQueue.register(stateDefinition);\n }\n\n /** @hidden */\n private _deregisterTree(state: StateObject) {\n let all = this.get().map(s => s.$$state());\n const getChildren = (states: StateObject[]) => {\n let children = all.filter(s => states.indexOf(s.parent) !== -1);\n return children.length === 0 ? children : children.concat(getChildren(children));\n };\n\n let children = getChildren([state]);\n let deregistered: StateObject[] = [state].concat(children).reverse();\n\n deregistered.forEach(state => {\n let $ur = this._router.urlRouter;\n // Remove URL rule\n $ur.rules().filter(propEq(\"state\", state)).forEach($ur.removeRule.bind($ur));\n // Remove state from registry\n delete this.states[state.name];\n });\n\n return deregistered;\n }\n\n /**\n * Removes a state from the registry\n *\n * This removes a state from the registry.\n * If the state has children, they are are also removed from the registry.\n *\n * @param stateOrName the state's name or object representation\n * @returns {StateObject[]} a list of removed states\n */\n deregister(stateOrName: StateOrName) {\n let _state = this.get(stateOrName);\n if (!_state) throw new Error(\"Can't deregister state; not found: \" + stateOrName);\n let deregisteredStates = this._deregisterTree(_state.$$state());\n\n this.listeners.forEach(listener => listener(\"deregistered\", deregisteredStates.map(s => s.self)));\n return deregisteredStates;\n }\n\n /**\n * Gets all registered states\n *\n * Calling this method with no arguments will return a list of all the states that are currently registered.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @return a list of [[StateDeclaration]]s\n */\n get(): StateDeclaration[];\n\n /**\n * Gets a registered state\n *\n * Given a state or a name, finds and returns the [[StateDeclaration]] from the registry.\n * Note: this does not return states that are *queued* but not yet registered.\n *\n * @param stateOrName either the name of a state, or a state object.\n * @param base the base state to use when stateOrName is relative.\n * @return a registered [[StateDeclaration]] that matched the `stateOrName`, or null if the state isn't registered.\n */\n get(stateOrName: StateOrName, base?: StateOrName): StateDeclaration;\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n if (arguments.length === 0)\n return Object.keys(this.states).map(name => this.states[name].self);\n let found = this.matcher.find(stateOrName, base);\n return found && found.self || null;\n }\n\n decorator(name: string, func: BuilderFunction) {\n return this.builder.builder(name, func);\n }\n}\n", + "/**\n * @internalapi\n * @module url\n */ /** for typedoc */\nimport { forEach, extend } from \"../common/common\";\nimport { isObject, isDefined, isFunction, isString } from \"../common/predicates\";\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { Param, DefType } from \"../params/param\";\nimport { ParamTypes } from \"../params/paramTypes\";\nimport { ParamTypeDefinition } from \"../params/interface\";\nimport { Disposable } from \"../interface\";\nimport { ParamType } from \"../params/paramType\";\nimport { ParamFactory, UrlMatcherConfig } from \"./interface\";\n\n/**\n * Factory for [[UrlMatcher]] instances.\n *\n * The factory is available to ng1 services as\n * `$urlMatcherFactory` or ng1 providers as `$urlMatcherFactoryProvider`.\n */\nexport class UrlMatcherFactory implements Disposable, UrlMatcherConfig {\n /** @hidden */ paramTypes = new ParamTypes();\n /** @hidden */ _isCaseInsensitive: boolean = false;\n /** @hidden */ _isStrictMode: boolean = true;\n /** @hidden */ _defaultSquashPolicy: (boolean|string) = false;\n\n constructor() {\n extend(this, { UrlMatcher, Param });\n }\n\n /** @inheritdoc */\n caseInsensitive(value?: boolean): boolean {\n return this._isCaseInsensitive = isDefined(value) ? value : this._isCaseInsensitive;\n }\n\n /** @inheritdoc */\n strictMode(value?: boolean): boolean {\n return this._isStrictMode = isDefined(value) ? value : this._isStrictMode;\n }\n\n /** @inheritdoc */\n defaultSquashPolicy(value?: (boolean|string)) {\n if (isDefined(value) && value !== true && value !== false && !isString(value))\n throw new Error(`Invalid squash policy: ${value}. Valid policies: false, true, arbitrary-string`);\n return this._defaultSquashPolicy = isDefined(value) ? value : this._defaultSquashPolicy;\n }\n\n /** @hidden */\n private _getConfig = (config) =>\n extend({ strict: this._isStrictMode, caseInsensitive: this._isCaseInsensitive }, config);\n\n /**\n * Creates a [[UrlMatcher]] for the specified pattern.\n *\n * @param pattern The URL pattern.\n * @param config The config object hash.\n * @returns The UrlMatcher.\n */\n compile(pattern: string, config?: { [key: string]: any }) {\n return new UrlMatcher(pattern, this.paramTypes, this.paramFactory, this._getConfig(config));\n }\n\n /**\n * Returns true if the specified object is a [[UrlMatcher]], or false otherwise.\n *\n * @param object The object to perform the type check against.\n * @returns `true` if the object matches the `UrlMatcher` interface, by\n * implementing all the same methods.\n */\n isMatcher(object: any): boolean {\n // TODO: typeof?\n if (!isObject(object)) return false;\n let result = true;\n\n forEach(UrlMatcher.prototype, (val, name) => {\n if (isFunction(val)) result = result && (isDefined(object[name]) && isFunction(object[name]));\n });\n return result;\n };\n\n /**\n * Creates and registers a custom [[ParamType]] object\n *\n * A [[ParamType]] can be used to generate URLs with typed parameters.\n *\n * @param name The type name.\n * @param definition The type definition. See [[ParamTypeDefinition]] for information on the values accepted.\n * @param definitionFn A function that is injected before the app runtime starts.\n * The result of this function should be a [[ParamTypeDefinition]].\n * The result is merged into the existing `definition`.\n * See [[ParamType]] for information on the values accepted.\n *\n * @returns - if a type was registered: the [[UrlMatcherFactory]]\n * - if only the `name` parameter was specified: the currently registered [[ParamType]] object, or undefined\n *\n * Note: Register custom types *before using them* in a state definition.\n *\n * See [[ParamTypeDefinition]] for examples\n */\n type(name: string, definition?: ParamTypeDefinition, definitionFn?: () => ParamTypeDefinition) {\n let type = this.paramTypes.type(name, definition, definitionFn);\n return !isDefined(definition) ? type : this;\n };\n\n /** @hidden */\n $get() {\n this.paramTypes.enqueue = false;\n this.paramTypes._flushTypeQueue();\n return this;\n };\n\n /** @internalapi Creates a new [[Param]] for a given location (DefType) */\n paramFactory: ParamFactory = {\n /** Creates a new [[Param]] from a CONFIG block */\n fromConfig: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.CONFIG, this),\n\n /** Creates a new [[Param]] from a url PATH */\n fromPath: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.PATH, this),\n\n /** Creates a new [[Param]] from a url SEARCH */\n fromSearch: (id: string, type: ParamType, config: any) =>\n new Param(id, type, config, DefType.SEARCH, this),\n };\n\n /** @internalapi */\n dispose() {\n this.paramTypes.dispose();\n }\n}\n", + "/**\n * @coreapi\n * @module url\n */ /** */\nimport { UrlMatcher } from \"./urlMatcher\";\nimport { isString, isDefined, isFunction, isState } from \"../common/predicates\";\nimport { UIRouter } from \"../router\";\nimport { identity, extend } from \"../common/common\";\nimport { is, pattern } from \"../common/hof\";\nimport { StateObject } from \"../state/stateObject\";\nimport { RawParams } from \"../params/interface\";\nimport {\n UrlRule, UrlRuleMatchFn, UrlRuleHandlerFn, UrlRuleType, UrlParts, MatcherUrlRule, StateRule, RegExpRule\n} from \"./interface\";\n\n/**\n * Creates a [[UrlRule]]\n *\n * Creates a [[UrlRule]] from a:\n *\n * - `string`\n * - [[UrlMatcher]]\n * - `RegExp`\n * - [[StateObject]]\n * @internalapi\n */\nexport class UrlRuleFactory {\n constructor(public router: UIRouter) { }\n\n compile(str: string) {\n return this.router.urlMatcherFactory.compile(str);\n }\n\n static isUrlRule = obj =>\n obj && ['type', 'match', 'handler'].every(key => isDefined(obj[key]));\n\n create(what: string|UrlMatcher|StateObject|RegExp|UrlRuleMatchFn, handler?: string|UrlRuleHandlerFn): UrlRule {\n const makeRule = pattern([\n [isString, (_what: string) => makeRule(this.compile(_what))],\n [is(UrlMatcher), (_what: UrlMatcher) => this.fromUrlMatcher(_what, handler)],\n [isState, (_what: StateObject) => this.fromState(_what, this.router)],\n [is(RegExp), (_what: RegExp) => this.fromRegExp(_what, handler)],\n [isFunction, (_what: UrlRuleMatchFn) => new BaseUrlRule(_what, handler as UrlRuleHandlerFn)],\n ]);\n\n let rule = makeRule(what);\n if (!rule) throw new Error(\"invalid 'what' in when()\");\n return rule;\n }\n\n /**\n * A UrlRule which matches based on a UrlMatcher\n *\n * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, match => \"/home/\" + match.fooId + \"/\" + match.barId);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n *\n * ## Handler as UrlMatcher\n *\n * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.\n * The `handler` UrlMatcher is formatted using the matched param from the first matcher.\n * The url is replaced with the result.\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var handler = $umf.compile(\"/home/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, handler);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n */\n fromUrlMatcher(urlMatcher: UrlMatcher, handler: string|UrlMatcher|UrlRuleHandlerFn): MatcherUrlRule {\n let _handler: UrlRuleHandlerFn = handler as any;\n if (isString(handler)) handler = this.router.urlMatcherFactory.compile(handler);\n if (is(UrlMatcher)(handler)) _handler = (match: RawParams) => (handler as UrlMatcher).format(match);\n\n function match(url: UrlParts) {\n let match = urlMatcher.exec(url.path, url.search, url.hash);\n return urlMatcher.validates(match) && match;\n }\n\n // Prioritize URLs, lowest to highest:\n // - Some optional URL parameters, but none matched\n // - No optional parameters in URL\n // - Some optional parameters, some matched\n // - Some optional parameters, all matched\n function matchPriority(params: RawParams): number {\n let optional = urlMatcher.parameters().filter(param => param.isOptional);\n if (!optional.length) return 0.000001;\n let matched = optional.filter(param => params[param.id]);\n return matched.length / optional.length;\n }\n\n let details = { urlMatcher, matchPriority, type: \"URLMATCHER\" };\n return extend(new BaseUrlRule(match, _handler), details) as MatcherUrlRule;\n }\n\n\n /**\n * A UrlRule which matches a state by its url\n *\n * #### Example:\n * ```js\n * var rule = factory.fromState($state.get('foo'), router);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match);\n * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }\n * ```\n */\n fromState(state: StateObject, router: UIRouter): StateRule {\n /**\n * Handles match by transitioning to matched state\n *\n * First checks if the router should start a new transition.\n * A new transition is not required if the current state's URL\n * and the new URL are already identical\n */\n const handler = (match: RawParams) => {\n let $state = router.stateService;\n let globals = router.globals;\n if ($state.href(state, match) !== $state.href(globals.current, globals.params)) {\n $state.transitionTo(state, match, { inherit: true, source: \"url\" });\n }\n };\n\n let details = { state, type: \"STATE\" };\n return extend(this.fromUrlMatcher(state.url, handler), details) as StateRule;\n }\n\n /**\n * A UrlRule which matches based on a regular expression\n *\n * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - regexp match array (from `regexp`)\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, match => \"/home/\" + match[1])\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n *\n * ## Handler as string\n *\n * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.\n * The string is first interpolated using `string.replace()` style pattern.\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, \"/home/$1\")\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n */\n fromRegExp(regexp: RegExp, handler: string|UrlRuleHandlerFn): RegExpRule {\n if (regexp.global || regexp.sticky) throw new Error(\"Rule RegExp must not be global or sticky\");\n\n /**\n * If handler is a string, the url will be replaced by the string.\n * If the string has any String.replace() style variables in it (like `$2`),\n * they will be replaced by the captures from [[match]]\n */\n const redirectUrlTo = (match: RegExpExecArray) =>\n // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern\n (handler as string).replace(/\\$(\\$|\\d{1,2})/, (m, what) =>\n match[what === '$' ? 0 : Number(what)]);\n\n const _handler = isString(handler) ? redirectUrlTo : handler;\n\n const match = (url: UrlParts): RegExpExecArray =>\n regexp.exec(url.path);\n\n let details = { regexp, type: \"REGEXP\" };\n return extend(new BaseUrlRule(match, _handler), details) as RegExpRule\n }\n}\n\n/**\n * A base rule which calls `match`\n *\n * The value from the `match` function is passed through to the `handler`.\n * @internalapi\n */\nexport class BaseUrlRule implements UrlRule {\n $id: number;\n priority: number;\n type: UrlRuleType = \"RAW\";\n handler: UrlRuleHandlerFn;\n matchPriority = (match) => 0 - this.$id;\n\n constructor(public match: UrlRuleMatchFn, handler?: UrlRuleHandlerFn) {\n this.handler = handler || identity;\n }\n}", + "/**\n * @coreapi\n * @module view\n */ /** for typedoc */\nimport {equals, applyPairs, removeFrom, TypedMap} from \"../common/common\";\nimport {curry, prop} from \"../common/hof\";\nimport {isString, isArray} from \"../common/predicates\";\nimport {trace} from \"../common/trace\";\nimport {PathNode} from \"../path/pathNode\";\n\nimport {ActiveUIView, ViewContext, ViewConfig} from \"./interface\";\nimport {_ViewDeclaration} from \"../state/interface\";\n\nexport type ViewConfigFactory = (path: PathNode[], decl: _ViewDeclaration) => ViewConfig|ViewConfig[];\n\nexport interface ViewServicePluginAPI {\n _rootViewContext(context?: ViewContext): ViewContext;\n _viewConfigFactory(viewType: string, factory: ViewConfigFactory);\n _registeredUIViews(): ActiveUIView[];\n _activeViewConfigs(): ViewConfig[];\n}\n\n/**\n * The View service\n *\n * This service pairs existing `ui-view` components (which live in the DOM)\n * with view configs (from the state declaration objects: [[StateDeclaration.views]]).\n *\n * - After a successful Transition, the views from the newly entered states are activated via [[activateViewConfig]].\n * The views from exited states are deactivated via [[deactivateViewConfig]].\n * (See: the [[registerActivateViews]] Transition Hook)\n *\n * - As `ui-view` components pop in and out of existence, they register themselves using [[registerUIView]].\n *\n * - When the [[sync]] function is called, the registered `ui-view`(s) ([[ActiveUIView]])\n * are configured with the matching [[ViewConfig]](s)\n *\n */\nexport class ViewService {\n private _uiViews: ActiveUIView[] = [];\n private _viewConfigs: ViewConfig[] = [];\n private _rootContext: ViewContext;\n private _viewConfigFactories: { [key: string]: ViewConfigFactory } = {};\n\n constructor() { }\n\n public _pluginapi: ViewServicePluginAPI = {\n _rootViewContext: this._rootViewContext.bind(this),\n _viewConfigFactory: this._viewConfigFactory.bind(this),\n _registeredUIViews: () => this._uiViews,\n _activeViewConfigs: () => this._viewConfigs,\n };\n\n private _rootViewContext(context?: ViewContext): ViewContext {\n return this._rootContext = context || this._rootContext;\n };\n\n private _viewConfigFactory(viewType: string, factory: ViewConfigFactory) {\n this._viewConfigFactories[viewType] = factory;\n }\n\n createViewConfig(path: PathNode[], decl: _ViewDeclaration): ViewConfig[] {\n let cfgFactory = this._viewConfigFactories[decl.$type];\n if (!cfgFactory) throw new Error(\"ViewService: No view config factory registered for type \" + decl.$type);\n let cfgs = cfgFactory(path, decl);\n return isArray(cfgs) ? cfgs : [cfgs];\n }\n \n /**\n * Deactivates a ViewConfig.\n *\n * This function deactivates a `ViewConfig`.\n * After calling [[sync]], it will un-pair from any `ui-view` with which it is currently paired.\n *\n * @param viewConfig The ViewConfig view to deregister.\n */\n deactivateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"<- Removing\", viewConfig);\n removeFrom(this._viewConfigs, viewConfig);\n }\n\n activateViewConfig(viewConfig: ViewConfig) {\n trace.traceViewServiceEvent(\"-> Registering\", viewConfig);\n this._viewConfigs.push(viewConfig);\n }\n\n /**\n * Given a ui-view and a ViewConfig, determines if they \"match\".\n *\n * A ui-view has a fully qualified name (fqn) and a context object. The fqn is built from its overall location in\n * the DOM, describing its nesting relationship to any parent ui-view tags it is nested inside of.\n *\n * A ViewConfig has a target ui-view name and a context anchor. The ui-view name can be a simple name, or\n * can be a segmented ui-view path, describing a portion of a ui-view fqn.\n *\n * In order for a ui-view to match ViewConfig, ui-view's $type must match the ViewConfig's $type\n *\n * If the ViewConfig's target ui-view name is a simple name (no dots), then a ui-view matches if:\n * - the ui-view's name matches the ViewConfig's target name\n * - the ui-view's context matches the ViewConfig's anchor\n *\n * If the ViewConfig's target ui-view name is a segmented name (with dots), then a ui-view matches if:\n * - There exists a parent ui-view where:\n * - the parent ui-view's name matches the first segment (index 0) of the ViewConfig's target name\n * - the parent ui-view's context matches the ViewConfig's anchor\n * - And the remaining segments (index 1..n) of the ViewConfig's target name match the tail of the ui-view's fqn\n *\n * Example:\n *\n * DOM:\n * \n * \n * \n * \n * \n * \n * \n * \n *\n * uiViews: [\n * { fqn: \"$default\", creationContext: { name: \"\" } },\n * { fqn: \"$default.foo\", creationContext: { name: \"A\" } },\n * { fqn: \"$default.foo.$default\", creationContext: { name: \"A.B\" } }\n * { fqn: \"$default.foo.$default.bar\", creationContext: { name: \"A.B.C\" } }\n * ]\n *\n * These four view configs all match the ui-view with the fqn: \"$default.foo.$default.bar\":\n *\n * - ViewConfig1: { uiViewName: \"bar\", uiViewContextAnchor: \"A.B.C\" }\n * - ViewConfig2: { uiViewName: \"$default.bar\", uiViewContextAnchor: \"A.B\" }\n * - ViewConfig3: { uiViewName: \"foo.$default.bar\", uiViewContextAnchor: \"A\" }\n * - ViewConfig4: { uiViewName: \"$default.foo.$default.bar\", uiViewContextAnchor: \"\" }\n *\n * Using ViewConfig3 as an example, it matches the ui-view with fqn \"$default.foo.$default.bar\" because:\n * - The ViewConfig's segmented target name is: [ \"foo\", \"$default\", \"bar\" ]\n * - There exists a parent ui-view (which has fqn: \"$default.foo\") where:\n * - the parent ui-view's name \"foo\" matches the first segment \"foo\" of the ViewConfig's target name\n * - the parent ui-view's context \"A\" matches the ViewConfig's anchor context \"A\"\n * - And the remaining segments [ \"$default\", \"bar\" ].join(\".\"_ of the ViewConfig's target name match\n * the tail of the ui-view's fqn \"default.bar\"\n *\n * @internalapi\n */\n static matches = (uiViewsByFqn: TypedMap, uiView: ActiveUIView) => (viewConfig: ViewConfig) => {\n // Don't supply an ng1 ui-view with an ng2 ViewConfig, etc\n if (uiView.$type !== viewConfig.viewDecl.$type) return false;\n\n // Split names apart from both viewConfig and uiView into segments\n let vc = viewConfig.viewDecl;\n let vcSegments = vc.$uiViewName.split(\".\");\n let uivSegments = uiView.fqn.split(\".\");\n\n // Check if the tails of the segment arrays match. ex, these arrays' tails match:\n // vc: [\"foo\", \"bar\"], uiv fqn: [\"$default\", \"foo\", \"bar\"]\n if (!equals(vcSegments, uivSegments.slice(0 - vcSegments.length)))\n return false;\n\n // Now check if the fqn ending at the first segment of the viewConfig matches the context:\n // [\"$default\", \"foo\"].join(\".\") == \"$default.foo\", does the ui-view $default.foo context match?\n let negOffset = (1 - vcSegments.length) || undefined;\n let fqnToFirstSegment = uivSegments.slice(0, negOffset).join(\".\");\n let uiViewContext = uiViewsByFqn[fqnToFirstSegment].creationContext;\n return vc.$uiViewContextAnchor === (uiViewContext && uiViewContext.name);\n }\n\n sync() {\n let uiViewsByFqn: TypedMap =\n this._uiViews.map(uiv => [uiv.fqn, uiv]).reduce(applyPairs, {});\n\n // Return a weighted depth value for a uiView.\n // The depth is the nesting depth of ui-views (based on FQN; times 10,000)\n // plus the depth of the state that is populating the uiView\n function uiViewDepth(uiView: ActiveUIView) {\n const stateDepth = (context: ViewContext) =>\n context && context.parent ? stateDepth(context.parent) + 1 : 1;\n return (uiView.fqn.split(\".\").length * 10000) + stateDepth(uiView.creationContext);\n }\n\n // Return the ViewConfig's context's depth in the context tree.\n function viewConfigDepth(config: ViewConfig) {\n let context: ViewContext = config.viewDecl.$context, count = 0;\n while (++count && context.parent) context = context.parent;\n return count;\n }\n\n // Given a depth function, returns a compare function which can return either ascending or descending order\n const depthCompare = curry((depthFn, posNeg, left, right) => posNeg * (depthFn(left) - depthFn(right)));\n\n const matchingConfigPair = (uiView: ActiveUIView) => {\n let matchingConfigs = this._viewConfigs.filter(ViewService.matches(uiViewsByFqn, uiView));\n if (matchingConfigs.length > 1) {\n // This is OK. Child states can target a ui-view that the parent state also targets (the child wins)\n // Sort by depth and return the match from the deepest child\n // console.log(`Multiple matching view configs for ${uiView.fqn}`, matchingConfigs);\n matchingConfigs.sort(depthCompare(viewConfigDepth, -1)); // descending\n }\n return [uiView, matchingConfigs[0]];\n };\n\n const configureUIView = ([uiView, viewConfig]) => {\n // If a parent ui-view is reconfigured, it could destroy child ui-views.\n // Before configuring a child ui-view, make sure it's still in the active uiViews array.\n if (this._uiViews.indexOf(uiView) !== -1)\n uiView.configUpdated(viewConfig);\n };\n\n // Sort views by FQN and state depth. Process uiviews nearest the root first.\n const pairs = this._uiViews.sort(depthCompare(uiViewDepth, 1)).map(matchingConfigPair);\n\n trace.traceViewSync(pairs);\n\n pairs.forEach(configureUIView);\n };\n\n /**\n * Registers a `ui-view` component\n *\n * When a `ui-view` component is created, it uses this method to register itself.\n * After registration the [[sync]] method is used to ensure all `ui-view` are configured with the proper [[ViewConfig]].\n *\n * Note: the `ui-view` component uses the `ViewConfig` to determine what view should be loaded inside the `ui-view`,\n * and what the view's state context is.\n *\n * Note: There is no corresponding `deregisterUIView`.\n * A `ui-view` should hang on to the return value of `registerUIView` and invoke it to deregister itself.\n *\n * @param uiView The metadata for a UIView\n * @return a de-registration function used when the view is destroyed.\n */\n registerUIView(uiView: ActiveUIView) {\n trace.traceViewServiceUIViewEvent(\"-> Registering\", uiView);\n let uiViews = this._uiViews;\n const fqnAndTypeMatches = (uiv: ActiveUIView) => uiv.fqn === uiView.fqn && uiv.$type === uiView.$type;\n if (uiViews.filter(fqnAndTypeMatches).length)\n trace.traceViewServiceUIViewEvent(\"!!!! duplicate uiView named:\", uiView);\n\n uiViews.push(uiView);\n this.sync();\n\n return () => {\n let idx = uiViews.indexOf(uiView);\n if (idx === -1) {\n trace.traceViewServiceUIViewEvent(\"Tried removing non-registered uiView\", uiView);\n return;\n }\n trace.traceViewServiceUIViewEvent(\"<- Deregistering\", uiView);\n removeFrom(uiViews)(uiView);\n };\n };\n\n /**\n * Returns the list of views currently available on the page, by fully-qualified name.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n available() {\n return this._uiViews.map(prop(\"fqn\"));\n }\n\n /**\n * Returns the list of views on the page containing loaded content.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n active() {\n return this._uiViews.filter(prop(\"$config\")).map(prop(\"name\"));\n }\n\n /**\n * Normalizes a view's name from a state.views configuration block.\n *\n * This should be used by a framework implementation to calculate the values for\n * [[_ViewDeclaration.$uiViewName]] and [[_ViewDeclaration.$uiViewContextAnchor]].\n *\n * @param context the context object (state declaration) that the view belongs to\n * @param rawViewName the name of the view, as declared in the [[StateDeclaration.views]]\n *\n * @returns the normalized uiViewName and uiViewContextAnchor that the view targets\n */\n static normalizeUIViewTarget(context: ViewContext, rawViewName = \"\") {\n // TODO: Validate incoming view name with a regexp to allow:\n // ex: \"view.name@foo.bar\" , \"^.^.view.name\" , \"view.name@^.^\" , \"\" ,\n // \"@\" , \"$default@^\" , \"!$default.$default\" , \"!foo.bar\"\n let viewAtContext: string[] = rawViewName.split(\"@\");\n let uiViewName = viewAtContext[0] || \"$default\"; // default to unnamed view\n let uiViewContextAnchor = isString(viewAtContext[1]) ? viewAtContext[1] : \"^\"; // default to parent context\n\n // Handle relative view-name sugar syntax.\n // Matches rawViewName \"^.^.^.foo.bar\" into array: [\"^.^.^.foo.bar\", \"^.^.^\", \"foo.bar\"],\n let relativeViewNameSugar = /^(\\^(?:\\.\\^)*)\\.(.*$)/.exec(uiViewName);\n if (relativeViewNameSugar) {\n // Clobbers existing contextAnchor (rawViewName validation will fix this)\n uiViewContextAnchor = relativeViewNameSugar[1]; // set anchor to \"^.^.^\"\n uiViewName = relativeViewNameSugar[2]; // set view-name to \"foo.bar\"\n }\n\n if (uiViewName.charAt(0) === '!') {\n uiViewName = uiViewName.substr(1);\n uiViewContextAnchor = \"\"; // target absolutely from root\n }\n\n // handle parent relative targeting \"^.^.^\"\n let relativeMatch = /^(\\^(?:\\.\\^)*)$/;\n if (relativeMatch.exec(uiViewContextAnchor)) {\n let anchor = uiViewContextAnchor.split(\".\").reduce(((anchor, x) => anchor.parent), context);\n uiViewContextAnchor = anchor.name;\n } else if (uiViewContextAnchor === '.') {\n uiViewContextAnchor = context.name;\n }\n\n return {uiViewName, uiViewContextAnchor};\n }\n}", + "/**\n * @coreapi\n * @module core\n */ /** */\nimport {StateParams} from \"./params/stateParams\";\nimport {StateDeclaration} from \"./state/interface\";\nimport {StateObject} from \"./state/stateObject\";\nimport {Transition} from \"./transition/transition\";\nimport {Queue} from \"./common/queue\";\nimport { Disposable } from './interface';\n\n/**\n * Global router state\n *\n * This is where we hold the global mutable state such as current state, current\n * params, current transition, etc.\n */\nexport class UIRouterGlobals implements Disposable {\n /**\n * Current parameter values\n *\n * The parameter values from the latest successful transition\n */\n params: StateParams = new StateParams();\n\n /**\n * Current state\n *\n * The to-state from the latest successful transition\n */\n current: StateDeclaration;\n\n /**\n * Current state (internal object)\n *\n * The to-state from the latest successful transition\n * @internalapi\n */\n $current: StateObject;\n\n /**\n * The current started/running transition.\n * This transition has reached at least the onStart phase, but is not yet complete\n */\n transition: Transition;\n\n /** @internalapi */\n lastStartedTransitionId: number = -1;\n\n /** @internalapi */\n transitionHistory = new Queue([], 1);\n\n /** @internalapi */\n successfulTransitions = new Queue([], 1);\n\n dispose() {\n this.transitionHistory.clear();\n this.successfulTransitions.clear();\n this.transition = null;\n }\n}\n", + "/**\n * @coreapi\n * @module url\n */ /** */\n\nimport { UIRouter } from \"../router\";\nimport { LocationServices, notImplemented, LocationConfig } from \"../common/coreservices\";\nimport { noop, createProxyFunctions } from \"../common/common\";\nimport { UrlConfigApi, UrlSyncApi, UrlRulesApi, UrlParts, MatchResult } from \"./interface\";\n\n/** @hidden */\nconst makeStub = (keys: string[]): any =>\n keys.reduce((acc, key) => (acc[key] = notImplemented(key), acc), { dispose: noop });\n\n/** @hidden */ const locationServicesFns = [\"url\", \"path\", \"search\", \"hash\", \"onChange\"];\n/** @hidden */ const locationConfigFns = [\"port\", \"protocol\", \"host\", \"baseHref\", \"html5Mode\", \"hashPrefix\"];\n/** @hidden */ const umfFns = [\"type\", \"caseInsensitive\", \"strictMode\", \"defaultSquashPolicy\"];\n/** @hidden */ const rulesFns = [\"sort\", \"when\", \"initial\", \"otherwise\", \"rules\", \"rule\", \"removeRule\"];\n/** @hidden */ const syncFns = [\"deferIntercept\", \"listen\", \"sync\", \"match\"];\n\n/**\n * API for URL management\n */\nexport class UrlService implements LocationServices, UrlSyncApi {\n /** @hidden */\n static locationServiceStub: LocationServices = makeStub(locationServicesFns);\n /** @hidden */\n static locationConfigStub: LocationConfig = makeStub(locationConfigFns);\n\n /** @inheritdoc */\n url(): string;\n /** @inheritdoc */\n url(newurl: string, replace?: boolean, state?): void;\n url(newurl?, replace?, state?): any { return };\n /** @inheritdoc */\n path(): string { return };\n /** @inheritdoc */\n search(): { [key: string]: any } { return };\n /** @inheritdoc */\n hash(): string { return };\n /** @inheritdoc */\n onChange(callback: Function): Function { return };\n\n\n /**\n * Returns the current URL parts\n *\n * This method returns the current URL components as a [[UrlParts]] object.\n *\n * @returns the current url parts\n */\n parts(): UrlParts {\n return { path: this.path(), search: this.search(), hash: this.hash() }\n }\n\n dispose() { }\n\n /** @inheritdoc */\n sync(evt?) { return }\n /** @inheritdoc */\n listen(enabled?: boolean): Function { return };\n /** @inheritdoc */\n deferIntercept(defer?: boolean) { return }\n /** @inheritdoc */\n match(urlParts: UrlParts): MatchResult { return }\n\n /**\n * A nested API for managing URL rules and rewrites\n *\n * See: [[UrlRulesApi]] for details\n */\n rules: UrlRulesApi;\n\n /**\n * A nested API to configure the URL and retrieve URL information\n *\n * See: [[UrlConfigApi]] for details\n */\n config: UrlConfigApi;\n\n /** @hidden */\n private router: UIRouter;\n\n /** @hidden */\n constructor(router: UIRouter, lateBind = true) {\n this.router = router;\n this.rules = {} as any;\n this.config = {} as any;\n\n // proxy function calls from UrlService to the LocationService/LocationConfig\n const locationServices = () => router.locationService;\n createProxyFunctions(locationServices, this, locationServices, locationServicesFns, lateBind);\n\n const locationConfig = () => router.locationConfig;\n createProxyFunctions(locationConfig, this.config, locationConfig, locationConfigFns, lateBind);\n\n const umf = () => router.urlMatcherFactory;\n createProxyFunctions(umf, this.config, umf, umfFns);\n\n const urlRouter = () => router.urlRouter;\n createProxyFunctions(urlRouter, this.rules, urlRouter, rulesFns);\n createProxyFunctions(urlRouter, this, urlRouter, syncFns);\n }\n}\n", + "/**\n * @coreapi\n * @module core\n */ /** */\nimport { UrlMatcherFactory } from \"./url/urlMatcherFactory\";\nimport { UrlRouter } from \"./url/urlRouter\";\nimport { TransitionService } from \"./transition/transitionService\";\nimport { ViewService } from \"./view/view\";\nimport { StateRegistry } from \"./state/stateRegistry\";\nimport { StateService } from \"./state/stateService\";\nimport { UIRouterGlobals } from \"./globals\";\nimport { UIRouterPlugin, Disposable } from \"./interface\";\nimport { values, removeFrom } from \"./common/common\";\nimport { isFunction } from \"./common/predicates\";\nimport { UrlService } from \"./url/urlService\";\nimport { LocationServices, LocationConfig } from \"./common/coreservices\";\nimport { Trace, trace } from \"./common/trace\";\n\n/** @hidden */\nlet _routerInstance = 0;\n\n/**\n * The master class used to instantiate an instance of UI-Router.\n *\n * UI-Router (for each specific framework) will create an instance of this class during bootstrap.\n * This class instantiates and wires the UI-Router services together.\n *\n * After a new instance of the UIRouter class is created, it should be configured for your app.\n * For instance, app states should be registered with the [[UIRouter.stateRegistry]].\n *\n * ---\n *\n * Normally the framework code will bootstrap UI-Router.\n * If you are bootstrapping UIRouter manually, tell it to monitor the URL by calling\n * [[UrlService.listen]] then [[UrlService.sync]].\n */\nexport class UIRouter {\n /** @hidden */ $id = _routerInstance++;\n /** @hidden */ _disposed = false;\n /** @hidden */ private _disposables: Disposable[] = [];\n\n /** Provides trace information to the console */\n trace: Trace = trace;\n\n /** Provides services related to ui-view synchronization */\n viewService = new ViewService();\n\n /** Provides services related to Transitions */\n transitionService: TransitionService = new TransitionService(this);\n\n /** Global router state */\n globals: UIRouterGlobals = new UIRouterGlobals();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlMatcherFactory: UrlMatcherFactory = new UrlMatcherFactory();\n\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n urlRouter: UrlRouter = new UrlRouter(this);\n\n /** Provides a registry for states, and related registration services */\n stateRegistry: StateRegistry = new StateRegistry(this);\n\n /** Provides services related to states */\n stateService = new StateService(this);\n\n /** Provides services related to the URL */\n urlService: UrlService = new UrlService(this);\n\n\n /** Registers an object to be notified when the router is disposed */\n disposable(disposable: Disposable) {\n this._disposables.push(disposable);\n }\n\n /**\n * Disposes this router instance\n *\n * When called, clears resources retained by the router by calling `dispose(this)` on all\n * registered [[disposable]] objects.\n *\n * Or, if a `disposable` object is provided, calls `dispose(this)` on that object only.\n *\n * @param disposable (optional) the disposable to dispose\n */\n dispose(disposable?: any): void {\n if (disposable && isFunction(disposable.dispose)) {\n disposable.dispose(this);\n return undefined;\n }\n\n this._disposed = true;\n this._disposables.slice().forEach(d => {\n try {\n typeof d.dispose === 'function' && d.dispose(this);\n removeFrom(this._disposables, d);\n } catch (ignored) {}\n });\n }\n\n /**\n * Creates a new `UIRouter` object\n *\n * @param locationService a [[LocationServices]] implementation\n * @param locationConfig a [[LocationConfig]] implementation\n * @internalapi\n */\n constructor(\n public locationService: LocationServices = UrlService.locationServiceStub,\n public locationConfig: LocationConfig = UrlService.locationConfigStub\n ) {\n\n this.viewService._pluginapi._rootViewContext(this.stateRegistry.root());\n this.globals.$current = this.stateRegistry.root();\n this.globals.current = this.globals.$current.self;\n\n this.disposable(this.globals);\n this.disposable(this.stateService);\n this.disposable(this.stateRegistry);\n this.disposable(this.transitionService);\n this.disposable(this.urlRouter);\n this.disposable(locationService);\n this.disposable(locationConfig);\n }\n\n /** @hidden */\n private _plugins: { [key: string]: UIRouterPlugin } = {};\n\n /** Add plugin (as ES6 class) */\n plugin(plugin: { new(router: UIRouter, options?: any): T }, options?: any): T;\n /** Add plugin (as javascript constructor function) */\n plugin(plugin: { (router: UIRouter, options?: any): void }, options?: any): T;\n /** Add plugin (as javascript factory function) */\n plugin(plugin: PluginFactory, options?: any): T;\n /**\n * Adds a plugin to UI-Router\n *\n * This method adds a UI-Router Plugin.\n * A plugin can enhance or change UI-Router behavior using any public API.\n *\n * #### Example:\n * ```js\n * import { MyCoolPlugin } from \"ui-router-cool-plugin\";\n *\n * var plugin = router.addPlugin(MyCoolPlugin);\n * ```\n *\n * ### Plugin authoring\n *\n * A plugin is simply a class (or constructor function) which accepts a [[UIRouter]] instance and (optionally) an options object.\n *\n * The plugin can implement its functionality using any of the public APIs of [[UIRouter]].\n * For example, it may configure router options or add a Transition Hook.\n *\n * The plugin can then be published as a separate module.\n *\n * #### Example:\n * ```js\n * export class MyAuthPlugin implements UIRouterPlugin {\n * constructor(router: UIRouter, options: any) {\n * this.name = \"MyAuthPlugin\";\n * let $transitions = router.transitionService;\n * let $state = router.stateService;\n *\n * let authCriteria = {\n * to: (state) => state.data && state.data.requiresAuth\n * };\n *\n * function authHook(transition: Transition) {\n * let authService = transition.injector().get('AuthService');\n * if (!authService.isAuthenticated()) {\n * return $state.target('login');\n * }\n * }\n *\n * $transitions.onStart(authCriteria, authHook);\n * }\n * }\n * ```\n *\n * @param plugin one of:\n * - a plugin class which implements [[UIRouterPlugin]]\n * - a constructor function for a [[UIRouterPlugin]] which accepts a [[UIRouter]] instance\n * - a factory function which accepts a [[UIRouter]] instance and returns a [[UIRouterPlugin]] instance\n * @param options options to pass to the plugin class/factory\n * @returns the registered plugin instance\n */\n plugin(plugin: any, options: any = {}): T {\n let pluginInstance = new plugin(this, options);\n if (!pluginInstance.name) throw new Error(\"Required property `name` missing on plugin: \" + pluginInstance);\n this._disposables.push(pluginInstance);\n return this._plugins[pluginInstance.name] = pluginInstance;\n }\n\n /**\n * Returns registered plugins\n *\n * Returns the registered plugin of the given `pluginName`.\n * If no `pluginName` is given, returns all registered plugins\n *\n * @param pluginName (optional) the name of the plugin to get\n * @return the named plugin (undefined if not found), or all plugins (if `pluginName` is omitted)\n */\n getPlugin(pluginName: string): UIRouterPlugin;\n getPlugin(): UIRouterPlugin[];\n getPlugin(pluginName?: string): UIRouterPlugin|UIRouterPlugin[] {\n return pluginName ? this._plugins[pluginName] : values(this._plugins);\n }\n}\n\n/** @internalapi */\nexport type PluginFactory = (router: UIRouter, options?: any) => T;\n", + "/** @module hooks */ /** */\nimport {isString, isFunction} from \"../common/predicates\"\nimport {Transition} from \"../transition/transition\";\nimport {services} from \"../common/coreservices\";\nimport {TargetState} from \"../state/targetState\";\nimport {TransitionService} from \"../transition/transitionService\";\nimport {TransitionHookFn} from \"../transition/interface\";\n\n/**\n * A [[TransitionHookFn]] that redirects to a different state or params\n *\n * Registered using `transitionService.onStart({ to: (state) => !!state.redirectTo }, redirectHook);`\n * \n * See [[StateDeclaration.redirectTo]]\n */\nconst redirectToHook: TransitionHookFn = (trans: Transition) => {\n let redirect = trans.to().redirectTo;\n if (!redirect) return;\n\n let $state = trans.router.stateService;\n\n function handleResult(result: any) {\n if (!result) return;\n if (result instanceof TargetState) return result;\n if (isString(result)) return $state.target( result, trans.params(), trans.options());\n if (result['state'] || result['params'])\n return $state.target(result['state'] || trans.to(), result['params'] || trans.params(), trans.options());\n }\n\n if (isFunction(redirect)) {\n return services.$q.when(redirect(trans)).then(handleResult);\n }\n return handleResult(redirect);\n};\n\nexport const registerRedirectToHook = (transitionService: TransitionService) =>\n transitionService.onStart({to: (state) => !!state.redirectTo}, redirectToHook);\n", + "/** @module hooks */\n/** for typedoc */\nimport { noop } from '../common/common';\nimport { Transition } from '../transition/transition';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { TransitionStateHookFn, TransitionHookFn } from '../transition/interface';\nimport { TransitionService } from '../transition/transitionService';\nimport { val } from '../common/hof';\nimport { StateDeclaration } from '../state/interface';\n\n/**\n * A [[TransitionHookFn]] which resolves all EAGER Resolvables in the To Path\n *\n * Registered using `transitionService.onStart({}, eagerResolvePath);`\n *\n * When a Transition starts, this hook resolves all the EAGER Resolvables, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst eagerResolvePath: TransitionHookFn = (trans: Transition) =>\n new ResolveContext(trans.treeChanges().to)\n .resolvePath(\"EAGER\", trans)\n .then(noop);\n\nexport const registerEagerResolvePath = (transitionService: TransitionService) =>\n transitionService.onStart({}, eagerResolvePath, {priority: 1000});\n\n/**\n * A [[TransitionHookFn]] which resolves all LAZY Resolvables for the state (and all its ancestors) in the To Path\n *\n * Registered using `transitionService.onEnter({ entering: () => true }, lazyResolveState);`\n *\n * When a State is being entered, this hook resolves all the Resolvables for this state, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nconst lazyResolveState: TransitionStateHookFn = (trans: Transition, state: StateDeclaration) =>\n new ResolveContext(trans.treeChanges().to)\n .subContext(state.$$state())\n .resolvePath(\"LAZY\", trans)\n .then(noop);\n\nexport const registerLazyResolveState = (transitionService: TransitionService) =>\n transitionService.onEnter({ entering: val(true) }, lazyResolveState, {priority: 1000});\n\n", + "/** @module hooks */ /** for typedoc */\nimport {noop} from \"../common/common\";\nimport {services} from \"../common/coreservices\";\nimport {Transition} from \"../transition/transition\";\nimport {ViewService} from \"../view/view\";\nimport {ViewConfig} from \"../view/interface\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n\n/**\n * A [[TransitionHookFn]] which waits for the views to load\n *\n * Registered using `transitionService.onStart({}, loadEnteringViews);`\n *\n * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.\n * In angular 1, this includes loading the templates.\n */\nconst loadEnteringViews: TransitionHookFn = (transition: Transition) => {\n let $q = services.$q;\n let enteringViews = transition.views(\"entering\");\n if (!enteringViews.length) return;\n return $q.all(enteringViews.map(view => $q.when(view.load()))).then(noop);\n};\n\nexport const registerLoadEnteringViews = (transitionService: TransitionService) =>\n transitionService.onFinish({}, loadEnteringViews);\n\n/**\n * A [[TransitionHookFn]] which activates the new views when a transition is successful.\n *\n * Registered using `transitionService.onSuccess({}, activateViews);`\n *\n * After a transition is complete, this hook deactivates the old views from the previous state,\n * and activates the new views from the destination state.\n *\n * See [[ViewService]]\n */\nconst activateViews: TransitionHookFn = (transition: Transition) => {\n let enteringViews = transition.views(\"entering\");\n let exitingViews = transition.views(\"exiting\");\n if (!enteringViews.length && !exitingViews.length) return;\n\n let $view: ViewService = transition.router.viewService;\n\n exitingViews.forEach((vc: ViewConfig) => $view.deactivateViewConfig(vc));\n enteringViews.forEach((vc: ViewConfig) => $view.activateViewConfig(vc));\n\n $view.sync();\n};\n\nexport const registerActivateViews = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, activateViews);\n", + "/** @module hooks */\n/** for typedoc */\nimport { Transition } from '../transition/transition';\nimport { copy } from '../common/common';\nimport { TransitionService } from '../transition/transitionService';\n\n/**\n * A [[TransitionHookFn]] which updates global UI-Router state\n *\n * Registered using `transitionService.onBefore({}, updateGlobalState);`\n *\n * Before a [[Transition]] starts, updates the global value of \"the current transition\" ([[Globals.transition]]).\n * After a successful [[Transition]], updates the global values of \"the current state\"\n * ([[Globals.current]] and [[Globals.$current]]) and \"the current param values\" ([[Globals.params]]).\n *\n * See also the deprecated properties:\n * [[StateService.transition]], [[StateService.current]], [[StateService.params]]\n */\nconst updateGlobalState = (trans: Transition) => {\n let globals = trans.router.globals;\n\n const transitionSuccessful = () => {\n globals.successfulTransitions.enqueue(trans);\n globals.$current = trans.$to();\n globals.current = globals.$current.self;\n\n copy(trans.params(), globals.params);\n };\n\n const clearCurrentTransition = () => {\n // Do not clear globals.transition if a different transition has started in the meantime\n if (globals.transition === trans) globals.transition = null;\n };\n\n trans.onSuccess({}, transitionSuccessful, { priority: 10000 });\n trans.promise.then(clearCurrentTransition, clearCurrentTransition);\n};\n\nexport const registerUpdateGlobalState = (transitionService: TransitionService) =>\n transitionService.onCreate({}, updateGlobalState);\n", + "/** @module hooks */ /** */\nimport {UrlRouter} from \"../url/urlRouter\";\nimport {StateService} from \"../state/stateService\";\nimport {Transition} from \"../transition/transition\";\nimport {TransitionHookFn} from \"../transition/interface\";\nimport {TransitionService} from \"../transition/transitionService\";\n\n/** \n * A [[TransitionHookFn]] which updates the URL after a successful transition\n * \n * Registered using `transitionService.onSuccess({}, updateUrl);`\n */\nconst updateUrl: TransitionHookFn = (transition: Transition) => {\n let options = transition.options();\n let $state: StateService = transition.router.stateService;\n let $urlRouter: UrlRouter = transition.router.urlRouter;\n\n // Dont update the url in these situations:\n // The transition was triggered by a URL sync (options.source === 'url')\n // The user doesn't want the url to update (options.location === false)\n // The destination state, and all parents have no navigable url\n if (options.source !== 'url' && options.location && $state.$current.navigable) {\n var urlOptions = {replace: options.location === 'replace'};\n $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);\n }\n\n $urlRouter.update(true);\n};\n\nexport const registerUpdateUrl = (transitionService: TransitionService) =>\n transitionService.onSuccess({}, updateUrl, {priority: 9999});\n", + "/** @module transition */ /** */\nimport { TransitionHookPhase, PathType } from \"./interface\";\nimport { GetErrorHandler, GetResultHandler, TransitionHook } from \"./transitionHook\";\n/**\n * This class defines a type of hook, such as `onBefore` or `onEnter`.\n * Plugins can define custom hook types, such as sticky states does for `onInactive`.\n *\n * @interalapi\n */\nexport class TransitionEventType {\n\n constructor(public name: string,\n public hookPhase: TransitionHookPhase,\n public hookOrder: number,\n public criteriaMatchPath: PathType,\n public reverseSort: boolean = false,\n public getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n public getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n public synchronous: boolean = false,\n ) { }\n}\n", + "/**\n * @coreapi\n * @module transition\n */\n/** for typedoc */\nimport {\n IHookRegistry, TransitionOptions, TransitionHookScope, TransitionHookPhase, TransitionCreateHookFn, HookMatchCriteria,\n HookRegOptions, PathTypes, PathType, RegisteredHooks, TransitionHookFn, TransitionStateHookFn\n} from \"./interface\";\nimport { Transition } from \"./transition\";\nimport { makeEvent, RegisteredHook } from \"./hookRegistry\";\nimport { TargetState } from \"../state/targetState\";\nimport { PathNode } from \"../path/pathNode\";\nimport { ViewService } from \"../view/view\";\nimport { UIRouter } from \"../router\";\nimport { registerAddCoreResolvables } from \"../hooks/coreResolvables\";\nimport { registerRedirectToHook } from \"../hooks/redirectTo\";\nimport { registerOnExitHook, registerOnRetainHook, registerOnEnterHook } from \"../hooks/onEnterExitRetain\";\nimport { registerEagerResolvePath, registerLazyResolveState } from \"../hooks/resolve\";\nimport { registerLoadEnteringViews, registerActivateViews } from \"../hooks/views\";\nimport { registerUpdateGlobalState } from \"../hooks/updateGlobals\";\nimport { registerUpdateUrl } from \"../hooks/url\";\nimport { registerLazyLoadHook } from \"../hooks/lazyLoad\";\nimport { TransitionEventType } from \"./transitionEventType\";\nimport { TransitionHook, GetResultHandler, GetErrorHandler } from \"./transitionHook\";\nimport { isDefined } from \"../common/predicates\";\nimport { removeFrom, values, createProxyFunctions } from \"../common/common\";\nimport { Disposable } from \"../interface\"; // has or is using\nimport { val } from \"../common/hof\";\nimport { registerIgnoredTransitionHook } from '../hooks/ignoredTransition';\nimport { registerInvalidTransitionHook } from '../hooks/invalidTransition';\n\n/**\n * The default [[Transition]] options.\n *\n * Include this object when applying custom defaults:\n * let reloadOpts = { reload: true, notify: true }\n * let options = defaults(theirOpts, customDefaults, defaultOptions);\n */\nexport let defaultTransOpts: TransitionOptions = {\n location : true,\n relative : null,\n inherit : false,\n notify : true,\n reload : false,\n custom : {},\n current : () => null,\n source : \"unknown\"\n};\n\n\n/**\n * Plugin API for Transition Service\n * @internalapi\n */\nexport interface TransitionServicePluginAPI {\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n */\n _definePathType(name: string, hookScope: TransitionHookScope);\n\n /**\n * Gets a Path definition used as a criterion against a TreeChanges path\n */\n _getPathTypes(): PathTypes;\n\n /**\n * Defines a transition hook type and returns a transition hook registration\n * function (which can then be used to register hooks of this type).\n */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort?: boolean,\n getResultHandler?: GetResultHandler,\n getErrorHandler?: GetErrorHandler,\n rejectIfSuperseded?: boolean);\n\n /**\n * Returns the known event types, such as `onBefore`\n * If a phase argument is provided, returns only events for the given phase.\n */\n _getEvents(phase?: TransitionHookPhase): TransitionEventType[];\n\n /** Returns the hooks registered for the given hook name */\n getHooks(hookName: string): RegisteredHook[];\n}\n\n/**\n * This class provides services related to Transitions.\n *\n * - Most importantly, it allows global Transition Hooks to be registered.\n * - It allows the default transition error handler to be set.\n * - It also has a factory function for creating new [[Transition]] objects, (used internally by the [[StateService]]).\n *\n * At bootstrap, [[UIRouter]] creates a single instance (singleton) of this class.\n */\nexport class TransitionService implements IHookRegistry, Disposable {\n /** @hidden */\n _transitionCount = 0;\n\n /**\n * Registers a [[TransitionHookFn]], called *while a transition is being constructed*.\n *\n * Registers a transition lifecycle hook, which is invoked during transition construction.\n *\n * This low level hook should only be used by plugins.\n * This can be a useful time for plugins to add resolves or mutate the transition as needed.\n * The Sticky States plugin uses this hook to modify the treechanges.\n *\n * ### Lifecycle\n *\n * `onCreate` hooks are invoked *while a transition is being constructed*.\n *\n * ### Return value\n *\n * The hook's return value is ignored\n *\n * @internalapi\n * @param criteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @param options the registration options\n * @returns a function which deregisters the hook.\n */\n onCreate(criteria: HookMatchCriteria, callback: TransitionCreateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onBefore(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onStart(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onExit(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onRetain(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onEnter(criteria: HookMatchCriteria, callback: TransitionStateHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onFinish(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onSuccess(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n /** @inheritdoc */\n onError(criteria: HookMatchCriteria, callback: TransitionHookFn, options?: HookRegOptions): Function { return }\n\n /** @hidden */\n public $view: ViewService;\n\n /** @hidden The transition hook types, such as `onEnter`, `onStart`, etc */\n private _eventTypes: TransitionEventType[] = [];\n /** @hidden The registered transition hooks */\n _registeredHooks = { } as RegisteredHooks;\n /** @hidden The paths on a criteria object */\n private _criteriaPaths = { } as PathTypes;\n /** @hidden */\n private _router: UIRouter;\n\n /** @internalapi */\n _pluginapi: TransitionServicePluginAPI;\n\n /**\n * This object has hook de-registration functions for the built-in hooks.\n * This can be used by third parties libraries that wish to customize the behaviors\n *\n * @hidden\n */\n _deregisterHookFns: {\n addCoreResolves: Function;\n ignored: Function;\n invalid: Function;\n redirectTo: Function;\n onExit: Function;\n onRetain: Function;\n onEnter: Function;\n eagerResolve: Function;\n lazyResolve: Function;\n loadViews: Function;\n activateViews: Function;\n updateGlobals: Function;\n updateUrl: Function;\n lazyLoad: Function;\n };\n\n /** @hidden */\n constructor(_router: UIRouter) {\n this._router = _router;\n this.$view = _router.viewService;\n this._deregisterHookFns = {};\n this._pluginapi = createProxyFunctions(val(this), {}, val(this), [\n '_definePathType',\n '_defineEvent',\n '_getPathTypes',\n '_getEvents',\n 'getHooks',\n ]);\n\n this._defineCorePaths();\n this._defineCoreEvents();\n this._registerCoreTransitionHooks();\n }\n\n /**\n * dispose\n * @internalapi\n */\n dispose(router: UIRouter) {\n values(this._registeredHooks).forEach((hooksArray: RegisteredHook[]) => hooksArray.forEach(hook => {\n hook._deregistered = true;\n removeFrom(hooksArray, hook);\n }));\n }\n\n /**\n * Creates a new [[Transition]] object\n *\n * This is a factory function for creating new Transition objects.\n * It is used internally by the [[StateService]] and should generally not be called by application code.\n *\n * @param fromPath the path to the current state (the from state)\n * @param targetState the target state (destination)\n * @returns a Transition\n */\n create(fromPath: PathNode[], targetState: TargetState): Transition {\n return new Transition(fromPath, targetState, this._router);\n }\n\n /** @hidden */\n private _defineCoreEvents() {\n const Phase = TransitionHookPhase;\n const TH = TransitionHook;\n const paths = this._criteriaPaths;\n const NORMAL_SORT = false, REVERSE_SORT = true;\n const ASYNCHRONOUS = false, SYNCHRONOUS = true;\n\n this._defineEvent(\"onCreate\", Phase.CREATE, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.THROW_ERROR, SYNCHRONOUS);\n\n this._defineEvent(\"onBefore\", Phase.BEFORE, 0, paths.to);\n\n this._defineEvent(\"onStart\", Phase.RUN, 0, paths.to);\n this._defineEvent(\"onExit\", Phase.RUN, 100, paths.exiting, REVERSE_SORT);\n this._defineEvent(\"onRetain\", Phase.RUN, 200, paths.retained);\n this._defineEvent(\"onEnter\", Phase.RUN, 300, paths.entering);\n this._defineEvent(\"onFinish\", Phase.RUN, 400, paths.to);\n\n this._defineEvent(\"onSuccess\", Phase.SUCCESS, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n this._defineEvent(\"onError\", Phase.ERROR, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n }\n\n /** @hidden */\n private _defineCorePaths() {\n const { STATE, TRANSITION } = TransitionHookScope;\n\n this._definePathType(\"to\", TRANSITION);\n this._definePathType(\"from\", TRANSITION);\n this._definePathType(\"exiting\", STATE);\n this._definePathType(\"retained\", STATE);\n this._definePathType(\"entering\", STATE);\n }\n\n /** @hidden */\n _defineEvent(name: string,\n hookPhase: TransitionHookPhase,\n hookOrder: number,\n criteriaMatchPath: PathType,\n reverseSort: boolean = false,\n getResultHandler: GetResultHandler = TransitionHook.HANDLE_RESULT,\n getErrorHandler: GetErrorHandler = TransitionHook.REJECT_ERROR,\n synchronous: boolean = false)\n {\n let eventType = new TransitionEventType(name, hookPhase, hookOrder, criteriaMatchPath, reverseSort, getResultHandler, getErrorHandler, synchronous);\n\n this._eventTypes.push(eventType);\n makeEvent(this, this, eventType);\n };\n\n /** @hidden */\n private _getEvents(phase?: TransitionHookPhase): TransitionEventType[] {\n let transitionHookTypes = isDefined(phase) ?\n this._eventTypes.filter(type => type.hookPhase === phase) :\n this._eventTypes.slice();\n\n return transitionHookTypes.sort((l, r) => {\n let cmpByPhase = l.hookPhase - r.hookPhase;\n return cmpByPhase === 0 ? l.hookOrder - r.hookOrder : cmpByPhase;\n })\n }\n\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n *\n * @hidden\n */\n private _definePathType(name: string, hookScope: TransitionHookScope) {\n this._criteriaPaths[name] = { name, scope: hookScope };\n }\n\n /** * @hidden */\n private _getPathTypes(): PathTypes {\n return this._criteriaPaths;\n }\n\n /** @hidden */\n public getHooks(hookName: string): RegisteredHook[] {\n return this._registeredHooks[hookName];\n }\n\n /** @hidden */\n private _registerCoreTransitionHooks() {\n let fns = this._deregisterHookFns;\n\n fns.addCoreResolves = registerAddCoreResolvables(this);\n fns.ignored = registerIgnoredTransitionHook(this);\n fns.invalid = registerInvalidTransitionHook(this);\n\n // Wire up redirectTo hook\n fns.redirectTo = registerRedirectToHook(this);\n \n // Wire up onExit/Retain/Enter state hooks\n fns.onExit = registerOnExitHook(this);\n fns.onRetain = registerOnRetainHook(this);\n fns.onEnter = registerOnEnterHook(this);\n\n // Wire up Resolve hooks\n fns.eagerResolve = registerEagerResolvePath(this);\n fns.lazyResolve = registerLazyResolveState(this);\n \n // Wire up the View management hooks\n fns.loadViews = registerLoadEnteringViews(this);\n fns.activateViews = registerActivateViews(this);\n\n // Updates global state after a transition\n fns.updateGlobals = registerUpdateGlobalState(this);\n\n // After globals.current is updated at priority: 10000\n fns.updateUrl = registerUpdateUrl(this);\n\n // Lazy load state trees\n fns.lazyLoad = registerLazyLoadHook(this);\n }\n}\n", + "/**\n * @coreapi\n * @module state\n */\n/** */\nimport { createProxyFunctions, defaults, extend, inArray, noop, removeFrom, silenceUncaughtInPromise, silentRejection } from '../common/common';\nimport { isDefined, isObject, isString } from '../common/predicates';\nimport { Queue } from '../common/queue';\nimport { services } from '../common/coreservices';\n\nimport { PathUtils } from '../path/pathFactory';\nimport { PathNode } from '../path/pathNode';\n\nimport { HookResult, TransitionOptions } from '../transition/interface';\nimport { defaultTransOpts } from '../transition/transitionService';\nimport { Rejection, RejectType } from '../transition/rejectFactory';\nimport { Transition } from '../transition/transition';\n\nimport { HrefOptions, LazyLoadResult, StateDeclaration, StateOrName, TransitionPromise } from './interface';\nimport { StateObject } from './stateObject';\nimport { TargetState } from './targetState';\n\nimport { RawParams } from '../params/interface';\nimport { Param } from '../params/param';\nimport { Glob } from '../common/glob';\nimport { UIRouter } from '../router';\nimport { UIInjector } from '../interface';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { lazyLoadState } from '../hooks/lazyLoad';\nimport { not, val } from '../common/hof';\nimport { StateParams } from '../params/stateParams';\n\nexport type OnInvalidCallback =\n (toState?: TargetState, fromState?: TargetState, injector?: UIInjector) => HookResult;\n\n/**\n * Provides state related service functions\n *\n * This class provides services related to ui-router states.\n * An instance of this class is located on the global [[UIRouter]] object.\n */\nexport class StateService {\n /** @internalapi */\n invalidCallbacks: OnInvalidCallback[] = [];\n\n /**\n * The [[Transition]] currently in progress (or null)\n *\n * This is a passthrough through to [[UIRouterGlobals.transition]]\n */\n get transition() { return this.router.globals.transition; }\n /**\n * The latest successful state parameters\n *\n * This is a passthrough through to [[UIRouterGlobals.params]]\n */\n get params(): StateParams { return this.router.globals.params; }\n /**\n * The current [[StateDeclaration]]\n *\n * This is a passthrough through to [[UIRouterGlobals.current]]\n */\n get current() { return this.router.globals.current; }\n /**\n * The current [[StateObject]]\n *\n * This is a passthrough through to [[UIRouterGlobals.$current]]\n */\n get $current() { return this.router.globals.$current; }\n\n /** @internalapi */\n constructor(private router: UIRouter) {\n let getters = ['current', '$current', 'params', 'transition'];\n let boundFns = Object.keys(StateService.prototype).filter(not(inArray(getters)));\n createProxyFunctions(val(StateService.prototype), this, val(this), boundFns);\n }\n\n /** @internalapi */\n dispose() {\n this.defaultErrorHandler(noop);\n this.invalidCallbacks = [];\n }\n\n /**\n * Handler for when [[transitionTo]] is called with an invalid state.\n *\n * Invokes the [[onInvalid]] callbacks, in natural order.\n * Each callback's return value is checked in sequence until one of them returns an instance of TargetState.\n * The results of the callbacks are wrapped in $q.when(), so the callbacks may return promises.\n *\n * If a callback returns an TargetState, then it is used as arguments to $state.transitionTo() and the result returned.\n *\n * @internalapi\n */\n private _handleInvalidTargetState(fromPath: PathNode[], toState: TargetState) {\n let fromState = PathUtils.makeTargetState(this.router.stateRegistry, fromPath);\n let globals = this.router.globals;\n const latestThing = () => globals.transitionHistory.peekTail();\n let latest = latestThing();\n let callbackQueue = new Queue(this.invalidCallbacks.slice());\n let injector = new ResolveContext(fromPath).injector();\n\n const checkForRedirect = (result: HookResult) => {\n if (!(result instanceof TargetState)) {\n return;\n }\n\n let target = result;\n // Recreate the TargetState, in case the state is now defined.\n target = this.target(target.identifier(), target.params(), target.options());\n\n if (!target.valid()) {\n return Rejection.invalid(target.error()).toPromise();\n }\n\n if (latestThing() !== latest) {\n return Rejection.superseded().toPromise();\n }\n\n return this.transitionTo(target.identifier(), target.params(), target.options());\n };\n\n function invokeNextCallback() {\n let nextCallback = callbackQueue.dequeue();\n if (nextCallback === undefined) return Rejection.invalid(toState.error()).toPromise();\n\n let callbackResult = services.$q.when(nextCallback(toState, fromState, injector));\n return callbackResult.then(checkForRedirect).then(result => result || invokeNextCallback());\n }\n\n return invokeNextCallback();\n }\n\n /**\n * Registers an Invalid State handler\n *\n * Registers a [[OnInvalidCallback]] function to be invoked when [[StateService.transitionTo]]\n * has been called with an invalid state reference parameter\n *\n * Example:\n * ```js\n * stateService.onInvalid(function(to, from, injector) {\n * if (to.name() === 'foo') {\n * let lazyLoader = injector.get('LazyLoadService');\n * return lazyLoader.load('foo')\n * .then(() => stateService.target('foo'));\n * }\n * });\n * ```\n *\n * @param {function} callback invoked when the toState is invalid\n * This function receives the (invalid) toState, the fromState, and an injector.\n * The function may optionally return a [[TargetState]] or a Promise for a TargetState.\n * If one is returned, it is treated as a redirect.\n *\n * @returns a function which deregisters the callback\n */\n onInvalid(callback: OnInvalidCallback): Function {\n this.invalidCallbacks.push(callback);\n return function deregisterListener() {\n removeFrom(this.invalidCallbacks)(callback);\n }.bind(this);\n }\n\n\n /**\n * Reloads the current state\n *\n * A method that force reloads the current state, or a partial state hierarchy.\n * All resolves are re-resolved, and components reinstantiated.\n *\n * #### Example:\n * ```js\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * $state.reload();\n * }\n * });\n * ```\n *\n * Note: `reload()` is just an alias for:\n *\n * ```js\n * $state.transitionTo($state.current, $state.params, {\n * reload: true, inherit: false\n * });\n * ```\n *\n * @param reloadState A state name or a state object.\n * If present, this state and all its children will be reloaded, but ancestors will not reload.\n *\n * #### Example:\n * ```js\n * //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item'\n * //and current state is 'contacts.detail.item'\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * //will reload 'contact.detail' and nested 'contact.detail.item' states\n * $state.reload('contact.detail');\n * }\n * });\n * ```\n *\n * @returns A promise representing the state of the new transition. See [[StateService.go]]\n */\n reload(reloadState?: StateOrName): Promise {\n return this.transitionTo(this.current, this.params, {\n reload: isDefined(reloadState) ? reloadState : true,\n inherit: false,\n notify: false,\n });\n };\n\n /**\n * Transition to a different state and/or parameters\n *\n * Convenience method for transitioning to a new state.\n *\n * `$state.go` calls `$state.transitionTo` internally but automatically sets options to\n * `{ location: true, inherit: true, relative: router.globals.$current, notify: true }`.\n * This allows you to use either an absolute or relative `to` argument (because of `relative: router.globals.$current`).\n * It also allows you to specify * only the parameters you'd like to update, while letting unspecified parameters\n * inherit from the current parameter values (because of `inherit: true`).\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.go('contact.detail');\n * };\n * });\n * ```\n *\n * @param to Absolute state name, state object, or relative state path (relative to current state).\n *\n * Some examples:\n *\n * - `$state.go('contact.detail')` - will go to the `contact.detail` state\n * - `$state.go('^')` - will go to the parent state\n * - `$state.go('^.sibling')` - if current state is `home.child`, will go to the `home.sibling` state\n * - `$state.go('.child.grandchild')` - if current state is home, will go to the `home.child.grandchild` state\n *\n * @param params A map of the parameters that will be sent to the state, will populate $stateParams.\n *\n * Any parameters that are not specified will be inherited from current parameter values (because of `inherit: true`).\n * This allows, for example, going to a sibling state that shares parameters defined by a parent state.\n *\n * @param options Transition options\n *\n * @returns {promise} A promise representing the state of the new transition.\n */\n go(to: StateOrName, params?: RawParams, options?: TransitionOptions): TransitionPromise {\n let defautGoOpts = { relative: this.$current, inherit: true };\n let transOpts = defaults(options, defautGoOpts, defaultTransOpts);\n return this.transitionTo(to, params, transOpts);\n };\n\n /**\n * Creates a [[TargetState]]\n *\n * This is a factory method for creating a TargetState\n *\n * This may be returned from a Transition Hook to redirect a transition, for example.\n */\n target(identifier: StateOrName, params?: RawParams, options: TransitionOptions = {}): TargetState {\n // If we're reloading, find the state object to reload from\n if (isObject(options.reload) && !(options.reload).name)\n throw new Error('Invalid reload state object');\n let reg = this.router.stateRegistry;\n options.reloadState = options.reload === true ? reg.root() : reg.matcher.find( options.reload, options.relative);\n\n if (options.reload && !options.reloadState)\n throw new Error(`No such reload state '${(isString(options.reload) ? options.reload : (options.reload).name)}'`);\n\n return new TargetState(this.router.stateRegistry, identifier, params, options);\n };\n\n private getCurrentPath(): PathNode[] {\n let globals = this.router.globals;\n let latestSuccess: Transition = globals.successfulTransitions.peekTail();\n const rootPath = () => [ new PathNode(this.router.stateRegistry.root()) ];\n return latestSuccess ? latestSuccess.treeChanges().to : rootPath();\n }\n\n /**\n * Low-level method for transitioning to a new state.\n *\n * The [[go]] method (which uses `transitionTo` internally) is recommended in most situations.\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.transitionTo('contact.detail');\n * };\n * });\n * ```\n *\n * @param to State name or state object.\n * @param toParams A map of the parameters that will be sent to the state,\n * will populate $stateParams.\n * @param options Transition options\n *\n * @returns A promise representing the state of the new transition. See [[go]]\n */\n transitionTo(to: StateOrName, toParams: RawParams = {}, options: TransitionOptions = {}): TransitionPromise {\n let router = this.router;\n let globals = router.globals;\n options = defaults(options, defaultTransOpts);\n const getCurrent = () =>\n globals.transition;\n options = extend(options, { current: getCurrent });\n\n let ref: TargetState = this.target(to, toParams, options);\n let currentPath = this.getCurrentPath();\n\n if (!ref.exists())\n return this._handleInvalidTargetState(currentPath, ref);\n\n if (!ref.valid())\n return silentRejection(ref.error());\n\n /**\n * Special handling for Ignored, Aborted, and Redirected transitions\n *\n * The semantics for the transition.run() promise and the StateService.transitionTo()\n * promise differ. For instance, the run() promise may be rejected because it was\n * IGNORED, but the transitionTo() promise is resolved because from the user perspective\n * no error occurred. Likewise, the transition.run() promise may be rejected because of\n * a Redirect, but the transitionTo() promise is chained to the new Transition's promise.\n */\n const rejectedTransitionHandler = (transition: Transition) => (error: any): Promise => {\n if (error instanceof Rejection) {\n const isLatest = router.globals.lastStartedTransitionId === transition.$id;\n\n if (error.type === RejectType.IGNORED) {\n isLatest && router.urlRouter.update();\n // Consider ignored `Transition.run()` as a successful `transitionTo`\n return services.$q.when(globals.current);\n }\n\n const detail: any = error.detail;\n if (error.type === RejectType.SUPERSEDED && error.redirected && detail instanceof TargetState) {\n // If `Transition.run()` was redirected, allow the `transitionTo()` promise to resolve successfully\n // by returning the promise for the new (redirect) `Transition.run()`.\n let redirect: Transition = transition.redirect(detail);\n return redirect.run().catch(rejectedTransitionHandler(redirect));\n }\n\n if (error.type === RejectType.ABORTED) {\n isLatest && router.urlRouter.update();\n return services.$q.reject(error);\n }\n }\n\n let errorHandler = this.defaultErrorHandler();\n errorHandler(error);\n\n return services.$q.reject(error);\n };\n\n let transition = this.router.transitionService.create(currentPath, ref);\n let transitionToPromise = transition.run().catch(rejectedTransitionHandler(transition));\n silenceUncaughtInPromise(transitionToPromise); // issue #2676\n\n // Return a promise for the transition, which also has the transition object on it.\n return extend(transitionToPromise, { transition });\n };\n\n /**\n * Checks if the current state *is* the provided state\n *\n * Similar to [[includes]] but only checks for the full state name.\n * If params is supplied then it will be tested for strict equality against the current\n * active params object, so all params must match with none missing and no extras.\n *\n * #### Example:\n * ```js\n * $state.$current.name = 'contacts.details.item';\n *\n * // absolute name\n * $state.is('contact.details.item'); // returns true\n * $state.is(contactDetailItemStateObject); // returns true\n * ```\n *\n * // relative name (. and ^), typically from a template\n * // E.g. from the 'contacts.details' template\n * ```html\n *
    Item
    \n * ```\n *\n * @param stateOrName The state name (absolute or relative) or state object you'd like to check.\n * @param params A param object, e.g. `{sectionId: section.id}`, that you'd like\n * to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns Returns true if it is the state.\n */\n is(stateOrName: StateOrName, params?: RawParams, options?: { relative?: StateOrName }): boolean {\n options = defaults(options, { relative: this.$current });\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n if (!isDefined(state)) return undefined;\n if (this.$current !== state) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n /**\n * Checks if the current state *includes* the provided state\n *\n * A method to determine if the current active state is equal to or is the child of the\n * state stateName. If any params are passed then they will be tested for a match as well.\n * Not all the parameters need to be passed, just the ones you'd like to test for equality.\n *\n * #### Example when `$state.$current.name === 'contacts.details.item'`\n * ```js\n * // Using partial names\n * $state.includes(\"contacts\"); // returns true\n * $state.includes(\"contacts.details\"); // returns true\n * $state.includes(\"contacts.details.item\"); // returns true\n * $state.includes(\"contacts.list\"); // returns false\n * $state.includes(\"about\"); // returns false\n * ```\n *\n * #### Glob Examples when `* $state.$current.name === 'contacts.details.item.url'`:\n * ```js\n * $state.includes(\"*.details.*.*\"); // returns true\n * $state.includes(\"*.details.**\"); // returns true\n * $state.includes(\"**.item.**\"); // returns true\n * $state.includes(\"*.details.item.url\"); // returns true\n * $state.includes(\"*.details.*.url\"); // returns true\n * $state.includes(\"*.details.*\"); // returns false\n * $state.includes(\"item.**\"); // returns false\n * ```\n *\n * @param stateOrName A partial name, relative name, glob pattern,\n * or state object to be searched for within the current state name.\n * @param params A param object, e.g. `{sectionId: section.id}`,\n * that you'd like to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns {boolean} Returns true if it does include the state\n */\n includes(stateOrName: StateOrName, params?: RawParams, options?: TransitionOptions): boolean {\n options = defaults(options, { relative: this.$current });\n let glob = isString(stateOrName) && Glob.fromString( stateOrName);\n\n if (glob) {\n if (!glob.matches(this.$current.name)) return false;\n stateOrName = this.$current.name;\n }\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative), include = this.$current.includes;\n\n if (!isDefined(state)) return undefined;\n if (!isDefined(include[state.name])) return false;\n if (!params) return true;\n\n let schema: Param[] = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n\n\n /**\n * Generates a URL for a state and parameters\n *\n * Returns the url for the given state populated with the given params.\n *\n * #### Example:\n * ```js\n * expect($state.href(\"about.person\", { person: \"bob\" })).toEqual(\"/about/bob\");\n * ```\n *\n * @param stateOrName The state name or state object you'd like to generate a url from.\n * @param params An object of parameter values to fill the state's required parameters.\n * @param options Options object. The options are:\n *\n * @returns {string} compiled state url\n */\n href(stateOrName: StateOrName, params: RawParams, options?: HrefOptions): string {\n let defaultHrefOpts = {\n lossy: true,\n inherit: true,\n absolute: false,\n relative: this.$current,\n };\n options = defaults(options, defaultHrefOpts);\n params = params || {};\n\n let state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n\n if (!isDefined(state)) return null;\n if (options.inherit) params = this.params.$inherit(params, this.$current, state);\n\n let nav = (state && options.lossy) ? state.navigable : state;\n\n if (!nav || nav.url === undefined || nav.url === null) {\n return null;\n }\n return this.router.urlRouter.href(nav.url, params, {\n absolute: options.absolute,\n });\n };\n\n /** @hidden */\n private _defaultErrorHandler: ((_error: any) => void) = function $defaultErrorHandler($error$) {\n if ($error$ instanceof Error && $error$.stack) {\n console.error($error$);\n console.error($error$.stack);\n } else if ($error$ instanceof Rejection) {\n console.error($error$.toString());\n if ($error$.detail && $error$.detail.stack)\n console.error($error$.detail.stack);\n } else {\n console.error($error$);\n }\n };\n\n /**\n * Sets or gets the default [[transitionTo]] error handler.\n *\n * The error handler is called when a [[Transition]] is rejected or when any error occurred during the Transition.\n * This includes errors caused by resolves and transition hooks.\n *\n * Note:\n * This handler does not receive certain Transition rejections.\n * Redirected and Ignored Transitions are not considered to be errors by [[StateService.transitionTo]].\n *\n * The built-in default error handler logs the error to the console.\n *\n * You can provide your own custom handler.\n *\n * #### Example:\n * ```js\n * stateService.defaultErrorHandler(function() {\n * // Do not log transitionTo errors\n * });\n * ```\n *\n * @param handler a global error handler function\n * @returns the current global error handler\n */\n defaultErrorHandler(handler?: (error: any) => void): (error: any) => void {\n return this._defaultErrorHandler = handler || this._defaultErrorHandler;\n }\n\n /**\n * Gets a registered [[StateDeclaration]] object\n *\n * Returns the state declaration object for any specific state, or for all registered states.\n *\n * @param stateOrName (absolute or relative) If provided, will only get the declaration object for the requested state.\n * If not provided, returns an array of ALL states.\n * @param base When `stateOrName` is a relative state reference (such as `.bar.baz`), the state will be retrieved relative to this state.\n *\n * @returns a [[StateDeclaration]] object (or array of all registered [[StateDeclaration]] objects.)\n */\n get(stateOrName: StateOrName, base: StateOrName): StateDeclaration;\n get(stateOrName: StateOrName): StateDeclaration;\n get(): StateDeclaration[];\n get(stateOrName?: StateOrName, base?: StateOrName): any {\n let reg = this.router.stateRegistry;\n if (arguments.length === 0) return reg.get();\n return reg.get(stateOrName, base || this.$current);\n }\n\n /**\n * Lazy loads a state\n *\n * Explicitly runs a state's [[StateDeclaration.lazyLoad]] function.\n *\n * @param stateOrName the state that should be lazy loaded\n * @param transition the optional Transition context to use (if the lazyLoad function requires an injector, etc)\n * Note: If no transition is provided, a noop transition is created using the from the current state to the current state.\n * This noop transition is not actually run.\n *\n * @returns a promise to lazy load\n */\n lazyLoad(stateOrName: StateOrName, transition?: Transition): Promise {\n let state: StateDeclaration = this.get(stateOrName);\n if (!state || !state.lazyLoad) throw new Error(\"Can not lazy load \" + stateOrName);\n\n let currentPath = this.getCurrentPath();\n let target = PathUtils.makeTargetState(this.router.stateRegistry, currentPath);\n transition = transition || this.router.transitionService.create(currentPath, target);\n\n return lazyLoadState(transition, state);\n }\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isArray, isObject, $QLike } from \"../common/index\";\n\n/**\n * An angular1-like promise api\n *\n * This object implements four methods similar to the\n * [angular 1 promise api](https://docs.angularjs.org/api/ng/service/$q)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This API provides native ES6 promise support wrapped as a $q-like API.\n * Internally, UI-Router uses this $q object to perform promise operations.\n * The `angular-ui-router` (ui-router for angular 1) uses the $q API provided by angular.\n *\n * $q-like promise api\n */\nexport const $q = {\n /** Normalizes a value as a promise */\n when: (val) => new Promise((resolve, reject) => resolve(val)),\n\n /** Normalizes a value as a promise rejection */\n reject: (val) => new Promise((resolve, reject) => { reject(val); }),\n\n /** @returns a deferred object, which has `resolve` and `reject` functions */\n defer: () => {\n let deferred: any = {};\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n },\n\n /** Like Promise.all(), but also supports object key/promise notation like $q */\n all: (promises: { [key: string]: Promise } | Promise[]) => {\n if (isArray(promises)) {\n return Promise.all(promises);\n }\n\n if (isObject(promises)) {\n // Convert promises map to promises array.\n // When each promise resolves, map it to a tuple { key: key, val: val }\n let chain = Object.keys(promises)\n .map(key => promises[key].then(val => ({key, val})));\n\n // Then wait for all promises to resolve, and convert them back to an object\n return $q.all(chain).then(values =>\n values.reduce((acc, tuple) => { acc[tuple.key] = tuple.val; return acc; }, {}));\n }\n }\n} as $QLike;", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport {\n extend, assertPredicate, isFunction, isArray, isInjectable, $InjectorLike, IInjectable\n} from \"../common/index\";\n\n// globally available injectables\nlet globals = {};\nlet STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nlet ARGUMENT_NAMES = /([^\\s,]+)/g;\n\n/**\n * A basic angular1-like injector api\n *\n * This object implements four methods similar to the\n * [angular 1 dependency injector](https://docs.angularjs.org/api/auto/service/$injector)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This object provides a naive implementation of a globally scoped dependency injection system.\n * It supports the following DI approaches:\n *\n * ### Function parameter names\n *\n * A function's `.toString()` is called, and the parameter names are parsed.\n * This only works when the parameter names aren't \"mangled\" by a minifier such as UglifyJS.\n *\n * ```js\n * function injectedFunction(FooService, BarService) {\n * // FooService and BarService are injected\n * }\n * ```\n *\n * ### Function annotation\n *\n * A function may be annotated with an array of dependency names as the `$inject` property.\n *\n * ```js\n * injectedFunction.$inject = [ 'FooService', 'BarService' ];\n * function injectedFunction(fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }\n * ```\n *\n * ### Array notation\n *\n * An array provides the names of the dependencies to inject (as strings).\n * The function is the last element of the array.\n *\n * ```js\n * [ 'FooService', 'BarService', function (fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }]\n * ```\n *\n * @type {$InjectorLike}\n */\nexport const $injector = {\n /** Gets an object from DI based on a string token */\n get: name => globals[name],\n\n /** Returns true if an object named `name` exists in global DI */\n has: (name) => $injector.get(name) != null,\n\n /**\n * Injects a function\n *\n * @param fn the function to inject\n * @param context the function's `this` binding\n * @param locals An object with additional DI tokens and values, such as `{ someToken: { foo: 1 } }`\n */\n invoke: (fn: IInjectable, context?, locals?) => {\n let all = extend({}, globals, locals || {});\n let params = $injector.annotate(fn);\n let ensureExist = assertPredicate((key: string) => all.hasOwnProperty(key), key => `DI can't find injectable: '${key}'`);\n let args = params.filter(ensureExist).map(x => all[x]);\n if (isFunction(fn)) return fn.apply(context, args);\n else return (fn as any[]).slice(-1)[0].apply(context, args);\n },\n\n /**\n * Returns a function's dependencies\n *\n * Analyzes a function (or array) and returns an array of DI tokens that the function requires.\n * @return an array of `string`s\n */\n annotate: (fn: IInjectable): any[] => {\n if (!isInjectable(fn)) throw new Error(`Not an injectable function: ${fn}`);\n if (fn && (fn as any).$inject) return (fn as any).$inject;\n if (isArray(fn)) return fn.slice(0, -1);\n let fnStr = fn.toString().replace(STRIP_COMMENTS, '');\n let result = fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);\n return result || [];\n }\n} as $InjectorLike;", + "/**\n * @internalapi\n * @module vanilla\n */ /** */\n\nimport { deregAll, isDefined, LocationServices, removeFrom, root } from '../common';\nimport { Disposable } from '../interface';\nimport { UIRouter } from '../router';\nimport { HistoryLike, LocationLike } from './interface';\nimport { buildUrl, getParams, parseUrl } from './utils';\n\n/** A base `LocationServices` */\nexport abstract class BaseLocationServices implements LocationServices, Disposable {\n constructor(router: UIRouter, public fireAfterUpdate: boolean) {\n this._location = root.location;\n this._history = root.history;\n }\n\n _listener = evt => this._listeners.forEach(cb => cb(evt));\n\n private _listeners: Function[] = [];\n _location: LocationLike;\n _history: HistoryLike;\n\n /**\n * This should return the current internal URL representation.\n *\n * The internal URL includes only the portion that UI-Router matches.\n * It does not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n */\n abstract _get(): string;\n\n /**\n * This should set the current URL.\n *\n * The `url` param should include only the portion that UI-Router matches on.\n * It should not include:\n * - protocol\n * - server\n * - port\n * - base href or hash\n *\n * However, after this function completes, the browser URL should reflect the entire (fully qualified)\n * HREF including those data.\n */\n abstract _set(state: any, title: string, url: string, replace: boolean);\n\n hash = () => parseUrl(this._get()).hash;\n path = () => parseUrl(this._get()).path;\n search = () => getParams(parseUrl(this._get()).search);\n\n url(url?: string, replace: boolean = true): string {\n if (isDefined(url) && url !== this._get()) {\n this._set(null, null, url, replace);\n\n if (this.fireAfterUpdate) {\n this._listeners.forEach(cb => cb({ url }));\n }\n }\n\n return buildUrl(this);\n }\n\n onChange(cb: EventListener) {\n this._listeners.push(cb);\n return () => removeFrom(this._listeners, cb);\n }\n\n dispose(router: UIRouter) {\n deregAll(this._listeners);\n }\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { root, trimHashVal } from '../common';\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\n\n/** A `LocationServices` that uses the browser hash \"#\" to get/set the current location */\nexport class HashLocationService extends BaseLocationServices {\n constructor(router: UIRouter) {\n super(router, false);\n root.addEventListener('hashchange', this._listener, false);\n }\n\n _get() {\n return trimHashVal(this._location.hash);\n }\n _set(state: any, title: string, url: string, replace: boolean) {\n this._location.hash = url;\n }\n\n dispose (router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('hashchange', this._listener);\n }\n}\n\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { BaseLocationServices } from './baseLocationService';\nimport { UIRouter } from '../router';\n\n/** A `LocationServices` that gets/sets the current location from an in-memory object */\nexport class MemoryLocationService extends BaseLocationServices {\n _url: string;\n\n constructor(router: UIRouter) {\n super(router, true);\n }\n\n _get() {\n return this._url;\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n this._url = url;\n }\n}\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { UIRouter } from '../router';\nimport { BaseLocationServices } from './baseLocationService';\nimport { LocationConfig, root, splitHash, splitQuery, stripFile } from '../common';\n\n/**\n * A `LocationServices` that gets/sets the current location using the browser's `location` and `history` apis\n *\n * Uses `history.pushState` and `history.replaceState`\n */\nexport class PushStateLocationService extends BaseLocationServices {\n _config: LocationConfig;\n\n constructor(router: UIRouter) {\n super(router, true);\n this._config = router.urlService.config;\n root.addEventListener('popstate', this._listener, false);\n };\n\n /**\n * Gets the base prefix without:\n * - trailing slash\n * - trailing filename\n * - protocol and hostname\n *\n * If , this returns '/base'.\n * If , this returns '/base'.\n *\n * See: https://html.spec.whatwg.org/dev/semantics.html#the-base-element\n */\n _getBasePrefix() {\n return stripFile(this._config.baseHref());\n }\n\n _get() {\n let { pathname, hash, search } = this._location;\n search = splitQuery(search)[1]; // strip ? if found\n hash = splitHash(hash)[1]; // strip # if found\n\n const basePrefix = this._getBasePrefix();\n let exactMatch = pathname === this._config.baseHref();\n let startsWith = pathname.startsWith(basePrefix);\n pathname = exactMatch ? '/' : startsWith ? pathname.substring(basePrefix.length) : pathname;\n\n return pathname + (search ? '?' + search : '') + (hash ? '#' + hash : '');\n }\n\n _set(state: any, title: string, url: string, replace: boolean) {\n let fullUrl = this._getBasePrefix() + url;\n\n if (replace) {\n this._history.replaceState(state, title, fullUrl);\n } else {\n this._history.pushState(state, title, fullUrl);\n }\n }\n\n dispose(router: UIRouter) {\n super.dispose(router);\n root.removeEventListener('popstate', this._listener);\n }\n}\n\n", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { LocationConfig } from \"../common/coreservices\";\nimport { isDefined } from \"../common/predicates\";\nimport { noop } from \"../common/common\";\n\n/** A `LocationConfig` mock that gets/sets all config from an in-memory object */\nexport class MemoryLocationConfig implements LocationConfig {\n _baseHref = '';\n _port = 80;\n _protocol = \"http\";\n _host = \"localhost\";\n _hashPrefix = \"\";\n\n port = () => this._port;\n protocol = () => this._protocol;\n host = () => this._host;\n baseHref = () => this._baseHref;\n html5Mode = () => false;\n hashPrefix = (newval?) => isDefined(newval) ? this._hashPrefix = newval : this._hashPrefix;\n dispose = noop;\n}", + "/**\n * @internalapi\n * @module vanilla\n */\n/** */\nimport { isDefined } from \"../common/predicates\";\nimport { LocationConfig } from \"../common/coreservices\";\n\n/** A `LocationConfig` that delegates to the browser's `location` object */\nexport class BrowserLocationConfig implements LocationConfig {\n private _baseHref = undefined;\n private _hashPrefix = \"\";\n\n constructor(router?, private _isHtml5 = false) { }\n\n port(): number {\n if (location.port) {\n return Number(location.port);\n }\n\n return this.protocol() === 'https' ? 443 : 80;\n }\n\n protocol(): string {\n return location.protocol.replace(/:/g, '');\n }\n\n host(): string {\n return location.hostname;\n }\n\n html5Mode(): boolean {\n return this._isHtml5;\n }\n\n hashPrefix(): string;\n hashPrefix(newprefix?: string): string {\n return isDefined(newprefix) ? this._hashPrefix = newprefix : this._hashPrefix;\n };\n\n baseHref(href?: string): string {\n return isDefined(href) ? this._baseHref = href :\n isDefined(this._baseHref) ? this._baseHref : this.applyDocumentBaseHref();\n }\n\n applyDocumentBaseHref() {\n let baseTag: HTMLBaseElement = document.getElementsByTagName(\"base\")[0];\n return this._baseHref = baseTag ? baseTag.href.substr(location.origin.length) : \"\";\n }\n\n dispose() {}\n}\n", + "/**\n * # Core classes and interfaces\n *\n * The classes and interfaces that are core to ui-router and do not belong\n * to a more specific subsystem (such as resolve).\n *\n * @coreapi\n * @preferred\n * @module core\n */ /** for typedoc */\n\n// Need to import or export at least one concrete something\nimport {noop} from \"./common/common\";\nimport {UIRouter} from \"./router\";\n\n/**\n * An interface for getting values from dependency injection.\n *\n * This is primarily used to get resolve values for a given token.\n * An instance of the `UIInjector` can be retrieved from the current transition using [[Transition.injector]].\n *\n * ---\n *\n * If no resolve is found for a token, then it will delegate to the native injector.\n * The native injector may be Angular 1 `$injector`, Angular 2 `Injector`, or a simple polyfill.\n *\n * In Angular 2, the native injector might be the root Injector,\n * or it might be a lazy loaded `NgModule` injector scoped to a lazy load state tree.\n */\nexport interface UIInjector {\n /**\n * Gets a value from the injector.\n *\n * For a given token, returns the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this throws an error.\n *\n * #### Example:\n * ```js\n * var myResolve = injector.get('myResolve');\n * ```\n *\n * #### ng1 Example:\n * ```js\n * // Fetch StateService\n * injector.get('$state').go('home');\n * ```\n *\n * #### ng2 Example:\n * ```js\n * import {StateService} from \"ui-router-ng2\";\n * // Fetch StateService\n * injector.get(StateService).go('home');\n * ```\n *\n * #### Typescript Example:\n * ```js\n * var stringArray = injector.get('myStringArray');\n * ```\n *\n * ### `NOWAIT` policy\n *\n * When using [[ResolvePolicy.async]] === `NOWAIT`, the value returned from `get()` is a promise for the result.\n * The promise is not automatically unwrapped.\n *\n * @param token the key for the value to get. May be a string, a class, or any arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n get(token: any): any;\n /** Gets a value as type `T` (generics parameter) */\n get(token: any): T;\n\n /**\n * Asynchronously gets a value from the injector\n *\n * For a given token, returns a promise for the value from the injector that matches the token.\n * If the token is for a resolve that has not yet been fetched, this triggers the resolve to load.\n *\n * #### Example:\n * ```js\n * return injector.getAsync('myResolve').then(value => {\n * if (value === 'declined') return false;\n * });\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return a Promise for the Dependency Injection value that matches the token\n */\n getAsync(token: any): Promise;\n /** Asynchronously gets a value as type `T` (generics parameter) */\n getAsync(token: any): Promise;\n\n /**\n * Gets a value from the native injector\n *\n * Returns a value from the native injector, bypassing anything in the [[ResolveContext]].\n *\n * Example:\n * ```js\n * let someThing = injector.getNative(SomeToken);\n * ```\n *\n * @param token the key for the value to get. May be a string or arbitrary object.\n * @return the Dependency Injection value that matches the token\n */\n getNative(token: any): any;\n getNative(token: any): T;\n}\n\n/** @internalapi */\nexport interface UIRouterPlugin extends Disposable {\n name: string;\n}\n\n/** @internalapi */\nexport abstract class UIRouterPluginBase implements UIRouterPlugin, Disposable {\n abstract name: string;\n dispose(router: UIRouter) { }\n}\n\n/** @internalapi */\nexport interface Disposable {\n /** Instructs the Disposable to clean up any resources */\n dispose(router?: UIRouter);\n}", + "/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n *
    \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n", + "/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n", + "/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n", + "/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n", + "/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n", + "/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n" + ], + "names": [ + "fn", + "args", + "length", + "func_args_length", + "apply", + "curried", + "concat", + "slice", + "arguments", + "initial_args", + "start", + "i", + "result", + "this", + "call", + "_i", + "funcs", + "compose", + "reverse", + "fn1", + "fn2", + "fnName", + "obj", + "struct", + "x", + "val", + "isArray", + "head", + "tail", + "filter", + "not", + "isString", + "isFunction", + "source", + "target", + "bind", + "fnNames", + "latebind", + "bindFunction", + "makeLateRebindFn", + "Object", + "keys", + "reduce", + "acc", + "name", + "array", + "indexOf", + "idx", + "splice", + "arr", + "push", + "opts", + "defaultsList", + "_defaultsList", + "defaultVals", + "extend", + "pick", + "first", + "second", + "path", + "n", + "propNames", + "objCopy", + "prop_1", + "inArray", + "key", + "collection", + "propName", + "map", + "prop", + "callback", + "accept", + "forEach", + "item", + "predicateOrMap", + "errMsg", + "Error", + "maxArrayLen", + "min", + "Math", + "memo", + "keyValTuple", + "value", + "undefined", + "src", + "dest", + "toObj", + "j", + "o1", + "o2", + "t1", + "tup", + "all", + "_arraysEq", + "isDate", + "getTime", + "isRegExp", + "toString", + "any", + "b", + "_equals", + "a1", + "a2", + "arrayTuples", + "t", + "uiview", + "state", + "creationContext", + "id", + "$type", + "fqn", + "input", + "isNumber", + "Category", + "criterion", + "toMatch", + "_state", + "globStrings", + "glob", + "Glob", + "matches", + "registry", + "transitionService", + "eventType", + "matchObject", + "options", + "registeredHook", + "RegisteredHook", + "removeHookFn", + "hooks", + "deregister", + "_registeredHooks", + "removeFrom", + "hookRegistrationFn", + "reverseDepthSort", + "l", + "r", + "factor", + "depthDelta", + "node", + "hook", + "priority", + "type", + "mode", + "isDefined", + "allTruthyMode", + "arrayWrap", + "arrayUnwrap", + "val1", + "val2", + "left", + "right", + "paramTypeFn", + "wrapperFn", + "arrayEqualsHandler", + "arrayHandler", + "_this", + "dynamic", + "pattern", + "inherit", + "is", + "$arrayMode", + "cfg", + "isShorthand", + "getStaticDefaultValue", + "$$fn", + "isInjectable", + "urlType", + "location", + "paramTypes", + "DefType", + "CONFIG", + "PATH", + "SEARCH", + "ParamType", + "config", + "isOptional", + "defaultPolicy", + "squash", + "arrayMode", + "replace", + "configuredKeys", + "from", + "to", + "max", + "str", + "substr", + "camelCase", + "$1", + "toLowerCase", + "fnStr", + "fnToString", + "namedFunctionMatch", + "match", + "toStr", + "_fn", + "o", + "isObject", + "seen", + "stringifyPattern", + "JSON", + "stringify", + "format", + "delim", + "re", + "RegExp", + "split", + "identity", + "pushR", + "self", + "$$state", + "parent", + "data", + "includes", + "annotate", + "$injector", + "services", + "strictDi", + "token", + "p", + "provide", + "literal2Resolvable", + "Resolvable", + "resolveFn", + "deps", + "policy", + "useFactory", + "dependencies", + "useClass", + "useValue", + "useExisting", + "tuple2Resolvable", + "pipe", + "tuple", + "item2Resolvable", + "decl", + "resolve", + "resolveObj", + "resolvePolicies", + "objects2Tuples", + "resolvePolicy", + "string", + "param", + "surroundPattern", + "url", + "isHtml5", + "absolute", + "baseHref", + "stripFile", + "handler", + "TargetState", + "isDef", + "trans", + "addResolvable", + "UIRouter", + "router", + "Transition", + "params", + "entering", + "hookName", + "transition", + "hookFn", + "lazyLoadFn", + "lazyLoad", + "promise", + "$q", + "when", + "then", + "Array", + "states", + "stateRegistry", + "register", + "err", + "reject", + "ignoredReason", + "_ignoredReason", + "trace", + "traceTransitionIgnored", + "pending", + "globals", + "abort", + "Rejection", + "ignored", + "toPromise", + "valid", + "error", + "orEmptyString", + "_a", + "beforehash", + "hash", + "_b", + "search", + "serviceClass", + "configurationClass", + "service", + "locationService", + "configuration", + "locationConfig", + "dispose", + "templateFactory", + "view", + "get", + "Ng1ViewConfig", + "ctrlKeys", + "compKeys", + "nonCompKeys", + "allViewKeys", + "views", + "hasAnyKey", + "join", + "viewsObject", + "$default", + "component", + "resolveAs", + "$context", + "$name", + "normalized", + "ViewService", + "normalizeUIViewTarget", + "$uiViewName", + "uiViewName", + "$uiViewContextAnchor", + "uiViewContextAnchor", + "cmpDefs", + "getBindings", + "unnestR", + "$locationProvider", + "$location", + "$browser", + "$sniffer", + "$rootScope", + "$http", + "$templateCache", + "ng1LocationService", + "_runtimeServices", + "stateProvider", + "StateProvider", + "stateService", + "decorator", + "ng1ViewsBuilder", + "getStateHookBuilder", + "viewService", + "_pluginapi", + "_viewConfigFactory", + "getNg1ViewConfigFactory", + "Ng1LocationServices", + "monkeyPatchPathParameterType", + "$get", + "$inject", + "$uiRouter", + "resolvables", + "resolvable", + "$watch", + "approximateDigests", + "ref", + "parsed", + "paramsOnly", + "paramExpr", + "el", + "$uiView", + "inheritedData", + "parse", + "$state", + "$element", + "def", + "uiState", + "current", + "uiStateOpts", + "defaultOpts", + "href", + "uiStateParams", + "isSvg", + "prototype", + "isForm", + "nodeName", + "attr", + "isAnchor", + "toUpperCase", + "clickable", + "$timeout", + "getDef", + "e", + "button", + "which", + "ctrlKey", + "metaKey", + "shiftKey", + "go", + "preventDefault", + "ignorePreventDefaultCount", + "cancel", + "relative", + "stateContext", + "$current", + "element", + "scope", + "events", + "on", + "events_1", + "event_1", + "$on", + "off", + "events_2", + "event_2", + "isFilter", + "$stateful", + "includesFilter", + "$compile", + "$controller", + "$transitions", + "$view", + "getControllerAs", + "getResolveAs", + "restrict", + "compile", + "tElement", + "initial", + "html", + "empty", + "contents", + "$cfg", + "viewDecl", + "getTemplate", + "noop", + "resolveCtx", + "ResolveContext", + "traceUIViewFill", + "link", + "controller", + "controllerAs", + "locals", + "getLocals", + "controllerInstance", + "$scope", + "children", + "registerControllerCallbacks", + "cmp_1", + "kebobName", + "kebobString", + "tagRegexp_1", + "deregisterWatch_1", + "directiveEl", + "tagName", + "exec", + "angular", + "ctrlInstance", + "$onInit", + "hasComponentImpl", + "viewState", + "hookOptions", + "uiOnParamsChanged", + "viewCreationTrans_1", + "getResolvable", + "onSuccess", + "$transition$", + "exiting", + "toParams", + "fromParams", + "toSchema", + "treeChanges", + "paramSchema", + "fromSchema", + "changedToParams", + "equals", + "changedKeys_1", + "newValues", + "uiCanExit", + "id_1", + "_uiCanExitId", + "prevTruthyAnswer_1", + "redirectedFrom", + "criteria", + "onBefore", + "ids", + "ng_from_global", + "ng", + "ng_from_import", + "ng_from_import.module", + "propEq", + "curry", + "ctor", + "constructor", + "eq", + "other", + "v", + "text", + "regexpString", + "seg", + "regexp", + "test", + "StateObject", + "create", + "stateDecl", + "isStateClass", + "__stateObjectCache", + "nameGlob", + "fromString", + "root", + "defaults", + "matchingKeys", + "parameters", + "values", + "hasOwnProperty", + "parameter", + "find", + "tis", + "isUndefined", + "isNull", + "isNullOrUndefined", + "or", + "isState", + "isPromise", + "and", + "notImplemented", + "fnname", + "global", + "fromJson", + "toJson", + "cb", + "assign", + "_extend", + "extra", + "_inArray", + "_removeFrom", + "pushTo", + "_pushTo", + "deregAll", + "functions", + "mergeR", + "mapObj", + "allTrueR", + "elem", + "anyTrueR", + "flattenR", + "uniqR", + "unnest", + "flatten", + "assertPredicate", + "assertFn", + "assertMap", + "pairs", + "silenceUncaughtInPromise", + "catch", + "silentRejection", + "_items", + "_limit", + "Queue", + "items", + "shift", + "size", + "RejectType", + "message", + "detail", + "d", + "detailString", + "_transitionRejection", + "rejection", + "SUPERSEDED", + "redirected", + "superseded", + "INVALID", + "IGNORED", + "ABORTED", + "ERROR", + "errored", + "viewConfigString", + "viewConfig", + "$id", + "consoleLog", + "Function", + "console", + "log", + "consoletable", + "table", + "_tid", + "_rid", + "transLbl", + "Trace", + "enabled", + "categories", + "k", + "parseInt", + "isNaN", + "normalizedCat", + "category", + "_enabled", + "_set", + "TRANSITION", + "step", + "HOOK", + "event", + "context", + "functionToString", + "maxLength", + "hookResult", + "transitionOptions", + "RESOLVE", + "reason", + "finalState", + "viewData", + "UIVIEW", + "padString", + "uiViewString", + "traceUIViewEvent", + "VIEWCONFIG", + "mapping", + "uiViewData", + "ui-view fqn", + "state: view name", + "sort", + "a", + "localeCompare", + "TransitionHookPhase", + "TransitionHookScope", + "_stateRegistry", + "_identifier", + "_params", + "_options", + "_definition", + "matcher", + "base", + "stateName", + "newParams", + "newOpts", + "defaultOptions", + "traceData", + "hookPhase", + "RUN", + "isActive", + "TransitionHook", + "defaultErrorHandler", + "_deregistered", + "notCurrent", + "getNotCurrentRejection", + "traceHookInvocation", + "handleError", + "getErrorHandler", + "handleResult", + "getResultHandler", + "synchronous", + "normalize", + "invokeLimit", + "invokeCount", + "handleHookResult", + "traceHookResult", + "aborted", + "isTargetState", + "_disposed", + "_aborted", + "isSuperseded", + "waitFor", + "prev", + "nextHook", + "invokeHook", + "doneCallback", + "remainingHooks", + "chain", + "logError", + "tranSvc", + "matchCriteria", + "removeHookFromRegistry", + "nodes", + "matching", + "matchState", + "_getPathTypes", + "_getDefaultMatchCriteria", + "mn", + "pathtype", + "isStateHook", + "STATE", + "_matchingNodes", + "_getMatchingNodes", + "every", + "HookBuilder", + "phase", + "_getEvents", + "buildHooks", + "hookType", + "matchingHooks", + "getMatchingHooks", + "baseHookOptions", + "criteriaMatchPath", + "transitionHook", + "tupleSort", + "reverseSort", + "isCreate", + "CREATE", + "reg", + "getHooks", + "sub", + "decode", + "isSearch", + "ArrayType", + "hasOwn", + "urlMatcherFactory", + "getType", + "unwrapShorthand", + "arrayDefaults", + "arrayParamNomenclature", + "getArrayMode", + "$asArray", + "raw", + "getSquashPolicy", + "defaultSquashPolicy", + "getReplace", + "Param", + "replaceSpecialValues", + "_defaultValueCache", + "defaultValue", + "invoke", + "getDefaultValue", + "$normalize", + "encoded", + "encode", + "paramValues", + "params_1", + "values1", + "values2", + "changed", + "validates", + "stateOrNode", + "PathNode", + "res", + "clone", + "getParamVal", + "paramDef", + "pDef", + "applyPairs", + "paramsFn", + "diff", + "PathUtils", + "targetState", + "applyRawParams", + "fromPath", + "toPath", + "buildPath", + "inheritParams", + "viewDecls", + "subPath", + "viewConfigs", + "createViewConfig", + "toKeys", + "noInherit", + "toNode", + "toParamVals", + "incomingParamVals", + "omit", + "fromParamVals", + "nodeParamVals", + "ownParamVals", + "reloadState", + "keep", + "node1", + "node2", + "nonDynamicParams", + "nodesMatch", + "retained", + "retainedWithToParams", + "retainedNode", + "cloned", + "pathA", + "pathB", + "done", + "nodeA", + "nodeB", + "predicate", + "elementIdx", + "defaultResolvePolicy", + "async", + "arg1", + "resolved", + "literal", + "thisPolicy", + "statePolicy", + "resolveContext", + "findNode", + "maybeWaitForRx", + "getPolicy", + "observable$", + "cached", + "cache", + "take", + "getDependencies", + "resolvedDeps", + "resolvedValue", + "traceResolvableResolved", + "LAZY", + "EAGER", + "WAIT", + "NOWAIT", + "RXWAIT", + "whens", + "ALL_WHENS", + "EAGER_WHENS", + "NATIVE_INJECTOR_TOKEN", + "_path", + "newResolvables", + "matchedWhens", + "traceResolvePath", + "matchesPolicy", + "acceptedVals", + "whenOrAsync", + "promises", + "nodeResolvables", + "nowait", + "wait", + "subContext", + "getResult", + "_injector", + "UIInjectorImpl", + "availableResolvables", + "_node", + "fromInjector", + "injector", + "getNative", + "native", + "stateSelf", + "defer", + "_deferred", + "_targetState", + "_transitionCount", + "buildToPath", + "_treeChanges", + "createTransitionHookRegFns", + "onCreateHooks", + "_hookBuilder", + "buildHooksForPhase", + "invokeHooks", + "applyViewConfigs", + "makeEvent", + "enteringStates", + "$from", + "$to", + "compare", + "pathname", + "freeze", + "pathName", + "getTokens", + "topath", + "targetNode", + "addResolvables", + "rf", + "originalTransition", + "redirects", + "redirectOpts", + "newOptions", + "withOptions", + "newTransition", + "originalEnteringNodes", + "redirectEnteringNodes", + "nodeIsReloading", + "tc", + "reload", + "nodeSchemas", + "schema", + "toVals", + "fromVals", + "changes", + "_changedParams", + "same", + "newTC", + "pendTC", + "runAllHooks", + "getHooksFor", + "allBeforeHooks", + "BEFORE", + "lastStartedTransitionId", + "transitionHistory", + "enqueue", + "traceTransitionStart", + "allRunHooks", + "traceSuccess", + "success", + "SUCCESS", + "traceError", + "_error", + "abstract", + "paramDefs", + "invalidParams", + "fromStateOrName", + "toStateOrName", + "avoidEmptyHash", + "stringifyPatternFn", + "isRejection", + "isRejectionPromise", + "beforeAfterSubstr", + "char", + "hostRegex", + "splitHash", + "splitQuery", + "splitEqual", + "trimHashVal", + "ParamTypes", + "types", + "defaultTypes", + "definition", + "definitionFn", + "typeQueue", + "_flushTypeQueue", + "makeDefaultType", + "valToString", + "defaultTypeBase", + "String", + "query", + "int", + "bool", + "Boolean", + "date", + "getFullYear", + "getMonth", + "getDate", + "capture", + "Date", + "valueOf", + "json", + "initDefaultTypes", + "defaultRuleSortFn", + "StateParams", + "parentParams", + "parents", + "ancestors", + "inherited", + "inheritList", + "parseUrl", + "charAt", + "substring", + "getUrlBuilder", + "$urlMatcherFactoryProvider", + "stateDec", + "paramMap", + "paramConfig", + "reloadOnSearch", + "isMatcher", + "navigable", + "append", + "getNavigableBuilder", + "isRoot", + "getParamsBuilder", + "paramFactory", + "urlParams", + "nonUrlParams", + "fromConfig", + "builders", + "nameBuilder", + "selfBuilder", + "parentName", + "dataBuilder", + "pathBuilder", + "includesBuilder", + "resolvablesBuilder", + "StateBuilder", + "parentFn", + "segments", + "pop", + "_states", + "StateMatcher", + "stateOrName", + "matchGlob", + "isStr", + "isRelative", + "resolvePath", + "baseState", + "splitName", + "pathLength", + "relName", + "$registry", + "$urlRouter", + "builder", + "listeners", + "queue", + "StateQueueManager", + "flush", + "registered", + "orphans", + "previousQueueLength", + "getState", + "name_1", + "build", + "orphanIdx", + "existingState", + "existingFutureState", + "attachRoute", + "listener", + "s", + "rule", + "urlRuleFactory", + "_router", + "stateQueue", + "urlRouter", + "_registerRoot", + "StateRegistry", + "rootStateDef", + "#", + "_root", + "stateDefinition", + "getChildren", + "deregistered", + "$ur", + "rules", + "removeRule", + "deregisteredStates", + "_deregisterTree", + "found", + "func", + "memoizeTo", + "splitOnSlash", + "splitOnDelim", + "strict", + "caseInsensitive", + "m", + "segment", + "placeholder", + "searchPlaceholder", + "last", + "patterns", + "checkParamErrors", + "UrlMatcher", + "nameValidator", + "matchDetails", + "index", + "makeRegexpType", + "_segments", + "lastIndex", + "fromSearch", + "_compiled", + "quoteRegExp", + "_children", + "_cache", + "allParams", + "pathParams", + "searchParams", + "nPathSegments", + "urlm", + "reverseString", + "decodePathArray", + "findParam", + "validParamVal", + "isValid", + "isDefaultValue", + "urlMatchers", + "pathSegmentsAndParams", + "getDetails", + "queryParams", + "pathString", + "encodeDashes", + "encodeURIComponent", + "queryString", + "paramDetails", + "c", + "charCodeAt", + "joinNeighborsR", + "weights", + "weightsA", + "weightsB", + "padVal", + "len", + "padArrays", + "cmp", + "_isStrictMode", + "_isCaseInsensitive", + "UrlMatcherFactory", + "_defaultSquashPolicy", + "_getConfig", + "object", + "UrlRuleFactory", + "what", + "makeRule", + "_what", + "fromUrlMatcher", + "fromState", + "fromRegExp", + "BaseUrlRule", + "urlMatcher", + "_handler", + "details", + "matchPriority", + "optional", + "transitionTo", + "sticky", + "Number", + "prioritySort", + "typeSort", + "URLMATCHER", + "REGEXP", + "RAW", + "OTHER", + "urlMatcherSort", + "idSort", + "useMatchPriority", + "createProxyFunctions", + "UrlRouter", + "listen", + "_rules", + "_otherwiseFn", + "compareFn", + "stableSort", + "_sortFn", + "_sorted", + "arrOfWrapper", + "wrapperA", + "wrapperB", + "cmpDiff", + "wrapper", + "ensureSorted", + "best", + "weight", + "checkRule", + "evt", + "defaultPrevented", + "$url", + "urlService", + "newurl", + "applyResult", + "_stopFn", + "onChange", + "sync", + "read", + "html5Mode", + "hashPrefix", + "appendBasePath", + "slash", + "port", + "protocol", + "host", + "isUrlRule", + "_id", + "handlerFn", + "getHandlerFn", + "urlParts", + "interceptDeferred", + "_rootViewContext", + "_registeredUIViews", + "_uiViews", + "_activeViewConfigs", + "_viewConfigs", + "_rootContext", + "viewType", + "factory", + "_viewConfigFactories", + "cfgFactory", + "cfgs", + "traceViewServiceEvent", + "count", + "uiViewsByFqn", + "uiv", + "depthCompare", + "depthFn", + "posNeg", + "uiView", + "stateDepth", + "matchingConfigs", + "viewConfigDepth", + "traceViewSync", + "configUpdated", + "traceViewServiceUIViewEvent", + "uiViews", + "rawViewName", + "viewAtContext", + "relativeViewNameSugar", + "anchor", + "vc", + "vcSegments", + "uivSegments", + "negOffset", + "fqnToFirstSegment", + "uiViewContext", + "UIRouterGlobals", + "clear", + "successfulTransitions", + "makeStub", + "locationServicesFns", + "locationConfigFns", + "umfFns", + "rulesFns", + "syncFns", + "lateBind", + "locationServices", + "umf", + "UrlService", + "_routerInstance", + "locationServiceStub", + "locationConfigStub", + "TransitionService", + "StateService", + "disposable", + "_disposables", + "plugin", + "pluginInstance", + "_plugins", + "pluginName", + "registerAddCoreResolvables", + "onCreate", + "addCoreResolvables", + "redirectToHook", + "redirect", + "redirectTo", + "registerRedirectToHook", + "onStart", + "onExitHook", + "makeEnterExitRetainHook", + "registerOnExitHook", + "onExit", + "onRetainHook", + "registerOnRetainHook", + "onRetain", + "onEnterHook", + "registerOnEnterHook", + "onEnter", + "eagerResolvePath", + "registerEagerResolvePath", + "lazyResolveState", + "registerLazyResolveState", + "loadEnteringViews", + "enteringViews", + "load", + "registerLoadEnteringViews", + "onFinish", + "activateViews", + "exitingViews", + "deactivateViewConfig", + "activateViewConfig", + "registerActivateViews", + "updateGlobalState", + "clearCurrentTransition", + "copy", + "registerUpdateGlobalState", + "updateUrl", + "urlOptions", + "update", + "registerUpdateUrl", + "lazyLoadHook", + "lazyLoadState", + "orig", + "identifier", + "parts", + "registerLazyLoadHook", + "hookOrder", + "HANDLE_RESULT", + "REJECT_ERROR", + "registerIgnoredTransitionHook", + "ignoredHook", + "registerInvalidTransitionHook", + "invalidTransitionHook", + "defaultTransOpts", + "notify", + "custom", + "_deregisterHookFns", + "_defineCorePaths", + "_defineCoreEvents", + "_registerCoreTransitionHooks", + "hooksArray", + "Phase", + "TH", + "paths", + "_criteriaPaths", + "_defineEvent", + "LOG_REJECTED_RESULT", + "THROW_ERROR", + "LOG_ERROR", + "_definePathType", + "TransitionEventType", + "_eventTypes", + "cmpByPhase", + "hookScope", + "fns", + "addCoreResolves", + "invalid", + "eagerResolve", + "lazyResolve", + "loadViews", + "updateGlobals", + "$error$", + "stack", + "getters", + "boundFns", + "invalidCallbacks", + "toState", + "nextCallback", + "callbackQueue", + "dequeue", + "checkForRedirect", + "invokeNextCallback", + "makeTargetState", + "latestThing", + "peekTail", + "latest", + "transOpts", + "latestSuccess", + "currentPath", + "getCurrentPath", + "exists", + "_handleInvalidTargetState", + "rejectedTransitionHandler", + "isLatest", + "run", + "errorHandler", + "transitionToPromise", + "include", + "lossy", + "$inherit", + "nav", + "_defaultErrorHandler", + "Promise", + "deferred", + "STRIP_COMMENTS", + "ARGUMENT_NAMES", + "has", + "ensureExist", + "keyValsToObjectR", + "accum", + "getParams", + "buildUrl", + "loc", + "searchObject", + "fireAfterUpdate", + "_listeners", + "_get", + "_location", + "_history", + "history", + "BaseLocationServices", + "_super", + "addEventListener", + "_listener", + "__extends", + "HashLocationService", + "title", + "removeEventListener", + "MemoryLocationService", + "_url", + "_config", + "PushStateLocationService", + "basePrefix", + "_getBasePrefix", + "exactMatch", + "startsWith", + "fullUrl", + "replaceState", + "pushState", + "_port", + "_protocol", + "_host", + "_baseHref", + "newval", + "_hashPrefix", + "_isHtml5", + "BrowserLocationConfig", + "hostname", + "newprefix", + "applyDocumentBaseHref", + "baseTag", + "document", + "getElementsByTagName", + "origin", + "hashLocationPlugin", + "locationPluginFactory", + "pushStateLocationPlugin", + "memoryLocationPlugin", + "MemoryLocationConfig", + "UIRouterPluginBase", + "makeComponentTemplate", + "bindings", + "template", + "getController", + "results", + "provider", + "controllerProvider", + "providerFn", + "version", + "minor", + "$templateRequest", + "TemplateFactory", + "_useHttp", + "asTemplate", + "asComponent", + "templateUrl", + "fromUrl", + "templateProvider", + "fromProvider", + "componentProvider", + "fromComponentProvider", + "headers", + "Accept", + "response", + "prefix", + "kebob", + "kebobed", + "attrs", + "getComponentBindings", + "attrName", + "resolveName", + "scopeBindings", + "bindToController", + "bindingsObj", + "onInvalid", + "$state$", + "_lp", + "_urlListeners", + "newUrl", + "_loc", + "_browser", + "pathType", + "~", + "/", + "~~", + "~2F", + "_urlRouter", + "UrlRouterProvider", + "ruleFn", + "otherwise", + "injectableHandler", + "$match", + "$stateParams", + "deferIntercept", + "module", + "mod_init", + "mod_util", + "mod_rtr", + "mod_state", + "mod_main", + "getProviderFor", + "serviceName", + "$urp", + "runBlock", + "watchDigests", + "uiRouter", + "urlRouterProvider", + "$urlMatcherFactory", + "uiSref", + "ctx", + "require", + "uiSrefActive", + "unlinkInfoFn", + "active", + "$$addStateInfo", + "$set", + "getTypeInfo", + "rawDef", + "processedDef", + "parseStateRef", + "uiSrefOpts", + "$eval", + "onStatesChanged", + "clickHook", + "bindEvents", + "inputAttrs", + "watchDeregFns", + "field", + "$observe", + "expr", + "$interpolate", + "$attrs", + "stateParams", + "activeClass", + "stateInfo", + "splitClasses", + "getClasses", + "stateList", + "allClasses", + "activeEqClass", + "fuzzyClasses", + "exactClasses", + "addClasses", + "removeClasses", + "cls", + "$evalAsync", + "className", + "addClass", + "removeClass", + "uiSrefActiveEq", + "addState", + "newState", + "updateAfterTransition", + "directive", + "$IsStateFilter", + "$IncludedByStateFilter", + "$animate", + "$uiViewScroll", + "enter", + "leave", + "config1", + "config2", + "rootData", + "terminal", + "transclude", + "tAttrs", + "$transclude", + "previousEl", + "remove", + "currentScope", + "activeUIView", + "$destroy", + "currentEl", + "_viewData_1", + "renderer", + "$$animLeave", + "newScope", + "$new", + "animEnter", + "animLeave", + "$uiViewData", + "$uiViewAnim", + "$animEnter", + "$animLeave", + "$emit", + "autoScrollExp", + "cleanupLastView", + "onloadExp", + "unregister", + "getRenderer", + "configsEqual", + "traceUIViewConfigUpdated", + "updateView", + "fromParentTagConfig", + "fromParentTag", + "registerUIView", + "$ViewDirectiveFill", + "useAnchorScroll", + "$anchorScroll", + "scrollIntoView" + ], + "mappings": "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" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js index 502edb4514..75c6582794 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js @@ -1,6 +1,6 @@ /** * State-based routing for AngularJS 1.x - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ diff --git a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js.map b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js.map index 693138798f..943fe6d769 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.js.map @@ -1 +1,19 @@ -{"version":3,"file":"resolveService.js","sources":["@uirouter/angularjs/legacy/resolveService.ts"],"sourcesContent":["/** @module ng1 */ /** */\nimport { StateObject, PathNode, ResolveContext, Obj, mapObj, resolvablesBuilder } from \"@uirouter/core\";\nimport * as angular from \"angular\";\n\n/**\n * Implementation of the legacy `$resolve` service for angular 1.\n */\nvar $resolve = {\n /**\n * Asynchronously injects a resolve block.\n *\n * This emulates most of the behavior of the ui-router 0.2.x $resolve.resolve() service API.\n *\n * ### Not bundled by default\n *\n * This API is no longer not part of the standard `@uirouter/angularjs` bundle.\n * For users of the prebuilt bundles, add the `release/resolveService.min.js` UMD bundle.\n * For bundlers (webpack, browserify, etc), add `@uirouter/angularjs/lib/legacy/resolveService`.\n *\n * ---\n *\n * Given an object `invocables`, where keys are strings and values are injectable functions,\n * injects each function, and waits for the resulting promise to resolve.\n * When all resulting promises are resolved, returns the results as an object.\n *\n * #### Example:\n * ```js\n * let invocables = {\n * foo: [ '$http', ($http) =>\n * $http.get('/api/foo').then(resp => resp.data) ],\n * bar: [ 'foo', '$http', (foo, $http) =>\n * $http.get('/api/bar/' + foo.barId).then(resp => resp.data) ]\n * }\n * $resolve.resolve(invocables)\n * .then(results => console.log(results.foo, results.bar))\n * // Logs foo and bar:\n * // { id: 123, barId: 456, fooData: 'foo data' }\n * // { id: 456, barData: 'bar data' }\n * ```\n *\n * @param invocables an object which looks like an [[StateDeclaration.resolve]] object; keys are resolve names and values are injectable functions\n * @param locals key/value pre-resolved data (locals)\n * @param parent a promise for a \"parent resolve\"\n */\n resolve: (invocables: { [key: string]: Function }, locals = {}, parent?: Promise) => {\n let parentNode = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let node = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let context = new ResolveContext([parentNode, node]);\n\n context.addResolvables(resolvablesBuilder( { resolve: invocables }), node.state);\n\n const resolveData = (parentLocals: Obj) => {\n const rewrap = (_locals: Obj) => resolvablesBuilder( { resolve: mapObj(_locals, local => () => local) });\n context.addResolvables(rewrap(parentLocals), parentNode.state);\n context.addResolvables(rewrap(locals), node.state);\n\n const tuples2ObjR = (acc: Obj, tuple: { token: any, value: any }) => {\n acc[tuple.token] = tuple.value;\n return acc;\n };\n return context.resolvePath().then(results => results.reduce(tuples2ObjR, {}));\n };\n\n return parent ? parent.then(resolveData) : resolveData({});\n }\n};\n\n/** @hidden */\nexport const resolveFactory = () => $resolve;\n\n// The old $resolve service\nangular.module('ui.router').factory('$resolve', resolveFactory);\n"],"names":["PathNode","StateObject","ResolveContext","resolvablesBuilder","mapObj","angular.module"],"mappings":";;;;;;;;;;;;AAAA;AACA,AAGA;;;AAGA,IAAI,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCb,OAAO,EAAE,UAAC,UAAuC,EAAE,MAAW,EAAE,MAAqB;QAAlC,uBAAA,EAAA,WAAW;QAC5D,IAAI,UAAU,GAAG,IAAIA,aAAQ,CAAC,IAAIC,gBAAW,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACtF,IAAI,IAAI,GAAG,IAAID,aAAQ,CAAC,IAAIC,gBAAW,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,OAAO,GAAG,IAAIC,mBAAc,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAErD,OAAO,CAAC,cAAc,CAACC,uBAAkB,CAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtF,IAAM,WAAW,GAAG,UAAC,YAAiB;YACpC,IAAM,MAAM,GAAG,UAAC,OAAY,IAAK,OAAAA,uBAAkB,CAAO,EAAE,OAAO,EAAEC,WAAM,CAAC,OAAO,EAAE,UAAA,KAAK,IAAI,OAAA,cAAM,OAAA,KAAK,GAAA,GAAA,CAAC,EAAE,CAAC,GAAA,CAAC;YAC9G,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/D,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnD,IAAM,WAAW,GAAG,UAAC,GAAQ,EAAE,KAAiC;gBAC9D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,OAAO,GAAG,CAAC;aACZ,CAAC;YACF,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,GAAA,CAAC,CAAC;SAC/E,CAAC;QAEF,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;KAC5D;CACF,CAAC;;AAGF,AAAO,IAAM,cAAc,GAAG,cAAM,OAAA,QAAQ,GAAA,CAAC;;AAG7CC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,EAAQ,cAAc,CAAC,CAAC;;;;;;;;;;;;"} \ No newline at end of file +{ + "version": 3, + "file": "resolveService.js", + "sources": [ + "@uirouter/angularjs/src/legacy/resolveService.ts" + ], + "sourcesContent": [ + "/** @module ng1 */ /** */\nimport { StateObject, PathNode, ResolveContext, Obj, mapObj, resolvablesBuilder } from \"@uirouter/core\";\nimport * as angular from \"angular\";\n\n/**\n * Implementation of the legacy `$resolve` service for angular 1.\n */\nvar $resolve = {\n /**\n * Asynchronously injects a resolve block.\n *\n * This emulates most of the behavior of the ui-router 0.2.x $resolve.resolve() service API.\n *\n * ### Not bundled by default\n *\n * This API is no longer not part of the standard `@uirouter/angularjs` bundle.\n * For users of the prebuilt bundles, add the `release/resolveService.min.js` UMD bundle.\n * For bundlers (webpack, browserify, etc), add `@uirouter/angularjs/lib/legacy/resolveService`.\n *\n * ---\n *\n * Given an object `invocables`, where keys are strings and values are injectable functions,\n * injects each function, and waits for the resulting promise to resolve.\n * When all resulting promises are resolved, returns the results as an object.\n *\n * #### Example:\n * ```js\n * let invocables = {\n * foo: [ '$http', ($http) =>\n * $http.get('/api/foo').then(resp => resp.data) ],\n * bar: [ 'foo', '$http', (foo, $http) =>\n * $http.get('/api/bar/' + foo.barId).then(resp => resp.data) ]\n * }\n * $resolve.resolve(invocables)\n * .then(results => console.log(results.foo, results.bar))\n * // Logs foo and bar:\n * // { id: 123, barId: 456, fooData: 'foo data' }\n * // { id: 456, barData: 'bar data' }\n * ```\n *\n * @param invocables an object which looks like an [[StateDeclaration.resolve]] object; keys are resolve names and values are injectable functions\n * @param locals key/value pre-resolved data (locals)\n * @param parent a promise for a \"parent resolve\"\n */\n resolve: (invocables: { [key: string]: Function }, locals = {}, parent?: Promise) => {\n let parentNode = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let node = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let context = new ResolveContext([parentNode, node]);\n\n context.addResolvables(resolvablesBuilder( { resolve: invocables }), node.state);\n\n const resolveData = (parentLocals: Obj) => {\n const rewrap = (_locals: Obj) => resolvablesBuilder( { resolve: mapObj(_locals, local => () => local) });\n context.addResolvables(rewrap(parentLocals), parentNode.state);\n context.addResolvables(rewrap(locals), node.state);\n\n const tuples2ObjR = (acc: Obj, tuple: { token: any, value: any }) => {\n acc[tuple.token] = tuple.value;\n return acc;\n };\n return context.resolvePath().then(results => results.reduce(tuples2ObjR, {}));\n };\n\n return parent ? parent.then(resolveData) : resolveData({});\n }\n};\n\n/** @hidden */\nexport const resolveFactory = () => $resolve;\n\n// The old $resolve service\nangular.module('ui.router').factory('$resolve', resolveFactory);\n" + ], + "names": [ + "PathNode", + "StateObject", + "ResolveContext", + "resolvablesBuilder", + "mapObj", + "angular.module" + ], + "mappings": ";;;;;;;;;;;;AAAA;AACA,AAGA;;;AAGA,IAAI,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqCb,OAAO,EAAE,UAAC,UAAuC,EAAE,MAAW,EAAE,MAAqB;QAAlC,uBAAA,EAAA,WAAW;QAC5D,IAAI,UAAU,GAAG,IAAIA,aAAQ,CAAC,IAAIC,gBAAW,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACtF,IAAI,IAAI,GAAG,IAAID,aAAQ,CAAC,IAAIC,gBAAW,CAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,OAAO,GAAG,IAAIC,mBAAc,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAErD,OAAO,CAAC,cAAc,CAACC,uBAAkB,CAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtF,IAAM,WAAW,GAAG,UAAC,YAAiB;YACpC,IAAM,MAAM,GAAG,UAAC,OAAY,IAAK,OAAAA,uBAAkB,CAAO,EAAE,OAAO,EAAEC,WAAM,CAAC,OAAO,EAAE,UAAA,KAAK,IAAI,OAAA,cAAM,OAAA,KAAK,GAAA,GAAA,CAAC,EAAE,CAAC,GAAA,CAAC;YAC9G,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/D,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnD,IAAM,WAAW,GAAG,UAAC,GAAQ,EAAE,KAAiC;gBAC9D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,OAAO,GAAG,CAAC;aACZ,CAAC;YACF,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,GAAA,CAAC,CAAC;SAC/E,CAAC;QAEF,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;KAC5D;CACF,CAAC;;AAGF,AAAO,IAAM,cAAc,GAAG,cAAM,OAAA,QAAQ,GAAA,CAAC;;AAG7CC,cAAc,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,EAAQ,cAAc,CAAC,CAAC;;;;;;;;;;;;" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js index 7811d1b4cc..00c54e1eff 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js @@ -1,6 +1,6 @@ /** * State-based routing for AngularJS 1.x - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ diff --git a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js.map b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js.map index 9aca6672a3..a3d70a149e 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/resolveService.min.js.map @@ -1 +1,47 @@ -{"version":3,"file":"resolveService.min.js","sources":["@uirouter/angularjs/legacy/resolveService.ts"],"sourcesContent":["/** @module ng1 */ /** */\nimport { StateObject, PathNode, ResolveContext, Obj, mapObj, resolvablesBuilder } from \"@uirouter/core\";\nimport * as angular from \"angular\";\n\n/**\n * Implementation of the legacy `$resolve` service for angular 1.\n */\nvar $resolve = {\n /**\n * Asynchronously injects a resolve block.\n *\n * This emulates most of the behavior of the ui-router 0.2.x $resolve.resolve() service API.\n *\n * ### Not bundled by default\n *\n * This API is no longer not part of the standard `@uirouter/angularjs` bundle.\n * For users of the prebuilt bundles, add the `release/resolveService.min.js` UMD bundle.\n * For bundlers (webpack, browserify, etc), add `@uirouter/angularjs/lib/legacy/resolveService`.\n *\n * ---\n *\n * Given an object `invocables`, where keys are strings and values are injectable functions,\n * injects each function, and waits for the resulting promise to resolve.\n * When all resulting promises are resolved, returns the results as an object.\n *\n * #### Example:\n * ```js\n * let invocables = {\n * foo: [ '$http', ($http) =>\n * $http.get('/api/foo').then(resp => resp.data) ],\n * bar: [ 'foo', '$http', (foo, $http) =>\n * $http.get('/api/bar/' + foo.barId).then(resp => resp.data) ]\n * }\n * $resolve.resolve(invocables)\n * .then(results => console.log(results.foo, results.bar))\n * // Logs foo and bar:\n * // { id: 123, barId: 456, fooData: 'foo data' }\n * // { id: 456, barData: 'bar data' }\n * ```\n *\n * @param invocables an object which looks like an [[StateDeclaration.resolve]] object; keys are resolve names and values are injectable functions\n * @param locals key/value pre-resolved data (locals)\n * @param parent a promise for a \"parent resolve\"\n */\n resolve: (invocables: { [key: string]: Function }, locals = {}, parent?: Promise) => {\n let parentNode = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let node = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let context = new ResolveContext([parentNode, node]);\n\n context.addResolvables(resolvablesBuilder( { resolve: invocables }), node.state);\n\n const resolveData = (parentLocals: Obj) => {\n const rewrap = (_locals: Obj) => resolvablesBuilder( { resolve: mapObj(_locals, local => () => local) });\n context.addResolvables(rewrap(parentLocals), parentNode.state);\n context.addResolvables(rewrap(locals), node.state);\n\n const tuples2ObjR = (acc: Obj, tuple: { token: any, value: any }) => {\n acc[tuple.token] = tuple.value;\n return acc;\n };\n return context.resolvePath().then(results => results.reduce(tuples2ObjR, {}));\n };\n\n return parent ? parent.then(resolveData) : resolveData({});\n }\n};\n\n/** @hidden */\nexport const resolveFactory = () => $resolve;\n\n// The old $resolve service\nangular.module('ui.router').factory('$resolve', resolveFactory);\n"],"names":["$resolve","resolve","invocables","locals","parent","parentNode","PathNode","StateObject","params","resolvables","node","context","ResolveContext","addResolvables","resolvablesBuilder","state","resolveData","parentLocals","rewrap","_locals","mapObj","local","tuples2ObjR","acc","tuple","token","value","resolvePath","then","results","reduce","resolveFactory","angular.module","factory"],"mappings":";;;;;;mUAOA,IAAIA,GAqCFC,QAAS,SAACC,EAAyCC,EAAaC,gBAAbD,MACjD,IAAIE,EAAa,IAAIC,WAAS,IAAIC,eAAoBC,UAAYC,kBAC9DC,EAAO,IAAIJ,WAAS,IAAIC,eAAoBC,UAAYC,kBACxDE,EAAU,IAAIC,kBAAgBP,EAAYK,IAE9CC,EAAQE,eAAeC,sBAA2Bb,QAASC,IAAeQ,EAAKK,OAE/E,IAAMC,EAAc,SAACC,GACnB,IAAMC,EAAS,SAACC,GAAiB,OAAAL,sBAA2Bb,QAASmB,SAAOD,EAAS,SAAAE,GAAS,OAAA,WAAM,OAAAA,QACpGV,EAAQE,eAAeK,EAAOD,GAAeZ,EAAWU,OACxDJ,EAAQE,eAAeK,EAAOf,GAASO,EAAKK,OAE5C,IAAMO,EAAc,SAACC,EAAUC,GAE7B,OADAD,EAAIC,EAAMC,OAASD,EAAME,MAClBH,GAET,OAAOZ,EAAQgB,cAAcC,KAAK,SAAAC,GAAW,OAAAA,EAAQC,OAAOR,SAG9D,OAAOlB,EAASA,EAAOwB,KAAKZ,GAAeA,QAKlCe,EAAiB,WAAM,OAAA/B,GAGpCgC,SAAe,aAAaC,QAAQ,WAAkBF"} \ No newline at end of file +{ + "version": 3, + "file": "resolveService.min.js", + "sources": [ + "@uirouter/angularjs/src/legacy/resolveService.ts" + ], + "sourcesContent": [ + "/** @module ng1 */ /** */\nimport { StateObject, PathNode, ResolveContext, Obj, mapObj, resolvablesBuilder } from \"@uirouter/core\";\nimport * as angular from \"angular\";\n\n/**\n * Implementation of the legacy `$resolve` service for angular 1.\n */\nvar $resolve = {\n /**\n * Asynchronously injects a resolve block.\n *\n * This emulates most of the behavior of the ui-router 0.2.x $resolve.resolve() service API.\n *\n * ### Not bundled by default\n *\n * This API is no longer not part of the standard `@uirouter/angularjs` bundle.\n * For users of the prebuilt bundles, add the `release/resolveService.min.js` UMD bundle.\n * For bundlers (webpack, browserify, etc), add `@uirouter/angularjs/lib/legacy/resolveService`.\n *\n * ---\n *\n * Given an object `invocables`, where keys are strings and values are injectable functions,\n * injects each function, and waits for the resulting promise to resolve.\n * When all resulting promises are resolved, returns the results as an object.\n *\n * #### Example:\n * ```js\n * let invocables = {\n * foo: [ '$http', ($http) =>\n * $http.get('/api/foo').then(resp => resp.data) ],\n * bar: [ 'foo', '$http', (foo, $http) =>\n * $http.get('/api/bar/' + foo.barId).then(resp => resp.data) ]\n * }\n * $resolve.resolve(invocables)\n * .then(results => console.log(results.foo, results.bar))\n * // Logs foo and bar:\n * // { id: 123, barId: 456, fooData: 'foo data' }\n * // { id: 456, barData: 'bar data' }\n * ```\n *\n * @param invocables an object which looks like an [[StateDeclaration.resolve]] object; keys are resolve names and values are injectable functions\n * @param locals key/value pre-resolved data (locals)\n * @param parent a promise for a \"parent resolve\"\n */\n resolve: (invocables: { [key: string]: Function }, locals = {}, parent?: Promise) => {\n let parentNode = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let node = new PathNode(new StateObject( { params: {}, resolvables: [] }));\n let context = new ResolveContext([parentNode, node]);\n\n context.addResolvables(resolvablesBuilder( { resolve: invocables }), node.state);\n\n const resolveData = (parentLocals: Obj) => {\n const rewrap = (_locals: Obj) => resolvablesBuilder( { resolve: mapObj(_locals, local => () => local) });\n context.addResolvables(rewrap(parentLocals), parentNode.state);\n context.addResolvables(rewrap(locals), node.state);\n\n const tuples2ObjR = (acc: Obj, tuple: { token: any, value: any }) => {\n acc[tuple.token] = tuple.value;\n return acc;\n };\n return context.resolvePath().then(results => results.reduce(tuples2ObjR, {}));\n };\n\n return parent ? parent.then(resolveData) : resolveData({});\n }\n};\n\n/** @hidden */\nexport const resolveFactory = () => $resolve;\n\n// The old $resolve service\nangular.module('ui.router').factory('$resolve', resolveFactory);\n" + ], + "names": [ + "$resolve", + "resolve", + "invocables", + "locals", + "parent", + "parentNode", + "PathNode", + "StateObject", + "params", + "resolvables", + "node", + "context", + "ResolveContext", + "addResolvables", + "resolvablesBuilder", + "state", + "resolveData", + "parentLocals", + "rewrap", + "_locals", + "mapObj", + "local", + "tuples2ObjR", + "acc", + "tuple", + "token", + "value", + "resolvePath", + "then", + "results", + "reduce", + "resolveFactory", + "angular.module", + "factory" + ], + "mappings": ";;;;;;mUAOA,IAAIA,GAqCFC,QAAS,SAACC,EAAyCC,EAAaC,gBAAbD,MACjD,IAAIE,EAAa,IAAIC,WAAS,IAAIC,eAAoBC,UAAYC,kBAC9DC,EAAO,IAAIJ,WAAS,IAAIC,eAAoBC,UAAYC,kBACxDE,EAAU,IAAIC,kBAAgBP,EAAYK,IAE9CC,EAAQE,eAAeC,sBAA2Bb,QAASC,IAAeQ,EAAKK,OAE/E,IAAMC,EAAc,SAACC,GACnB,IAAMC,EAAS,SAACC,GAAiB,OAAAL,sBAA2Bb,QAASmB,SAAOD,EAAS,SAAAE,GAAS,OAAA,WAAM,OAAAA,QACpGV,EAAQE,eAAeK,EAAOD,GAAeZ,EAAWU,OACxDJ,EAAQE,eAAeK,EAAOf,GAASO,EAAKK,OAE5C,IAAMO,EAAc,SAACC,EAAUC,GAE7B,OADAD,EAAIC,EAAMC,OAASD,EAAME,MAClBH,GAET,OAAOZ,EAAQgB,cAAcC,KAAK,SAAAC,GAAW,OAAAA,EAAQC,OAAOR,SAG9D,OAAOlB,EAASA,EAAOwB,KAAKZ,GAAeA,QAKlCe,EAAiB,WAAM,OAAA/B,GAGpCgC,SAAe,aAAaC,QAAQ,WAAkBF" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js index 3486727ae3..87621c82df 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js @@ -1,6 +1,6 @@ /** * State-based routing for AngularJS 1.x - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ diff --git a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js.map b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js.map index 20613afa1d..6f39c9390b 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.js.map @@ -1 +1,17 @@ -{"version":3,"file":"stateEvents.js","sources":["@uirouter/angularjs/angular.ts","@uirouter/angularjs/legacy/stateEvents.ts"],"sourcesContent":["/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n","/**\n * # Legacy state events\n *\n * Polyfill implementation of the UI-Router 0.2.x state events.\n *\n * The 0.2.x state events are deprecated. We recommend moving to Transition Hooks instead, as they\n * provide much more flexibility, support async, and provide the context (the Transition, etc) necessary\n * to implement meaningful application behaviors.\n *\n * To enable these state events, include the `stateEvents.js` file in your project, e.g.,\n * ```\n * \n * ```\n * and also make sure you depend on the `ui.router.state.events` angular module, e.g.,\n * ```\n * angular.module(\"myApplication\", ['ui.router', 'ui.router.state.events']\n * ```\n *\n * @module ng1_state_events\n */ /** */\nimport { ng as angular } from \"../angular\";\nimport { IScope, IAngularEvent, IServiceProviderFactory } from \"angular\";\nimport {\n Obj, TargetState, StateService, Transition, TransitionService, UrlRouter, HookResult, UIInjector\n} from \"@uirouter/core\";\nimport { StateProvider } from \"../stateProvider\";\n\n/**\n * An event broadcast on `$rootScope` when the state transition **begins**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * You can use `event.preventDefault()`\n * to prevent the transition from happening and then the transition promise will be\n * rejected with a `'transition prevented'` value.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]]\n *\n * #### Example:\n * ```js\n * $rootScope.$on('$stateChangeStart', function(event, transition) {\n * event.preventDefault();\n * // transitionTo() promise will be rejected with\n * // a 'transition prevented' error\n * })\n * ```\n *\n * @event $stateChangeStart\n * @deprecated\n */\nexport var $stateChangeStart: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` if a transition is **cancelled**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that was cancelled\n *\n * @event $stateChangeCancel\n * @deprecated\n */\nexport var $stateChangeCancel: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` once the state transition is **complete**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onSuccess]]\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that just succeeded\n *\n * @event $stateChangeSuccess\n * @deprecated\n */\nexport var $stateChangeSuccess: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when an **error occurs** during transition.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onError]]\n *\n * It's important to note that if you\n * have any errors in your resolve functions (javascript errors, non-existent services, etc)\n * they will not throw traditionally. You must listen for this $stateChangeError event to\n * catch **ALL** errors.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `error`: The reason the transition errored.\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that errored\n *\n * @event $stateChangeError\n * @deprecated\n */\nexport var $stateChangeError: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when a requested state **cannot be found** using the provided state name.\n *\n * ### Deprecation warning: use [[StateService.onInvalid]] instead\n *\n * The event is broadcast allowing any handlers a single chance to deal with the error (usually by\n * lazy-loading the unfound state). A `TargetState` object is passed to the listener handler,\n * you can see its properties in the example. You can use `event.preventDefault()` to abort the\n * transition and the promise returned from `transitionTo()` will be rejected with a\n * `'transition aborted'` error.\n *\n * Additional arguments to the event handler are provided:\n * - `unfoundState` Unfound State information. Contains: `to, toParams, options` properties.\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n *\n * #### Example:\n * ```js\n * // somewhere, assume lazy.state has not been defined\n * $state.go(\"lazy.state\", { a: 1, b: 2 }, { inherit: false });\n *\n * // somewhere else\n * $scope.$on('$stateNotFound', function(event, transition) {\n * function(event, unfoundState, fromState, fromParams){\n * console.log(unfoundState.to); // \"lazy.state\"\n * console.log(unfoundState.toParams); // {a:1, b:2}\n * console.log(unfoundState.options); // {inherit:false} + default options\n * });\n * ```\n *\n * @event $stateNotFound\n * @deprecated\n */\nexport var $stateNotFound: IAngularEvent;\n\n\n(function () {\n let { isFunction, isString } = angular;\n\n function applyPairs(memo: Obj, keyValTuple: any[]) {\n let key: string, value: any;\n if (Array.isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n }\n\n function stateChangeStartHandler($transition$: Transition) {\n if (!$transition$.options().notify || !$transition$.valid() || $transition$.ignored())\n return;\n\n let $injector = $transition$.injector();\n let $stateEvents = $injector.get('$stateEvents');\n let $rootScope = $injector.get('$rootScope');\n let $state = $injector.get('$state');\n let $urlRouter = $injector.get('$urlRouter');\n\n let enabledEvents = $stateEvents.provider.enabled();\n\n\n let toParams = $transition$.params(\"to\");\n let fromParams = $transition$.params(\"from\");\n\n if (enabledEvents.$stateChangeSuccess) {\n let startEvent = $rootScope.$broadcast('$stateChangeStart', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n\n if (startEvent.defaultPrevented) {\n if (enabledEvents.$stateChangeCancel) {\n $rootScope.$broadcast('$stateChangeCancel', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }\n //Don't update and resync url if there's been a new transition started. see issue #2238, #600\n if ($state.transition == null) $urlRouter.update();\n return false;\n }\n\n // right after global state is updated\n let successOpts = { priority: 9999 };\n $transition$.onSuccess({}, function () {\n $rootScope.$broadcast('$stateChangeSuccess', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }, successOpts);\n }\n\n if (enabledEvents.$stateChangeError) {\n $transition$.promise[\"catch\"](function (error) {\n if (error && (error.type === 2 /* RejectType.SUPERSEDED */ || error.type === 3 /* RejectType.ABORTED */))\n return;\n\n\n let evt = $rootScope.$broadcast('$stateChangeError', $transition$.to(), toParams, $transition$.from(), fromParams, error, $transition$.options(), $transition$);\n\n if (!evt.defaultPrevented) {\n $urlRouter.update();\n }\n });\n }\n }\n\n stateNotFoundHandler.$inject = ['$to$', '$from$', '$state', '$rootScope', '$urlRouter'];\n function stateNotFoundHandler($to$: TargetState, $from$: TargetState, injector: UIInjector): HookResult {\n let $state: StateService = injector.get('$state');\n let $rootScope: IScope = injector.get('$rootScope');\n let $urlRouter: UrlRouter = injector.get('$urlRouter');\n\n interface StateNotFoundEvent extends IAngularEvent {\n retry: Promise;\n }\n\n let redirect = { to: $to$.identifier(), toParams: $to$.params(), options: $to$.options() };\n let e = $rootScope.$broadcast('$stateNotFound', redirect, $from$.state(), $from$.params());\n\n if (e.defaultPrevented || e.retry)\n $urlRouter.update();\n\n function redirectFn(): TargetState {\n return $state.target(redirect.to, redirect.toParams, redirect.options);\n }\n\n if (e.defaultPrevented) {\n return false;\n } else if (e.retry || !!$state.get(redirect.to)) {\n return e.retry && isFunction(e.retry.then) ? e.retry.then(redirectFn) : redirectFn();\n }\n }\n\n $StateEventsProvider.$inject = ['$stateProvider'];\n function $StateEventsProvider($stateProvider: StateProvider) {\n $StateEventsProvider.prototype.instance = this;\n\n interface IEventsToggle {\n [key: string]: boolean;\n $stateChangeStart: boolean;\n $stateNotFound: boolean;\n $stateChangeSuccess: boolean;\n $stateChangeError: boolean;\n }\n\n let runtime = false;\n let allEvents = ['$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError'];\n let enabledStateEvents = allEvents.map(e => [e, true]).reduce(applyPairs, {});\n\n function assertNotRuntime() {\n if (runtime) throw new Error(\"Cannot enable events at runtime (use $stateEventsProvider\");\n }\n\n /**\n * Enables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.enable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => enabledStateEvents[event] = true);\n };\n\n /**\n * Disables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.disable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => delete enabledStateEvents[event]);\n };\n\n this.enabled = () => enabledStateEvents;\n\n this.$get = $get;\n $get.$inject = ['$transitions'];\n function $get($transitions: TransitionService) {\n runtime = true;\n\n if (enabledStateEvents[\"$stateNotFound\"])\n $stateProvider.onInvalid(stateNotFoundHandler);\n if (enabledStateEvents.$stateChangeStart)\n $transitions.onBefore({}, stateChangeStartHandler, { priority: 1000 });\n\n return {\n provider: $StateEventsProvider.prototype.instance\n };\n }\n }\n\n\n angular.module('ui.router.state.events', ['ui.router.state'])\n .provider(\"$stateEvents\", $StateEventsProvider)\n .run(['$stateEvents', function ($stateEvents: any) { /* Invokes $get() */\n }]);\n})();\n"],"names":["ng_from_import.module","angular"],"mappings":"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"} \ No newline at end of file +{ + "version": 3, + "file": "stateEvents.js", + "sources": [ + "@uirouter/angularjs/src/angular.ts", + "@uirouter/angularjs/src/legacy/stateEvents.ts" + ], + "sourcesContent": [ + "/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n", + "/**\n * # Legacy state events\n *\n * Polyfill implementation of the UI-Router 0.2.x state events.\n *\n * The 0.2.x state events are deprecated. We recommend moving to Transition Hooks instead, as they\n * provide much more flexibility, support async, and provide the context (the Transition, etc) necessary\n * to implement meaningful application behaviors.\n *\n * To enable these state events, include the `stateEvents.js` file in your project, e.g.,\n * ```\n * \n * ```\n * and also make sure you depend on the `ui.router.state.events` angular module, e.g.,\n * ```\n * angular.module(\"myApplication\", ['ui.router', 'ui.router.state.events']\n * ```\n *\n * @module ng1_state_events\n */ /** */\nimport { ng as angular } from \"../angular\";\nimport { IScope, IAngularEvent, IServiceProviderFactory } from \"angular\";\nimport {\n Obj, TargetState, StateService, Transition, TransitionService, UrlRouter, HookResult, UIInjector\n} from \"@uirouter/core\";\nimport { StateProvider } from \"../stateProvider\";\n\n/**\n * An event broadcast on `$rootScope` when the state transition **begins**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * You can use `event.preventDefault()`\n * to prevent the transition from happening and then the transition promise will be\n * rejected with a `'transition prevented'` value.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]]\n *\n * #### Example:\n * ```js\n * $rootScope.$on('$stateChangeStart', function(event, transition) {\n * event.preventDefault();\n * // transitionTo() promise will be rejected with\n * // a 'transition prevented' error\n * })\n * ```\n *\n * @event $stateChangeStart\n * @deprecated\n */\nexport var $stateChangeStart: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` if a transition is **cancelled**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that was cancelled\n *\n * @event $stateChangeCancel\n * @deprecated\n */\nexport var $stateChangeCancel: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` once the state transition is **complete**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onSuccess]]\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that just succeeded\n *\n * @event $stateChangeSuccess\n * @deprecated\n */\nexport var $stateChangeSuccess: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when an **error occurs** during transition.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onError]]\n *\n * It's important to note that if you\n * have any errors in your resolve functions (javascript errors, non-existent services, etc)\n * they will not throw traditionally. You must listen for this $stateChangeError event to\n * catch **ALL** errors.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `error`: The reason the transition errored.\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that errored\n *\n * @event $stateChangeError\n * @deprecated\n */\nexport var $stateChangeError: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when a requested state **cannot be found** using the provided state name.\n *\n * ### Deprecation warning: use [[StateService.onInvalid]] instead\n *\n * The event is broadcast allowing any handlers a single chance to deal with the error (usually by\n * lazy-loading the unfound state). A `TargetState` object is passed to the listener handler,\n * you can see its properties in the example. You can use `event.preventDefault()` to abort the\n * transition and the promise returned from `transitionTo()` will be rejected with a\n * `'transition aborted'` error.\n *\n * Additional arguments to the event handler are provided:\n * - `unfoundState` Unfound State information. Contains: `to, toParams, options` properties.\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n *\n * #### Example:\n * ```js\n * // somewhere, assume lazy.state has not been defined\n * $state.go(\"lazy.state\", { a: 1, b: 2 }, { inherit: false });\n *\n * // somewhere else\n * $scope.$on('$stateNotFound', function(event, transition) {\n * function(event, unfoundState, fromState, fromParams){\n * console.log(unfoundState.to); // \"lazy.state\"\n * console.log(unfoundState.toParams); // {a:1, b:2}\n * console.log(unfoundState.options); // {inherit:false} + default options\n * });\n * ```\n *\n * @event $stateNotFound\n * @deprecated\n */\nexport var $stateNotFound: IAngularEvent;\n\n\n(function () {\n let { isFunction, isString } = angular;\n\n function applyPairs(memo: Obj, keyValTuple: any[]) {\n let key: string, value: any;\n if (Array.isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n }\n\n function stateChangeStartHandler($transition$: Transition) {\n if (!$transition$.options().notify || !$transition$.valid() || $transition$.ignored())\n return;\n\n let $injector = $transition$.injector();\n let $stateEvents = $injector.get('$stateEvents');\n let $rootScope = $injector.get('$rootScope');\n let $state = $injector.get('$state');\n let $urlRouter = $injector.get('$urlRouter');\n\n let enabledEvents = $stateEvents.provider.enabled();\n\n\n let toParams = $transition$.params(\"to\");\n let fromParams = $transition$.params(\"from\");\n\n if (enabledEvents.$stateChangeSuccess) {\n let startEvent = $rootScope.$broadcast('$stateChangeStart', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n\n if (startEvent.defaultPrevented) {\n if (enabledEvents.$stateChangeCancel) {\n $rootScope.$broadcast('$stateChangeCancel', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }\n //Don't update and resync url if there's been a new transition started. see issue #2238, #600\n if ($state.transition == null) $urlRouter.update();\n return false;\n }\n\n // right after global state is updated\n let successOpts = { priority: 9999 };\n $transition$.onSuccess({}, function () {\n $rootScope.$broadcast('$stateChangeSuccess', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }, successOpts);\n }\n\n if (enabledEvents.$stateChangeError) {\n $transition$.promise[\"catch\"](function (error) {\n if (error && (error.type === 2 /* RejectType.SUPERSEDED */ || error.type === 3 /* RejectType.ABORTED */))\n return;\n\n\n let evt = $rootScope.$broadcast('$stateChangeError', $transition$.to(), toParams, $transition$.from(), fromParams, error, $transition$.options(), $transition$);\n\n if (!evt.defaultPrevented) {\n $urlRouter.update();\n }\n });\n }\n }\n\n stateNotFoundHandler.$inject = ['$to$', '$from$', '$state', '$rootScope', '$urlRouter'];\n function stateNotFoundHandler($to$: TargetState, $from$: TargetState, injector: UIInjector): HookResult {\n let $state: StateService = injector.get('$state');\n let $rootScope: IScope = injector.get('$rootScope');\n let $urlRouter: UrlRouter = injector.get('$urlRouter');\n\n interface StateNotFoundEvent extends IAngularEvent {\n retry: Promise;\n }\n\n let redirect = { to: $to$.identifier(), toParams: $to$.params(), options: $to$.options() };\n let e = $rootScope.$broadcast('$stateNotFound', redirect, $from$.state(), $from$.params());\n\n if (e.defaultPrevented || e.retry)\n $urlRouter.update();\n\n function redirectFn(): TargetState {\n return $state.target(redirect.to, redirect.toParams, redirect.options);\n }\n\n if (e.defaultPrevented) {\n return false;\n } else if (e.retry || !!$state.get(redirect.to)) {\n return e.retry && isFunction(e.retry.then) ? e.retry.then(redirectFn) : redirectFn();\n }\n }\n\n $StateEventsProvider.$inject = ['$stateProvider'];\n function $StateEventsProvider($stateProvider: StateProvider) {\n $StateEventsProvider.prototype.instance = this;\n\n interface IEventsToggle {\n [key: string]: boolean;\n $stateChangeStart: boolean;\n $stateNotFound: boolean;\n $stateChangeSuccess: boolean;\n $stateChangeError: boolean;\n }\n\n let runtime = false;\n let allEvents = ['$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError'];\n let enabledStateEvents = allEvents.map(e => [e, true]).reduce(applyPairs, {});\n\n function assertNotRuntime() {\n if (runtime) throw new Error(\"Cannot enable events at runtime (use $stateEventsProvider\");\n }\n\n /**\n * Enables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.enable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => enabledStateEvents[event] = true);\n };\n\n /**\n * Disables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.disable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => delete enabledStateEvents[event]);\n };\n\n this.enabled = () => enabledStateEvents;\n\n this.$get = $get;\n $get.$inject = ['$transitions'];\n function $get($transitions: TransitionService) {\n runtime = true;\n\n if (enabledStateEvents[\"$stateNotFound\"])\n $stateProvider.onInvalid(stateNotFoundHandler);\n if (enabledStateEvents.$stateChangeStart)\n $transitions.onBefore({}, stateChangeStartHandler, { priority: 1000 });\n\n return {\n provider: $StateEventsProvider.prototype.instance\n };\n }\n }\n\n\n angular.module('ui.router.state.events', ['ui.router.state'])\n .provider(\"$stateEvents\", $StateEventsProvider)\n .run(['$stateEvents', function ($stateEvents: any) { /* Invokes $get() */\n }]);\n})();\n" + ], + "names": [ + "ng_from_import.module", + "angular" + ], + "mappings": "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" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js index 2fb83bad86..6945cc7860 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js @@ -1,6 +1,6 @@ /** * State-based routing for AngularJS 1.x - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ diff --git a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js.map b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js.map index a929e2d9a8..48c729bc75 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/stateEvents.min.js.map @@ -1 +1,102 @@ -{"version":3,"file":"stateEvents.min.js","sources":["@uirouter/angularjs/angular.ts","@uirouter/angularjs/legacy/stateEvents.ts"],"sourcesContent":["/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n","/**\n * # Legacy state events\n *\n * Polyfill implementation of the UI-Router 0.2.x state events.\n *\n * The 0.2.x state events are deprecated. We recommend moving to Transition Hooks instead, as they\n * provide much more flexibility, support async, and provide the context (the Transition, etc) necessary\n * to implement meaningful application behaviors.\n *\n * To enable these state events, include the `stateEvents.js` file in your project, e.g.,\n * ```\n * \n * ```\n * and also make sure you depend on the `ui.router.state.events` angular module, e.g.,\n * ```\n * angular.module(\"myApplication\", ['ui.router', 'ui.router.state.events']\n * ```\n *\n * @module ng1_state_events\n */ /** */\nimport { ng as angular } from \"../angular\";\nimport { IScope, IAngularEvent, IServiceProviderFactory } from \"angular\";\nimport {\n Obj, TargetState, StateService, Transition, TransitionService, UrlRouter, HookResult, UIInjector\n} from \"@uirouter/core\";\nimport { StateProvider } from \"../stateProvider\";\n\n/**\n * An event broadcast on `$rootScope` when the state transition **begins**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * You can use `event.preventDefault()`\n * to prevent the transition from happening and then the transition promise will be\n * rejected with a `'transition prevented'` value.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]]\n *\n * #### Example:\n * ```js\n * $rootScope.$on('$stateChangeStart', function(event, transition) {\n * event.preventDefault();\n * // transitionTo() promise will be rejected with\n * // a 'transition prevented' error\n * })\n * ```\n *\n * @event $stateChangeStart\n * @deprecated\n */\nexport var $stateChangeStart: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` if a transition is **cancelled**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that was cancelled\n *\n * @event $stateChangeCancel\n * @deprecated\n */\nexport var $stateChangeCancel: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` once the state transition is **complete**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onSuccess]]\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that just succeeded\n *\n * @event $stateChangeSuccess\n * @deprecated\n */\nexport var $stateChangeSuccess: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when an **error occurs** during transition.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onError]]\n *\n * It's important to note that if you\n * have any errors in your resolve functions (javascript errors, non-existent services, etc)\n * they will not throw traditionally. You must listen for this $stateChangeError event to\n * catch **ALL** errors.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `error`: The reason the transition errored.\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that errored\n *\n * @event $stateChangeError\n * @deprecated\n */\nexport var $stateChangeError: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when a requested state **cannot be found** using the provided state name.\n *\n * ### Deprecation warning: use [[StateService.onInvalid]] instead\n *\n * The event is broadcast allowing any handlers a single chance to deal with the error (usually by\n * lazy-loading the unfound state). A `TargetState` object is passed to the listener handler,\n * you can see its properties in the example. You can use `event.preventDefault()` to abort the\n * transition and the promise returned from `transitionTo()` will be rejected with a\n * `'transition aborted'` error.\n *\n * Additional arguments to the event handler are provided:\n * - `unfoundState` Unfound State information. Contains: `to, toParams, options` properties.\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n *\n * #### Example:\n * ```js\n * // somewhere, assume lazy.state has not been defined\n * $state.go(\"lazy.state\", { a: 1, b: 2 }, { inherit: false });\n *\n * // somewhere else\n * $scope.$on('$stateNotFound', function(event, transition) {\n * function(event, unfoundState, fromState, fromParams){\n * console.log(unfoundState.to); // \"lazy.state\"\n * console.log(unfoundState.toParams); // {a:1, b:2}\n * console.log(unfoundState.options); // {inherit:false} + default options\n * });\n * ```\n *\n * @event $stateNotFound\n * @deprecated\n */\nexport var $stateNotFound: IAngularEvent;\n\n\n(function () {\n let { isFunction, isString } = angular;\n\n function applyPairs(memo: Obj, keyValTuple: any[]) {\n let key: string, value: any;\n if (Array.isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n }\n\n function stateChangeStartHandler($transition$: Transition) {\n if (!$transition$.options().notify || !$transition$.valid() || $transition$.ignored())\n return;\n\n let $injector = $transition$.injector();\n let $stateEvents = $injector.get('$stateEvents');\n let $rootScope = $injector.get('$rootScope');\n let $state = $injector.get('$state');\n let $urlRouter = $injector.get('$urlRouter');\n\n let enabledEvents = $stateEvents.provider.enabled();\n\n\n let toParams = $transition$.params(\"to\");\n let fromParams = $transition$.params(\"from\");\n\n if (enabledEvents.$stateChangeSuccess) {\n let startEvent = $rootScope.$broadcast('$stateChangeStart', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n\n if (startEvent.defaultPrevented) {\n if (enabledEvents.$stateChangeCancel) {\n $rootScope.$broadcast('$stateChangeCancel', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }\n //Don't update and resync url if there's been a new transition started. see issue #2238, #600\n if ($state.transition == null) $urlRouter.update();\n return false;\n }\n\n // right after global state is updated\n let successOpts = { priority: 9999 };\n $transition$.onSuccess({}, function () {\n $rootScope.$broadcast('$stateChangeSuccess', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }, successOpts);\n }\n\n if (enabledEvents.$stateChangeError) {\n $transition$.promise[\"catch\"](function (error) {\n if (error && (error.type === 2 /* RejectType.SUPERSEDED */ || error.type === 3 /* RejectType.ABORTED */))\n return;\n\n\n let evt = $rootScope.$broadcast('$stateChangeError', $transition$.to(), toParams, $transition$.from(), fromParams, error, $transition$.options(), $transition$);\n\n if (!evt.defaultPrevented) {\n $urlRouter.update();\n }\n });\n }\n }\n\n stateNotFoundHandler.$inject = ['$to$', '$from$', '$state', '$rootScope', '$urlRouter'];\n function stateNotFoundHandler($to$: TargetState, $from$: TargetState, injector: UIInjector): HookResult {\n let $state: StateService = injector.get('$state');\n let $rootScope: IScope = injector.get('$rootScope');\n let $urlRouter: UrlRouter = injector.get('$urlRouter');\n\n interface StateNotFoundEvent extends IAngularEvent {\n retry: Promise;\n }\n\n let redirect = { to: $to$.identifier(), toParams: $to$.params(), options: $to$.options() };\n let e = $rootScope.$broadcast('$stateNotFound', redirect, $from$.state(), $from$.params());\n\n if (e.defaultPrevented || e.retry)\n $urlRouter.update();\n\n function redirectFn(): TargetState {\n return $state.target(redirect.to, redirect.toParams, redirect.options);\n }\n\n if (e.defaultPrevented) {\n return false;\n } else if (e.retry || !!$state.get(redirect.to)) {\n return e.retry && isFunction(e.retry.then) ? e.retry.then(redirectFn) : redirectFn();\n }\n }\n\n $StateEventsProvider.$inject = ['$stateProvider'];\n function $StateEventsProvider($stateProvider: StateProvider) {\n $StateEventsProvider.prototype.instance = this;\n\n interface IEventsToggle {\n [key: string]: boolean;\n $stateChangeStart: boolean;\n $stateNotFound: boolean;\n $stateChangeSuccess: boolean;\n $stateChangeError: boolean;\n }\n\n let runtime = false;\n let allEvents = ['$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError'];\n let enabledStateEvents = allEvents.map(e => [e, true]).reduce(applyPairs, {});\n\n function assertNotRuntime() {\n if (runtime) throw new Error(\"Cannot enable events at runtime (use $stateEventsProvider\");\n }\n\n /**\n * Enables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.enable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => enabledStateEvents[event] = true);\n };\n\n /**\n * Disables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.disable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => delete enabledStateEvents[event]);\n };\n\n this.enabled = () => enabledStateEvents;\n\n this.$get = $get;\n $get.$inject = ['$transitions'];\n function $get($transitions: TransitionService) {\n runtime = true;\n\n if (enabledStateEvents[\"$stateNotFound\"])\n $stateProvider.onInvalid(stateNotFoundHandler);\n if (enabledStateEvents.$stateChangeStart)\n $transitions.onBefore({}, stateChangeStartHandler, { priority: 1000 });\n\n return {\n provider: $StateEventsProvider.prototype.instance\n };\n }\n }\n\n\n angular.module('ui.router.state.events', ['ui.router.state'])\n .provider(\"$stateEvents\", $StateEventsProvider)\n .run(['$stateEvents', function ($stateEvents: any) { /* Invokes $get() */\n }]);\n})();\n"],"names":["ng_from_global","angular","ng","ng_from_import","ng_from_import.module","memo","keyValTuple","key","value","Array","isArray","isString","Error","$transition$","options","notify","valid","ignored","$injector","injector","$stateEvents","get","$rootScope","$state","$urlRouter","enabledEvents","provider","enabled","toParams","params","fromParams","$stateChangeSuccess","$broadcast","to","from","defaultPrevented","$stateChangeCancel","transition","update","successOpts","priority","onSuccess","$stateChangeError","promise","error","type","$to$","$from$","target","redirect","identifier","e","state","retry","isFunction","then","redirectFn","$stateProvider","runtime","$transitions","enabledStateEvents","onInvalid","stateNotFoundHandler","$stateChangeStart","onBefore","stateChangeStartHandler","$StateEventsProvider","prototype","instance","this","allEvents","map","reduce","applyPairs","enable","_i","events","assertNotRuntime","length","forEach","event","disable","$get","$inject","module","run","$stateNotFound"],"mappings":"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"} \ No newline at end of file +{ + "version": 3, + "file": "stateEvents.min.js", + "sources": [ + "@uirouter/angularjs/src/angular.ts", + "@uirouter/angularjs/src/legacy/stateEvents.ts" + ], + "sourcesContent": [ + "/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n", + "/**\n * # Legacy state events\n *\n * Polyfill implementation of the UI-Router 0.2.x state events.\n *\n * The 0.2.x state events are deprecated. We recommend moving to Transition Hooks instead, as they\n * provide much more flexibility, support async, and provide the context (the Transition, etc) necessary\n * to implement meaningful application behaviors.\n *\n * To enable these state events, include the `stateEvents.js` file in your project, e.g.,\n * ```\n * \n * ```\n * and also make sure you depend on the `ui.router.state.events` angular module, e.g.,\n * ```\n * angular.module(\"myApplication\", ['ui.router', 'ui.router.state.events']\n * ```\n *\n * @module ng1_state_events\n */ /** */\nimport { ng as angular } from \"../angular\";\nimport { IScope, IAngularEvent, IServiceProviderFactory } from \"angular\";\nimport {\n Obj, TargetState, StateService, Transition, TransitionService, UrlRouter, HookResult, UIInjector\n} from \"@uirouter/core\";\nimport { StateProvider } from \"../stateProvider\";\n\n/**\n * An event broadcast on `$rootScope` when the state transition **begins**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * You can use `event.preventDefault()`\n * to prevent the transition from happening and then the transition promise will be\n * rejected with a `'transition prevented'` value.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]]\n *\n * #### Example:\n * ```js\n * $rootScope.$on('$stateChangeStart', function(event, transition) {\n * event.preventDefault();\n * // transitionTo() promise will be rejected with\n * // a 'transition prevented' error\n * })\n * ```\n *\n * @event $stateChangeStart\n * @deprecated\n */\nexport var $stateChangeStart: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` if a transition is **cancelled**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that was cancelled\n *\n * @event $stateChangeCancel\n * @deprecated\n */\nexport var $stateChangeCancel: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` once the state transition is **complete**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onSuccess]]\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that just succeeded\n *\n * @event $stateChangeSuccess\n * @deprecated\n */\nexport var $stateChangeSuccess: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when an **error occurs** during transition.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onError]]\n *\n * It's important to note that if you\n * have any errors in your resolve functions (javascript errors, non-existent services, etc)\n * they will not throw traditionally. You must listen for this $stateChangeError event to\n * catch **ALL** errors.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `error`: The reason the transition errored.\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that errored\n *\n * @event $stateChangeError\n * @deprecated\n */\nexport var $stateChangeError: IAngularEvent;\n\n/**\n * An event broadcast on `$rootScope` when a requested state **cannot be found** using the provided state name.\n *\n * ### Deprecation warning: use [[StateService.onInvalid]] instead\n *\n * The event is broadcast allowing any handlers a single chance to deal with the error (usually by\n * lazy-loading the unfound state). A `TargetState` object is passed to the listener handler,\n * you can see its properties in the example. You can use `event.preventDefault()` to abort the\n * transition and the promise returned from `transitionTo()` will be rejected with a\n * `'transition aborted'` error.\n *\n * Additional arguments to the event handler are provided:\n * - `unfoundState` Unfound State information. Contains: `to, toParams, options` properties.\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n *\n * #### Example:\n * ```js\n * // somewhere, assume lazy.state has not been defined\n * $state.go(\"lazy.state\", { a: 1, b: 2 }, { inherit: false });\n *\n * // somewhere else\n * $scope.$on('$stateNotFound', function(event, transition) {\n * function(event, unfoundState, fromState, fromParams){\n * console.log(unfoundState.to); // \"lazy.state\"\n * console.log(unfoundState.toParams); // {a:1, b:2}\n * console.log(unfoundState.options); // {inherit:false} + default options\n * });\n * ```\n *\n * @event $stateNotFound\n * @deprecated\n */\nexport var $stateNotFound: IAngularEvent;\n\n\n(function () {\n let { isFunction, isString } = angular;\n\n function applyPairs(memo: Obj, keyValTuple: any[]) {\n let key: string, value: any;\n if (Array.isArray(keyValTuple)) [key, value] = keyValTuple;\n if (!isString(key)) throw new Error(\"invalid parameters to applyPairs\");\n memo[key] = value;\n return memo;\n }\n\n function stateChangeStartHandler($transition$: Transition) {\n if (!$transition$.options().notify || !$transition$.valid() || $transition$.ignored())\n return;\n\n let $injector = $transition$.injector();\n let $stateEvents = $injector.get('$stateEvents');\n let $rootScope = $injector.get('$rootScope');\n let $state = $injector.get('$state');\n let $urlRouter = $injector.get('$urlRouter');\n\n let enabledEvents = $stateEvents.provider.enabled();\n\n\n let toParams = $transition$.params(\"to\");\n let fromParams = $transition$.params(\"from\");\n\n if (enabledEvents.$stateChangeSuccess) {\n let startEvent = $rootScope.$broadcast('$stateChangeStart', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n\n if (startEvent.defaultPrevented) {\n if (enabledEvents.$stateChangeCancel) {\n $rootScope.$broadcast('$stateChangeCancel', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }\n //Don't update and resync url if there's been a new transition started. see issue #2238, #600\n if ($state.transition == null) $urlRouter.update();\n return false;\n }\n\n // right after global state is updated\n let successOpts = { priority: 9999 };\n $transition$.onSuccess({}, function () {\n $rootScope.$broadcast('$stateChangeSuccess', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }, successOpts);\n }\n\n if (enabledEvents.$stateChangeError) {\n $transition$.promise[\"catch\"](function (error) {\n if (error && (error.type === 2 /* RejectType.SUPERSEDED */ || error.type === 3 /* RejectType.ABORTED */))\n return;\n\n\n let evt = $rootScope.$broadcast('$stateChangeError', $transition$.to(), toParams, $transition$.from(), fromParams, error, $transition$.options(), $transition$);\n\n if (!evt.defaultPrevented) {\n $urlRouter.update();\n }\n });\n }\n }\n\n stateNotFoundHandler.$inject = ['$to$', '$from$', '$state', '$rootScope', '$urlRouter'];\n function stateNotFoundHandler($to$: TargetState, $from$: TargetState, injector: UIInjector): HookResult {\n let $state: StateService = injector.get('$state');\n let $rootScope: IScope = injector.get('$rootScope');\n let $urlRouter: UrlRouter = injector.get('$urlRouter');\n\n interface StateNotFoundEvent extends IAngularEvent {\n retry: Promise;\n }\n\n let redirect = { to: $to$.identifier(), toParams: $to$.params(), options: $to$.options() };\n let e = $rootScope.$broadcast('$stateNotFound', redirect, $from$.state(), $from$.params());\n\n if (e.defaultPrevented || e.retry)\n $urlRouter.update();\n\n function redirectFn(): TargetState {\n return $state.target(redirect.to, redirect.toParams, redirect.options);\n }\n\n if (e.defaultPrevented) {\n return false;\n } else if (e.retry || !!$state.get(redirect.to)) {\n return e.retry && isFunction(e.retry.then) ? e.retry.then(redirectFn) : redirectFn();\n }\n }\n\n $StateEventsProvider.$inject = ['$stateProvider'];\n function $StateEventsProvider($stateProvider: StateProvider) {\n $StateEventsProvider.prototype.instance = this;\n\n interface IEventsToggle {\n [key: string]: boolean;\n $stateChangeStart: boolean;\n $stateNotFound: boolean;\n $stateChangeSuccess: boolean;\n $stateChangeError: boolean;\n }\n\n let runtime = false;\n let allEvents = ['$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError'];\n let enabledStateEvents = allEvents.map(e => [e, true]).reduce(applyPairs, {});\n\n function assertNotRuntime() {\n if (runtime) throw new Error(\"Cannot enable events at runtime (use $stateEventsProvider\");\n }\n\n /**\n * Enables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.enable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => enabledStateEvents[event] = true);\n };\n\n /**\n * Disables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.disable = function (...events: string[]) {\n assertNotRuntime();\n if (!events || !events.length) events = allEvents;\n events.forEach(event => delete enabledStateEvents[event]);\n };\n\n this.enabled = () => enabledStateEvents;\n\n this.$get = $get;\n $get.$inject = ['$transitions'];\n function $get($transitions: TransitionService) {\n runtime = true;\n\n if (enabledStateEvents[\"$stateNotFound\"])\n $stateProvider.onInvalid(stateNotFoundHandler);\n if (enabledStateEvents.$stateChangeStart)\n $transitions.onBefore({}, stateChangeStartHandler, { priority: 1000 });\n\n return {\n provider: $StateEventsProvider.prototype.instance\n };\n }\n }\n\n\n angular.module('ui.router.state.events', ['ui.router.state'])\n .provider(\"$stateEvents\", $StateEventsProvider)\n .run(['$stateEvents', function ($stateEvents: any) { /* Invokes $get() */\n }]);\n})();\n" + ], + "names": [ + "ng_from_global", + "angular", + "ng", + "ng_from_import", + "ng_from_import.module", + "memo", + "keyValTuple", + "key", + "value", + "Array", + "isArray", + "isString", + "Error", + "$transition$", + "options", + "notify", + "valid", + "ignored", + "$injector", + "injector", + "$stateEvents", + "get", + "$rootScope", + "$state", + "$urlRouter", + "enabledEvents", + "provider", + "enabled", + "toParams", + "params", + "fromParams", + "$stateChangeSuccess", + "$broadcast", + "to", + "from", + "defaultPrevented", + "$stateChangeCancel", + "transition", + "update", + "successOpts", + "priority", + "onSuccess", + "$stateChangeError", + "promise", + "error", + "type", + "$to$", + "$from$", + "target", + "redirect", + "identifier", + "e", + "state", + "retry", + "isFunction", + "then", + "redirectFn", + "$stateProvider", + "runtime", + "$transitions", + "enabledStateEvents", + "onInvalid", + "stateNotFoundHandler", + "$stateChangeStart", + "onBefore", + "stateChangeStartHandler", + "$StateEventsProvider", + "prototype", + "instance", + "this", + "allEvents", + "map", + "reduce", + "applyPairs", + "enable", + "_i", + "events", + "assertNotRuntime", + "length", + "forEach", + "event", + "disable", + "$get", + "$inject", + "module", + "run", + "$stateNotFound" + ], + "mappings": "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" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js index 5f415718cf..e4ccc1d0da 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js @@ -1,7 +1,7 @@ /** * State-based routing for AngularJS 1.x * This bundle requires the ui-router-core.js bundle from the @uirouter/core package. - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ diff --git a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js.map b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js.map index 391aa0ff3f..66dbe4ccdc 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.js.map @@ -1 +1,70 @@ -{"version":3,"file":"ui-router-angularjs.js","sources":["@uirouter/angularjs/angular.ts","@uirouter/angularjs/statebuilders/views.ts","@uirouter/angularjs/templateFactory.ts","@uirouter/angularjs/stateProvider.ts","@uirouter/angularjs/statebuilders/onEnterExitRetain.ts","@uirouter/angularjs/locationServices.ts","@uirouter/angularjs/urlRouterProvider.ts","@uirouter/angularjs/services.ts","@uirouter/angularjs/injectables.ts","@uirouter/angularjs/directives/stateDirectives.ts","@uirouter/angularjs/stateFilters.ts","@uirouter/angularjs/directives/viewDirective.ts","@uirouter/angularjs/viewScroll.ts","@uirouter/angularjs/index.ts"],"sourcesContent":["/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n","/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n","/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n","/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n * \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n","/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n","/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n","/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n","/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n","/**\n * # Angular 1 injectable services\n *\n * This is a list of the objects which can be injected using angular's injector.\n *\n * There are three different kind of injectable objects:\n *\n * ## **Provider** objects\n * #### injectable into a `.config()` block during configtime\n *\n * - [[$uiRouterProvider]]: The UI-Router instance\n * - [[$stateProvider]]: State registration\n * - [[$transitionsProvider]]: Transition hooks\n * - [[$urlServiceProvider]]: All URL related public APIs\n *\n * - [[$uiViewScrollProvider]]: Disable ui-router view scrolling\n * - [[$urlRouterProvider]]: (deprecated) Url matching rules\n * - [[$urlMatcherFactoryProvider]]: (deprecated) Url parsing config\n *\n * ## **Service** objects\n * #### injectable globally during runtime\n *\n * - [[$uiRouter]]: The UI-Router instance\n * - [[$trace]]: Enable transition trace/debug\n * - [[$transitions]]: Transition hooks\n * - [[$state]]: Imperative state related APIs\n * - [[$stateRegistry]]: State registration\n * - [[$urlService]]: All URL related public APIs\n * - [[$uiRouterGlobals]]: Global variables\n * - [[$uiViewScroll]]: Scroll an element into view\n *\n * - [[$stateParams]]: (deprecated) Global state param values\n * - [[$urlRouter]]: (deprecated) URL synchronization\n * - [[$urlMatcherFactory]]: (deprecated) URL parsing config\n *\n * ## **Per-Transition** objects\n *\n * - These kind of objects are injectable into:\n * - Resolves ([[Ng1StateDeclaration.resolve]]),\n * - Transition Hooks ([[TransitionService.onStart]], etc),\n * - Routed Controllers ([[Ng1ViewDeclaration.controller]])\n *\n * #### Different instances are injected based on the [[Transition]]\n *\n * - [[$transition$]]: The current Transition object\n * - [[$stateParams]]: State param values for pending Transition (deprecated)\n * - Any resolve data defined using [[Ng1StateDeclaration.resolve]]\n *\n * @ng1api\n * @preferred\n * @module injectables\n */ /** */\n\nimport { StateProvider } from \"./stateProvider\";\nimport {\n StateService, TransitionService, Transition, UrlRouter, UrlMatcherFactory,\n StateParams, StateRegistry, UIRouterGlobals, UIRouter, Trace, UrlService\n} from \"@uirouter/core\";\nimport { UIViewScrollProvider } from \"./viewScroll\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\n\n/**\n * The current (or pending) State Parameters\n *\n * An injectable global **Service Object** which holds the state parameters for the latest **SUCCESSFUL** transition.\n *\n * The values are not updated until *after* a `Transition` successfully completes.\n *\n * **Also:** an injectable **Per-Transition Object** object which holds the pending state parameters for the pending `Transition` currently running.\n *\n * ### Deprecation warning:\n *\n * The value injected for `$stateParams` is different depending on where it is injected.\n *\n * - When injected into an angular service, the object injected is the global **Service Object** with the parameter values for the latest successful `Transition`.\n * - When injected into transition hooks, resolves, or view controllers, the object is the **Per-Transition Object** with the parameter values for the running `Transition`.\n *\n * Because of these confusing details, this service is deprecated.\n *\n * ### Instead of using the global `$stateParams` service object,\n * inject [[$uiRouterGlobals]] and use [[UIRouterGlobals.params]]\n *\n * ```js\n * MyService.$inject = ['$uiRouterGlobals'];\n * function MyService($uiRouterGlobals) {\n * return {\n * paramValues: function () {\n * return $uiRouterGlobals.params;\n * }\n * }\n * }\n * ```\n *\n * ### Instead of using the per-transition `$stateParams` object,\n * inject the current `Transition` (as [[$transition$]]) and use [[Transition.params]]\n *\n * ```js\n * MyController.$inject = ['$transition$'];\n * function MyController($transition$) {\n * var username = $transition$.params().username;\n * // .. do something with username\n * }\n * ```\n *\n * ---\n *\n * This object can be injected into other services.\n *\n * #### Deprecated Example:\n * ```js\n * SomeService.$inject = ['$http', '$stateParams'];\n * function SomeService($http, $stateParams) {\n * return {\n * getUser: function() {\n * return $http.get('/api/users/' + $stateParams.username);\n * }\n * }\n * };\n * angular.service('SomeService', SomeService);\n * ```\n * @deprecated\n */\nvar $stateParams: StateParams;\n\n/**\n * Global UI-Router variables\n *\n * The router global state as a **Service Object** (injectable during runtime).\n *\n * This object contains globals such as the current state and current parameter values.\n */\nvar $uiRouterGlobals: UIRouterGlobals;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Service Object** (injectable during runtime).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouterProvider]] for injection during angular config time.\n */\nlet $uiRouter: UIRouter ;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Provider Object** (injectable during config phase).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouter]] for injection during runtime.\n */\nvar $uiRouterProvider: UIRouter;\n\n/**\n * Transition debug/tracing\n *\n * The [[Trace]] singleton as a **Service Object** (injectable during runtime).\n *\n * Enables or disables Transition tracing which can help to debug issues.\n */\nvar $trace: Trace;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitionsProvider]] for injection during the config phase.\n */\nvar $transitions: TransitionService;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Provider Object** (injectable during config phase)\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitions]] for injection during runtime.\n */\nvar $transitionsProvider: TransitionService;\n\n/**\n * The current [[Transition]] object\n *\n * The current [[Transition]] object as a **Per-Transition Object** (injectable into Resolve, Hooks, Controllers)\n *\n * This object returns information about the current transition, including:\n *\n * - To/from states\n * - To/from parameters\n * - Transition options\n * - States being entered, exited, and retained\n * - Resolve data\n * - A Promise for the transition\n * - Any transition failure information\n * - An injector for both Service and Per-Transition Objects\n */\nvar $transition$: Transition;\n\n/**\n * The State Service\n *\n * The [[StateService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service used to manage and query information on registered states.\n * It exposes state related APIs including:\n *\n * - Start a [[Transition]]\n * - Imperatively lazy load states\n * - Check if a state is currently active\n * - Look up states by name\n * - Build URLs for a state+parameters\n * - Configure the global Transition error handler\n *\n * This angular service exposes the [[StateService]] singleton.\n */\nvar $state: StateService;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistryProvider]] for injection during the config phase.\n */\nvar $stateRegistry: StateRegistry;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistry]] for injection during runtime.\n */\nvar $stateRegistryProvider: StateRegistry;\n\n/**\n * The View Scroll provider\n *\n * The [[UIViewScrollProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[UIViewScrollProvider]] singleton and is\n * used to disable UI-Router's scroll behavior.\n */\nvar $uiViewScrollProvider: UIViewScrollProvider;\n\n/**\n * The View Scroll function\n *\n * The View Scroll function as a **Service Object** (injectable during runtime).\n *\n * This is a function that scrolls an element into view.\n * The element is scrolled after a `$timeout` so the DOM has time to refresh.\n *\n * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor,\n * this can be enabled by calling [[UIViewScrollProvider.useAnchorScroll]].\n *\n * Note: this function is used by the [[directives.uiView]] when the `autoscroll` expression evaluates to true.\n */\nvar $uiViewScroll: ($element: JQuery) => void;\n\n/**\n * The StateProvider\n *\n * An angular1-only [[StateProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[StateProvider]] singleton.\n *\n * The `StateProvider` is primarily used to register states or add custom state decorators.\n *\n * ##### Note: This provider is a ng1 vestige.\n * It is a passthrough to [[$stateRegistry]] and [[$state]].\n */\nvar $stateProvider: StateProvider;\n\n/**\n * The URL Service Provider\n *\n * The [[UrlService]] singleton as a **Provider Object** (injectable during the angular config phase).\n *\n * A service used to configure and interact with the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during runtime as [[$urlService]].\n */\nvar $urlServiceProvider: UrlService;\n\n/**\n * The URL Service\n *\n * The [[UrlService]] singleton as a **Service Object** (injectable during runtime).\n *\n * Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n *\n * Used to configure the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n */\nvar $urlService: UrlService;\n\n/**\n * The URL Router Provider\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlServiceProvider]] instead.\n *\n * The [[UrlRouter]] singleton as a **Provider Object** (injectable during config time).\n *\n * #### Note: This object is also exposed as [[$urlRouter]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlRouterProvider: UrlRouterProvider;\n\n/**\n * The Url Router\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlRouter]] singleton as a **Service Object** (injectable during runtime).\n *\n * #### Note: This object is also exposed as [[$urlRouterProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlRouter: UrlRouter;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactoryProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlMatcherFactory: UrlMatcherFactory;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactory]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlMatcherFactoryProvider: UrlMatcherFactory;\n\n\n\n","/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n","/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n","/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n","/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n","/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n"],"names":["ng_from_import.module","services","isDefined","pick","forEach","isString","extend","ViewService","ResolveContext","trace","isInjectable","isArray","tail","Resolvable","angular","isFunction","kebobString","unnestR","isObject","createProxyFunctions","val","removeFrom","BaseUrlRule","identity","UIRouter","applyPairs","parse","noop","uniqR","inArray","filter"],"mappings":"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"} \ No newline at end of file +{ + "version": 3, + "file": "ui-router-angularjs.js", + "sources": [ + "@uirouter/angularjs/src/angular.ts", + "@uirouter/angularjs/src/statebuilders/views.ts", + "@uirouter/angularjs/src/templateFactory.ts", + "@uirouter/angularjs/src/stateProvider.ts", + "@uirouter/angularjs/src/statebuilders/onEnterExitRetain.ts", + "@uirouter/angularjs/src/locationServices.ts", + "@uirouter/angularjs/src/urlRouterProvider.ts", + "@uirouter/angularjs/src/services.ts", + "@uirouter/angularjs/src/injectables.ts", + "@uirouter/angularjs/src/directives/stateDirectives.ts", + "@uirouter/angularjs/src/stateFilters.ts", + "@uirouter/angularjs/src/directives/viewDirective.ts", + "@uirouter/angularjs/src/viewScroll.ts", + "@uirouter/angularjs/src/index.ts" + ], + "sourcesContent": [ + "/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n", + "/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n", + "/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n", + "/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n *
    \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n", + "/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n", + "/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n", + "/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n", + "/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n", + "/**\n * # Angular 1 injectable services\n *\n * This is a list of the objects which can be injected using angular's injector.\n *\n * There are three different kind of injectable objects:\n *\n * ## **Provider** objects\n * #### injectable into a `.config()` block during configtime\n *\n * - [[$uiRouterProvider]]: The UI-Router instance\n * - [[$stateProvider]]: State registration\n * - [[$transitionsProvider]]: Transition hooks\n * - [[$urlServiceProvider]]: All URL related public APIs\n *\n * - [[$uiViewScrollProvider]]: Disable ui-router view scrolling\n * - [[$urlRouterProvider]]: (deprecated) Url matching rules\n * - [[$urlMatcherFactoryProvider]]: (deprecated) Url parsing config\n *\n * ## **Service** objects\n * #### injectable globally during runtime\n *\n * - [[$uiRouter]]: The UI-Router instance\n * - [[$trace]]: Enable transition trace/debug\n * - [[$transitions]]: Transition hooks\n * - [[$state]]: Imperative state related APIs\n * - [[$stateRegistry]]: State registration\n * - [[$urlService]]: All URL related public APIs\n * - [[$uiRouterGlobals]]: Global variables\n * - [[$uiViewScroll]]: Scroll an element into view\n *\n * - [[$stateParams]]: (deprecated) Global state param values\n * - [[$urlRouter]]: (deprecated) URL synchronization\n * - [[$urlMatcherFactory]]: (deprecated) URL parsing config\n *\n * ## **Per-Transition** objects\n *\n * - These kind of objects are injectable into:\n * - Resolves ([[Ng1StateDeclaration.resolve]]),\n * - Transition Hooks ([[TransitionService.onStart]], etc),\n * - Routed Controllers ([[Ng1ViewDeclaration.controller]])\n *\n * #### Different instances are injected based on the [[Transition]]\n *\n * - [[$transition$]]: The current Transition object\n * - [[$stateParams]]: State param values for pending Transition (deprecated)\n * - Any resolve data defined using [[Ng1StateDeclaration.resolve]]\n *\n * @ng1api\n * @preferred\n * @module injectables\n */ /** */\n\nimport { StateProvider } from \"./stateProvider\";\nimport {\n StateService, TransitionService, Transition, UrlRouter, UrlMatcherFactory,\n StateParams, StateRegistry, UIRouterGlobals, UIRouter, Trace, UrlService\n} from \"@uirouter/core\";\nimport { UIViewScrollProvider } from \"./viewScroll\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\n\n/**\n * The current (or pending) State Parameters\n *\n * An injectable global **Service Object** which holds the state parameters for the latest **SUCCESSFUL** transition.\n *\n * The values are not updated until *after* a `Transition` successfully completes.\n *\n * **Also:** an injectable **Per-Transition Object** object which holds the pending state parameters for the pending `Transition` currently running.\n *\n * ### Deprecation warning:\n *\n * The value injected for `$stateParams` is different depending on where it is injected.\n *\n * - When injected into an angular service, the object injected is the global **Service Object** with the parameter values for the latest successful `Transition`.\n * - When injected into transition hooks, resolves, or view controllers, the object is the **Per-Transition Object** with the parameter values for the running `Transition`.\n *\n * Because of these confusing details, this service is deprecated.\n *\n * ### Instead of using the global `$stateParams` service object,\n * inject [[$uiRouterGlobals]] and use [[UIRouterGlobals.params]]\n *\n * ```js\n * MyService.$inject = ['$uiRouterGlobals'];\n * function MyService($uiRouterGlobals) {\n * return {\n * paramValues: function () {\n * return $uiRouterGlobals.params;\n * }\n * }\n * }\n * ```\n *\n * ### Instead of using the per-transition `$stateParams` object,\n * inject the current `Transition` (as [[$transition$]]) and use [[Transition.params]]\n *\n * ```js\n * MyController.$inject = ['$transition$'];\n * function MyController($transition$) {\n * var username = $transition$.params().username;\n * // .. do something with username\n * }\n * ```\n *\n * ---\n *\n * This object can be injected into other services.\n *\n * #### Deprecated Example:\n * ```js\n * SomeService.$inject = ['$http', '$stateParams'];\n * function SomeService($http, $stateParams) {\n * return {\n * getUser: function() {\n * return $http.get('/api/users/' + $stateParams.username);\n * }\n * }\n * };\n * angular.service('SomeService', SomeService);\n * ```\n * @deprecated\n */\nvar $stateParams: StateParams;\n\n/**\n * Global UI-Router variables\n *\n * The router global state as a **Service Object** (injectable during runtime).\n *\n * This object contains globals such as the current state and current parameter values.\n */\nvar $uiRouterGlobals: UIRouterGlobals;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Service Object** (injectable during runtime).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouterProvider]] for injection during angular config time.\n */\nlet $uiRouter: UIRouter ;\n\n/**\n * The UI-Router instance\n *\n * The [[UIRouter]] singleton (the router instance) as a **Provider Object** (injectable during config phase).\n *\n * This object is the UI-Router singleton instance, created by angular dependency injection during application bootstrap.\n * It has references to the other UI-Router services\n *\n * #### Note: This object is also exposed as [[$uiRouter]] for injection during runtime.\n */\nvar $uiRouterProvider: UIRouter;\n\n/**\n * Transition debug/tracing\n *\n * The [[Trace]] singleton as a **Service Object** (injectable during runtime).\n *\n * Enables or disables Transition tracing which can help to debug issues.\n */\nvar $trace: Trace;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitionsProvider]] for injection during the config phase.\n */\nvar $transitions: TransitionService;\n\n/**\n * The Transition Service\n *\n * The [[TransitionService]] singleton as a **Provider Object** (injectable during config phase)\n *\n * This angular service exposes the [[TransitionService]] singleton, which is primarily\n * used to register global transition hooks.\n *\n * #### Note: This object is also exposed as [[$transitions]] for injection during runtime.\n */\nvar $transitionsProvider: TransitionService;\n\n/**\n * The current [[Transition]] object\n *\n * The current [[Transition]] object as a **Per-Transition Object** (injectable into Resolve, Hooks, Controllers)\n *\n * This object returns information about the current transition, including:\n *\n * - To/from states\n * - To/from parameters\n * - Transition options\n * - States being entered, exited, and retained\n * - Resolve data\n * - A Promise for the transition\n * - Any transition failure information\n * - An injector for both Service and Per-Transition Objects\n */\nvar $transition$: Transition;\n\n/**\n * The State Service\n *\n * The [[StateService]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service used to manage and query information on registered states.\n * It exposes state related APIs including:\n *\n * - Start a [[Transition]]\n * - Imperatively lazy load states\n * - Check if a state is currently active\n * - Look up states by name\n * - Build URLs for a state+parameters\n * - Configure the global Transition error handler\n *\n * This angular service exposes the [[StateService]] singleton.\n */\nvar $state: StateService;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistryProvider]] for injection during the config phase.\n */\nvar $stateRegistry: StateRegistry;\n\n/**\n * The State Registry\n *\n * The [[StateRegistry]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to register/deregister states.\n * It has state registration related APIs including:\n *\n * - Register/deregister states\n * - Listen for state registration/deregistration\n * - Get states by name\n * - Add state decorators (to customize the state creation process)\n *\n * #### Note: This object is also exposed as [[$stateRegistry]] for injection during runtime.\n */\nvar $stateRegistryProvider: StateRegistry;\n\n/**\n * The View Scroll provider\n *\n * The [[UIViewScrollProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[UIViewScrollProvider]] singleton and is\n * used to disable UI-Router's scroll behavior.\n */\nvar $uiViewScrollProvider: UIViewScrollProvider;\n\n/**\n * The View Scroll function\n *\n * The View Scroll function as a **Service Object** (injectable during runtime).\n *\n * This is a function that scrolls an element into view.\n * The element is scrolled after a `$timeout` so the DOM has time to refresh.\n *\n * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor,\n * this can be enabled by calling [[UIViewScrollProvider.useAnchorScroll]].\n *\n * Note: this function is used by the [[directives.uiView]] when the `autoscroll` expression evaluates to true.\n */\nvar $uiViewScroll: ($element: JQuery) => void;\n\n/**\n * The StateProvider\n *\n * An angular1-only [[StateProvider]] as a **Provider Object** (injectable during config time).\n *\n * This angular service exposes the [[StateProvider]] singleton.\n *\n * The `StateProvider` is primarily used to register states or add custom state decorators.\n *\n * ##### Note: This provider is a ng1 vestige.\n * It is a passthrough to [[$stateRegistry]] and [[$state]].\n */\nvar $stateProvider: StateProvider;\n\n/**\n * The URL Service Provider\n *\n * The [[UrlService]] singleton as a **Provider Object** (injectable during the angular config phase).\n *\n * A service used to configure and interact with the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during runtime as [[$urlService]].\n */\nvar $urlServiceProvider: UrlService;\n\n/**\n * The URL Service\n *\n * The [[UrlService]] singleton as a **Service Object** (injectable during runtime).\n *\n * Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n *\n * Used to configure the URL.\n * It has URL related APIs including:\n *\n * - register custom Parameter types `UrlService.config.type` ([[UrlConfigApi.type]])\n * - add URL rules: `UrlService.rules.when` ([[UrlRulesApi.when]])\n * - configure behavior when no url matches: `UrlService.rules.otherwise` ([[UrlRulesApi.otherwise]])\n * - delay initial URL synchronization [[UrlService.deferIntercept]].\n * - get or set the current url: [[UrlService.url]]\n *\n * ##### Note: This service can also be injected during the config phase as [[$urlServiceProvider]].\n */\nvar $urlService: UrlService;\n\n/**\n * The URL Router Provider\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlServiceProvider]] instead.\n *\n * The [[UrlRouter]] singleton as a **Provider Object** (injectable during config time).\n *\n * #### Note: This object is also exposed as [[$urlRouter]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlRouterProvider: UrlRouterProvider;\n\n/**\n * The Url Router\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlRouter]] singleton as a **Service Object** (injectable during runtime).\n *\n * #### Note: This object is also exposed as [[$urlRouterProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlRouter: UrlRouter;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Service Object** (injectable during runtime).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactoryProvider]] for injection during angular config time.\n *\n * @deprecated\n */\nvar $urlMatcherFactory: UrlMatcherFactory;\n\n/**\n * The URL Matcher Factory\n *\n * ### Deprecation warning: This object is now considered internal. Use [[$urlService]] instead.\n *\n * The [[UrlMatcherFactory]] singleton as a **Provider Object** (injectable during config time).\n *\n * This service is used to set url mapping options, define custom parameter types, and create [[UrlMatcher]] objects.\n *\n * #### Note: This object is also exposed as [[$urlMatcherFactory]] for injection during runtime.\n *\n * @deprecated\n */\nvar $urlMatcherFactoryProvider: UrlMatcherFactory;\n\n\n\n", + "/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n", + "/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n", + "/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n", + "/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n", + "/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n" + ], + "names": [ + "ng_from_import.module", + "services", + "isDefined", + "pick", + "forEach", + "isString", + "extend", + "ViewService", + "ResolveContext", + "trace", + "isInjectable", + "isArray", + "tail", + "Resolvable", + "angular", + "isFunction", + "kebobString", + "unnestR", + "isObject", + "createProxyFunctions", + "val", + "removeFrom", + "BaseUrlRule", + "identity", + "UIRouter", + "applyPairs", + "parse", + "noop", + "uniqR", + "inArray", + "filter" + ], + "mappings": "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" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js index 472bde7f79..7e88d5bf45 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js +++ b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js @@ -1,7 +1,7 @@ /** * State-based routing for AngularJS 1.x * This bundle requires the ui-router-core.js bundle from the @uirouter/core package. - * @version v1.0.8 + * @version v1.0.10 * @link https://ui-router.github.io * @license MIT License, http://www.opensource.org/licenses/MIT */ diff --git a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js.map b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js.map index b4461b3f1b..04feeeaf5f 100644 --- a/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js.map +++ b/src/main/webapp/bower_components/angular-ui-router/release/ui-router-angularjs.min.js.map @@ -1 +1,541 @@ -{"version":3,"file":"ui-router-angularjs.min.js","sources":["@uirouter/angularjs/statebuilders/views.ts","@uirouter/angularjs/templateFactory.ts","@uirouter/angularjs/services.ts","@uirouter/angularjs/directives/stateDirectives.ts","@uirouter/angularjs/stateFilters.ts","@uirouter/angularjs/directives/viewDirective.ts","@uirouter/angularjs/angular.ts","@uirouter/angularjs/stateProvider.ts","@uirouter/angularjs/statebuilders/onEnterExitRetain.ts","@uirouter/angularjs/locationServices.ts","@uirouter/angularjs/urlRouterProvider.ts","@uirouter/angularjs/viewScroll.ts","@uirouter/angularjs/index.ts"],"sourcesContent":["/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n","/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n","/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n","/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the
    directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n","/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n","/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n","/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n","/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n *
    \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n","/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n","/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n","/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n","/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n","/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n"],"names":["templateFactory","path","view","services","$injector","get","Ng1ViewConfig","state","parent","ctrlKeys","compKeys","nonCompKeys","concat","allViewKeys","isDefined","views","hasAnyKey","Error","name","filter","key","join","viewsObject","$default","pick","forEach","config","isString","component","extend","resolveAs","$type","$context","$name","normalized","ViewService","normalizeUIViewTarget","$uiViewName","uiViewName","$uiViewContextAnchor","uiViewContextAnchor","cmpDefs","length","map","getBindings","reduce","unnestR","$locationProvider","$location","$browser","$sniffer","$rootScope","$http","$templateCache","ng1LocationService","_runtimeServices","router","this","UIRouter","stateProvider","StateProvider","stateRegistry","stateService","decorator","ng1ViewsBuilder","getStateHookBuilder","viewService","_pluginapi","_viewConfigFactory","getNg1ViewConfigFactory","locationService","locationConfig","Ng1LocationServices","monkeyPatchPathParameterType","$get","$inject","$q","$uiRouter","x","$$state","resolvables","deps","resolvable","annotate","resolveFn","strictDi","$watch","trace","approximateDigests","ref","parsed","paramsOnly","match","replace","paramExpr","el","$uiView","inheritedData","parse","tail","undefined","$state","$element","def","uiState","current","uiStateOpts","defaultOpts","href","uiStateParams","isSvg","Object","prototype","toString","call","prop","isForm","nodeName","attr","isAnchor","toUpperCase","clickable","$timeout","type","getDef","e","button","which","target","ctrlKey","metaKey","shiftKey","transition","go","preventDefault","ignorePreventDefaultCount","cancel","relative","stateContext","$current","inherit","source","element","scope","hookFn","events","isArray","on","events_1","_i","event_1","$on","off","events_2","event_2","isFilter","params","options","is","$stateful","includesFilter","includes","$compile","$controller","$transitions","$view","getControllerAs","getResolveAs","restrict","priority","compile","tElement","initial","html","empty","data","contents","cfg","$cfg","viewDecl","getTemplate","noop","resolveCtx","ResolveContext","traceUIViewFill","link","controller","controllerAs","locals","getLocals","controllerInstance","$scope","children","registerControllerCallbacks","cmp_1","kebobName","kebobString","tagRegexp_1","RegExp","deregisterWatch_1","directiveEl","slice","tagName","exec","angular","ctrlInstance","isFunction","$onInit","hasComponentImpl","viewState","self","hookOptions","bind","uiOnParamsChanged","viewCreationTrans_1","getResolvable","onSuccess","$transition$","exiting","indexOf","toParams","fromParams","toSchema","treeChanges","to","node","paramSchema","fromSchema","from","changedToParams","param","idx","equals","id","changedKeys_1","newValues","val","uiCanExit","id_1","_uiCanExitId","prevTruthyAnswer_1","trans","redirectedFrom","criteria","onBefore","promise","ids","when","then","ng_from_global","ng","ng_from_import","ng_from_import.module","keys","obj","acc","factory","uiView","context","_this","makeComponentTemplate","bindings","template","paramValues","promises","fromConfig","getController","all","results","traceViewServiceEvent","provider","controllerProvider","isInjectable","providerFn","Resolvable","version","minor","$templateRequest","has","TemplateFactory","value","_useHttp","asTemplate","result","str","asComponent","fromString","templateUrl","fromUrl","templateProvider","fromProvider","componentProvider","fromComponentProvider","url","cache","headers","Accept","response","prefix","kebob","camelCase","kebobed","attrs","getComponentBindings","input","attrName","resolveName","res","fn","args","scopeBindings","isObject","bindToController","bindingsObj","tuple","createProxyFunctions","func","definition","register","callback","onInvalid","hookName","parentFn","hook","pathname","resolveContext","$state$","invoke","_lp","_urlListeners","push","removeFrom","html5Mode","enabled","history","newUrl","evt","_loc","_browser","pathType","urlMatcherFactory","encode","m","~","/","decode","~~","~2F","_router","_urlRouter","urlRouter","UrlRouterProvider","update","interceptDeferred","listen","ruleFn","rule","BaseUrlRule","identity","otherwise","what","handler","injectableHandler","$match","$stateParams","globals","defer","deferIntercept","module","mod_init","mod_util","mod_rtr","mod_state","mod_main","getProviderFor","serviceName","$urp","service","runBlock","watchDigests","uiRouter","urlRouterProvider","run","$urlMatcherFactory","$urlRouter","uiSref","ctx","getTokens","getPolicy","async","applyPairs","require","uiSrefActive","unlinkInfoFn","active","$$addStateInfo","$set","getTypeInfo","rawDef","processedDef","parseStateRef","uiSrefOpts","$eval","onStatesChanged","transitionService","clickHook","bindEvents","inputAttrs","watchDeregFns","field","$observe","expr","newval","$interpolate","$attrs","stateName","stateParams","activeClass","stateInfo","states","splitClasses","split","getClasses","stateList","allClasses","activeEqClass","uniqR","fuzzyClasses","exactClasses","addClasses","removeClasses","cls","inArray","$evalAsync","className","addClass","removeClass","uiSrefActiveEq","stateOrName","addState","newState","newParams","deregister","onStart","updateAfterTransition","directive","$IsStateFilter","$IncludedByStateFilter","$animate","$uiViewScroll","enter","cb","leave","config1","config2","rootData","_rootViewContext","count","terminal","transclude","tAttrs","$transclude","previousEl","traceUIViewEvent","remove","currentScope","activeUIView","$destroy","currentEl","_viewData_1","renderer","$$animLeave","resolve","newScope","$new","animEnter","animLeave","$uiViewData","$uiViewAnim","$animEnter","$animLeave","$emit","cloned","clone","autoScrollExp","cleanupLastView","viewConfig","onloadExp","unregister","getRenderer","inherited","fqn","configUpdated","configsEqual","traceUIViewConfigUpdated","updateView","creationContext","fromParentTagConfig","fromParentTag","registerUIView","$ViewDirectiveFill","useAnchorScroll","$anchorScroll","scrollIntoView"],"mappings":";;;;;;;gUAYE,IAAIA,EAAmC,KACvC,OAAO,SAACC,EAAMC,GAEZ,OADAF,EAAkBA,GAAmBG,WAASC,UAAUC,IAAI,qBACpD,IAAIC,EAAcL,EAAMC,EAAMF,KAgB1C,WAAgCO,GAE9B,IAAKA,EAAMC,OAAQ,SAEnB,IACIC,GAAY,aAAc,qBAAsB,eAAgB,aAChEC,GAAY,YAAa,WAAY,qBACrCC,GAHW,mBAAoB,cAAe,WAAY,SAAU,SAG9CC,OAAOH,GAC7BI,EAAcH,EAASE,OAAOD,GAKlC,GAAIG,YAAUP,EAAMQ,QAAUC,EAAUH,EAAaN,GACnD,MAAM,IAAIU,MAAM,UAAUV,EAAMW,iKAGxBL,EAAYM,OAAO,SAAAC,GAAO,OAAAN,YAAUP,EAAMa,MAAOC,KAAK,OAGhE,IAAIN,KACAO,EAAcf,EAAMQ,QAAWQ,SAAYC,OAAKjB,EAAOM,IA2B3D,OAzBAY,UAAQH,EAAa,SAAUI,EAA4BR,GAUzD,GARAA,EAAOA,GAAQ,WAEXS,WAASD,KAASA,GAAWE,UAAoBF,IAGrDA,EAASG,YAAWH,GAGhBV,EAAUN,EAAUgB,IAAWV,EAAUL,EAAae,GACxD,MAAM,IAAIT,MAAM,mBAAmBP,EAASW,KAAK,eAAcV,EAAYU,KAAK,wBAAuBH,MAAQX,EAAMW,UAGvHQ,EAAOI,UAAYJ,EAAOI,WAAa,WACvCJ,EAAOK,MAAQ,MACfL,EAAOM,SAAWzB,EAClBmB,EAAOO,MAAQf,EAEf,IAAIgB,EAAaC,cAAYC,sBAAsBV,EAAOM,SAAUN,EAAOO,OAC3EP,EAAOW,YAAcH,EAAWI,WAChCZ,EAAOa,qBAAuBL,EAAWM,oBAEzCzB,EAAMG,GAAQQ,IAETX,EC8GT,WAA8BG,GAC5B,IAAIuB,EAAkBtC,WAASC,UAAUC,IAAIa,EAAO,aACpD,IAAKuB,IAAYA,EAAQC,OAAQ,MAAM,IAAIzB,MAAM,mCAAmCC,OACpF,OAAOuB,EAAQE,IAAIC,GAAaC,OAAOC,cC/IzC,WAAmBC,GAsBjB,WAAcC,EAA6BC,EAAeC,EAAeC,EAAuBC,EAAqBC,GAInH,OAHAC,EAAmBC,iBAAiBJ,EAAYH,EAAWE,EAAUD,UAC9DO,EAAe,cACfA,EAAa,KACbA,GAvBTA,EAASC,KAAKD,OAAS,IAAIE,YACpBC,cAAgB,IAAIC,EAAcJ,EAAOK,cAAeL,EAAOM,cAGtEN,EAAOK,cAAcE,UAAU,QAAYC,GAC3CR,EAAOK,cAAcE,UAAU,SAAYE,EAAoB,WAC/DT,EAAOK,cAAcE,UAAU,WAAYE,EAAoB,aAC/DT,EAAOK,cAAcE,UAAU,UAAYE,EAAoB,YAE/DT,EAAOU,YAAYC,WAAWC,mBAAmB,MAAOC,KAExD,IAAIf,EAAqBE,EAAOc,gBAAkBd,EAAOe,eAAiB,IAAIC,EAAoBzB,GAclG,OAZAyB,EAAoBC,6BAA6BjB,GAGjDA,EAAe,OAAIA,EACnBA,EAAa,KAAIkB,EACjBA,EAAKC,SAAW,YAAa,WAAY,WAAY,aAAc,QAAS,kBAOrEnB,EAWT,WAAkBpD,EAA6BwE,EAAeC,GAC5D1E,WAASC,UAAYA,EACrBD,WAASyE,GAAWA,EAIpBC,EAAUhB,cAAcxD,MACnBsC,IAAI,SAAAmC,GAAK,OAAAA,EAAEC,UAAUC,cACrBnC,OAAOC,cACP3B,OAAO,SAAA2D,GAAK,MAAW,aAAXA,EAAEG,OACdxD,QAAQ,SAAAyD,GAAc,OAAAA,EAAWD,KAAO7E,EAAU+E,SAASD,EAAWE,UAAWhF,EAAUiF,YAalG,WAA6BlC,GAC3BA,EAAWmC,OAAO,WAAaC,QAAMC,uBCzFvC,WAAuBC,GACrB,IAAiDC,EAA7CC,EAAaF,EAAIG,MAAM,qBAI3B,GAHID,IAAYF,EAAM,IAAME,EAAW,GAAK,OAE5CD,EAASD,EAAII,QAAQ,MAAO,KAAKD,MAAM,oCACN,IAAlBF,EAAOhD,OAAc,MAAM,IAAIzB,MAAM,sBAAwBwE,EAAM,KAClF,OAASlF,MAAOmF,EAAO,IAAM,KAAMI,UAAWJ,EAAO,IAAM,MAI7D,WAAsBK,GACpB,IAAIC,EAAuBD,EAAGvF,SAA8ByF,cAAc,WACtEhG,EAAmBiG,QAAM,YAANA,CAAmBF,GAC1C,OAAO/F,EAAOkG,OAAKlG,GAAMM,MAAMW,UAAOkF,EAIxC,WAAsBC,EAAsBC,EAA4BC,GACtE,IAAIC,EAAUD,EAAIC,SAAWH,EAAOI,QAAQvF,KACxCwF,EAAc7E,SAAO8E,EAAYL,EAAUD,GAASE,EAAIG,iBACxDE,EAAOP,EAAOO,KAAKJ,EAASD,EAAIM,cAAeH,GACnD,OAASF,UAASK,cAAeN,EAAIM,cAAeH,cAAaE,QAWnE,WAAqBb,GAEnB,IAAIe,EAA4D,+BAApDC,OAAOC,UAAUC,SAASC,KAAKnB,EAAGoB,KAAK,SAC/CC,EAA4B,SAAnBrB,EAAG,GAAGsB,SAEnB,OACEC,KAAMF,EAAS,SAAYN,EAAQ,aAAe,OAClDS,SAA+C,MAArCxB,EAAGoB,KAAK,WAAWK,cAC7BC,WAAYL,GAKhB,WAAmBrB,EAAsBM,EAAsBqB,EAA2BC,EAAgBC,GACxG,OAAO,SAAUC,GACf,IAAIC,EAASD,EAAEE,OAASF,EAAEC,OAAQE,EAASJ,IAE3C,KAAME,EAAS,GAAKD,EAAEI,SAAWJ,EAAEK,SAAWL,EAAEM,UAAYpC,EAAGuB,KAAK,WAAY,CAE9E,IAAIc,EAAaV,EAAS,WACxBrB,EAAOgC,GAAGL,EAAOxB,QAASwB,EAAOnB,cAAemB,EAAOtB,eAEzDmB,EAAES,iBAGF,IAAIC,EAA4BZ,EAAKJ,WAAaS,EAAOpB,KAAO,EAAI,EAEpEiB,EAAES,eAAiB,WACbC,KAA+B,GAAGb,EAASc,OAAOJ,MAO9D,WAAqBrC,EAAsBM,GACzC,OACEoC,SAAUC,EAAa3C,IAAOM,EAAOsC,SACrCC,SAAS,EACTC,OAAQ,QAKZ,WAAoBC,EAA2BC,EAAeC,EAA6CtC,GACzG,IAAIuC,EAEAvC,IACFuC,EAASvC,EAAYuC,QAGlBC,UAAQD,KACXA,GAAU,UAIZ,IAAkB,IADdE,EAAKL,EAAQK,GAAK,KAAO,WACXC,IAAAC,WAAAA,KAAb,IAAIC,OACPR,EAAQK,GAAIG,EAAON,GAGrBD,EAAMQ,IAAI,WAAY,WAEpB,IAAkB,IADdC,EAAMV,EAAQU,IAAM,MAAQ,aACdC,IAAAJ,WAAAA,KAAb,IAAIK,OACPZ,EAAQU,GAAKE,EAAOV,MCtG1B,WAA+B3C,GAC7B,IAAIsD,EAAgB,SAASpJ,EAAoBqJ,EAAaC,GAC5D,OAAOxD,EAAOyD,GAAGvJ,EAAOqJ,EAAQC,IAGlC,OADAF,EAASI,WAAY,EACdJ,EAcT,WAAuCtD,GACrC,IAAI2D,EAAsB,SAASzJ,EAAoBqJ,EAAaC,GAClE,OAAOxD,EAAO4D,SAAS1J,EAAOqJ,EAAQC,IAGxC,OADAG,EAAeD,WAAY,EACnBC,EC2SV,WAA4BE,EACAC,EACAC,EACAC,EACAzF,EACA8C,GAC1B,IAAM4C,EAAkBpE,QAAM,yBACxBqE,EAAerE,QAAM,sBAE3B,OACEsE,SAAU,MACVC,UAAW,IACXC,QAAS,SAAUC,GACjB,IAAIC,EAAUD,EAASE,OAGvB,OAFAF,EAASG,QAEF,SAAU/B,EAAezC,GAC9B,IAAIyE,EAAmBzE,EAASyE,KAAK,WACrC,IAAKA,EAGD,OAFAzE,EAASuE,KAAKD,QACdV,EAAS5D,EAAS0E,WAAlBd,CAA8BnB,GAIlC,IAAIkC,EAAqBF,EAAKG,OAAgBC,YAAcC,YAAaC,QACrEC,EAA6BL,EAAIhL,MAAQ,IAAIsL,iBAAeN,EAAIhL,MACpEqG,EAASuE,KAAKI,EAAIG,YAAY9E,EAAUgF,IAAeV,GACvDrF,QAAMiG,gBAAgBT,EAAK/E,QAASM,EAASuE,QAE7C,IAAIY,EAAOvB,EAAS5D,EAAS0E,YACzBU,EAAaT,EAAIS,WACjBC,EAAuBrB,EAAgBW,GACvCnJ,EAAoByI,EAAaU,GACjCW,EAASN,GAAcO,EAAUP,GAIrC,GAFAvC,EAAMjH,GAAa8J,EAEfF,EAAY,CACd,IAAII,EAAqC3B,EAAYuB,EAAY7J,YAAW+J,GAAUG,OAAQhD,EAAOzC,SAAUA,KAC3GqF,IACF5C,EAAM4C,GAAgBG,EACtB/C,EAAM4C,GAAc7J,GAAa8J,GAQnCtF,EAASyE,KAAK,0BAA2Be,GACzCxF,EAAS0F,WAAWjB,KAAK,0BAA2Be,GAEpDG,EAA4BrH,EAAIwF,EAAc0B,EAAoB/C,EAAOkC,GAI3E,GAAItJ,WAASsJ,EAAIE,SAASvJ,WACxB,IAAIsK,EAAMjB,EAAIE,SAASvJ,UACnBuK,EAAYC,cAAYF,GACxBG,EAAY,IAAIC,OAAO,eAAeH,MAAc,KASpDI,EAAkBxD,EAAMzD,OAPC,WAC3B,IAAIkH,KAAiBC,MAAMvF,KAAKZ,EAAS,GAAG0F,UACvC7K,OAAO,SAAC4E,GAAgB,OAAAA,GAAMA,EAAG2G,SAAWL,EAAUM,KAAK5G,EAAG2G,WAEnE,OAAOF,GAAeI,EAAQ9D,QAAQ0D,GAAazB,KAAK,IAAImB,iBAGH,SAASW,GAC7DA,IACLZ,EAA4BrH,EAAIwF,EAAcyC,EAAc9D,EAAOkC,GACnEsB,OAIJd,EAAK1C,MAYb,WAAqCnE,EACAwF,EACA0B,EACAC,EACAd,IAE/B6B,aAAWhB,EAAmBiB,UAAc9B,EAAIE,SAASvJ,WAAaoL,GACxElB,EAAmBiB,UAGrB,IAAIE,EAAiC9G,OAAK8E,EAAIhL,MAAMM,MAAM2M,KAEtDC,GAAgCC,KAAMtB,GAE1C,GAAIgB,aAAWhB,EAAmBuB,mBAAoB,CACpD,IACIC,EADiC,IAAI/B,iBAAeN,EAAIhL,MACrBsN,cAAc,gBAAgBxC,KA2BrEgB,EAAOxC,IAAI,WAAkBa,EAAaoD,aAxBpB,SAACC,GAGrB,GAAIA,IAAiBH,IAAwF,IAAnEG,EAAaC,UAAUC,QAAQV,GAAzE,CAEA,IAAIW,EAAWH,EAAa7D,OAAO,MAC/BiE,EAAaJ,EAAa7D,OAAsB,QAChDkE,EAAoBL,EAAaM,cAAcC,GAAGrL,IAAI,SAACsL,GAAmB,OAAAA,EAAKC,cAAarL,OAAOC,cACnGqL,EAAsBV,EAAaM,cAAcK,KAAKzL,IAAI,SAACsL,GAAmB,OAAAA,EAAKC,cAAarL,OAAOC,cAGvGuL,EAAkBP,EAAS3M,OAAO,SAACmN,GACrC,IAAIC,EAAMJ,EAAWR,QAAQW,GAC7B,OAAgB,IAATC,IAAeJ,EAAWI,GAAK5G,KAAK6G,OAAOZ,EAASU,EAAMG,IAAKZ,EAAWS,EAAMG,OAIzF,GAAIJ,EAAgB3L,OAAQ,CAC1B,IAAIgM,EAAwBL,EAAgB1L,IAAI,SAAAmC,GAAK,OAAAA,EAAE2J,KAEnDE,EAAYxN,SAAOyM,EAAU,SAACgB,EAAKxN,GAAQ,OAA8B,IAA9BsN,EAAYf,QAAQvM,KACnE0K,EAAmBuB,kBAAkBsB,EAAWlB,MAGmBN,IAIzE,GAAIL,aAAWhB,EAAmB+C,WAAY,CAC5C,IAAIC,EAAKC,IAIHC,EAAmB,SAACC,GACtB,QAAEA,IAAUA,EAAe,gBAA8B,IAAzBA,EAAe,cAAEH,IAAgBE,EAAiBC,EAAMC,oBAYxFC,GAAYzB,QAAST,EAAU/L,MACnC6K,EAAOxC,IAAI,WAAkBa,EAAagF,SAASD,EAV/B,SAACF,GACnB,IAAII,EAASC,EAAML,EAAe,cAAIA,EAAe,kBAKrD,OAJKD,EAAiBC,KACpBI,EAAUzK,EAAG2K,KAAKzD,EAAmB+C,UAAUI,KACvCO,KAAK,SAAAZ,GAAO,OAAAU,EAAIR,IAAe,IAARF,IAE1BS,GAIiElC,KCte9E,IAAIsC,EAAiB7C,QAER8C,EAAMC,GAAkBC,SAAyBD,EAAiBF,ENWzEzO,EAAY,SAAC6O,EAAMC,GACrB,OAAAD,EAAKhN,OAAO,SAACkN,EAAK3O,GAAQ,OAAA2O,GAAOjP,YAAUgP,EAAI1O,MAAO,IA8DtDqN,EAAK,eASP,WAAmBxO,EAAyBkL,EAAqC6E,GAAjF,WAAmBvM,UAAAxD,EAAyBwD,cAAA0H,EAAqC1H,aAAAuM,EAPjFvM,SAAMgL,IACNhL,aAAkB,EA0BlBA,iBAAc,SAACwM,EAAQC,GACrB,OAAAC,EAAKvO,UAAYuO,EAAKH,QAAQI,sBAAsBH,EAAQC,EAASC,EAAKvO,UAAWuO,EAAKhF,SAASkF,UAAYF,EAAKG,UAexH,OAlCEhQ,iBAAA,WAAA,WACMsE,EAAKzE,WAASyE,GACdsL,EAAU,IAAI3E,iBAAe9H,KAAKxD,MAClC2J,EAASnG,KAAKxD,KAAK4C,OAAO,SAACkN,EAAK9B,GAAS,OAAApM,SAAOkO,EAAK9B,EAAKsC,kBAE1DC,GACFF,SAAU1L,EAAG2K,KAAK9L,KAAKuM,QAAQS,WAAWhN,KAAK0H,SAAUvB,EAAQsG,IACjExE,WAAY9G,EAAG2K,KAAK9L,KAAKiN,cAAcR,KAGzC,OAAOtL,EAAG+L,IAAIH,GAAUhB,KAAK,SAACoB,GAI5B,OAHArL,QAAMsL,sBAAsB,SAAUV,GACtCA,EAAKzE,WAAakF,EAAQlF,WAC1B7J,SAAOsO,EAAMS,EAAQN,UACdH,KAYX7P,0BAAA,SAAc4P,GACZ,IAAIY,EAAWrN,KAAK0H,SAAS4F,mBAC7B,IAAKC,eAAaF,GAAW,OAAOrN,KAAK0H,SAASO,WAClD,IAAIzG,EAAO9E,WAASC,UAAU+E,SAAS2L,GACnCG,EAAa/H,UAAQ4H,GAAY3K,OAAW2K,GAAYA,EAE5D,OADiB,IAAII,aAAW,GAAUD,EAAYhM,GACpC5E,IAAI6P,sBChH1B,aAAA,WACyBzM,cAAWmJ,EAAQuE,QAAQC,MAAQ,EAK3C3N,WAAQ,QAAS,iBAAkB,YAAa,SAACL,EAAOC,EAAgBjD,GAIrF,OAHA+P,EAAKkB,iBAAmBjR,EAAUkR,KAAOlR,EAAUkR,IAAI,qBAAuBlR,EAAUC,IAAI,oBAC5F8P,EAAK/M,MAAQA,EACb+M,EAAK9M,eAAiBA,EACf8M,IAmKX,OA/JEoB,2BAAA,SAAeC,GACb/N,KAAKgO,SAAWD,GAgBlBD,uBAAA,SAAW7P,EAA4BkI,EAAasG,GAClD,IAEMwB,EAAc,SAACC,GAAW,OAAAxR,WAASyE,GAAG2K,KAAKoC,GAAQnC,KAAK,SAAAoC,GAAO,OAAGtB,SAAWsB,MAC7EC,EAAc,SAACF,GAAW,OAAAxR,WAASyE,GAAG2K,KAAKoC,GAAQnC,KAAK,SAAAoC,GAAO,OAAGhQ,UAAWgQ,MAEnF,OACI9Q,YAAUY,EAAO4O,UAAqBoB,EAAWjO,KAAKqO,WAAWpQ,EAAO4O,SAAU1G,IAClF9I,YAAUY,EAAOqQ,aAAqBL,EAAWjO,KAAKuO,QAAQtQ,EAAOqQ,YAAanI,IAClF9I,YAAUY,EAAOuQ,kBAAqBP,EAAWjO,KAAKyO,aAAaxQ,EAAOuQ,iBAAkBrI,EAAQsG,IACpGpP,YAAUY,EAAOE,WAAqBiQ,EAAYnQ,EAAOE,WACzDd,YAAUY,EAAOyQ,mBAAqBN,EAAYpO,KAAK2O,sBAAsB1Q,EAAOyQ,kBAAmBvI,EAAQsG,IAC/GwB,EAXoB,wBAwB1BH,uBAAA,SAAWjB,EAA+B1G,GACxC,OAAOkD,aAAWwD,GAAmBA,EAAU1G,GAAU0G,GAY3DiB,oBAAA,SAAQc,EAA0BzI,GAEhC,OADIkD,aAAWuF,KAAMA,EAAaA,EAAKzI,IAC5B,MAAPyI,EAAoB,KAEpB5O,KAAKgO,SACAhO,KAAKL,MAAM/C,IAAIgS,GAAOC,MAAO7O,KAAKJ,eAAgBkP,SAAWC,OAAQ,eACvEhD,KAAK,SAAUiD,GACd,OAAOA,EAAS1H,OAIjBtH,KAAK4N,iBAAiBgB,IAW/Bd,yBAAA,SAAaT,EAAuBlH,EAAasG,GAC/C,IAAIjL,EAAO9E,WAASC,UAAU+E,SAAS2L,GACnCG,EAAa/H,UAAQ4H,GAAY3K,OAAa2K,GAAYA,EAE9D,OADiB,IAAII,aAAW,GAAeD,EAAYhM,GACzC5E,IAAI6P,IAUxBqB,kCAAA,SAAsBT,EAAuBlH,EAAasG,GACxD,IAAIjL,EAAO9E,WAASC,UAAU+E,SAAS2L,GACnCG,EAAa/H,UAAQ4H,GAAY3K,OAAa2K,GAAYA,EAE9D,OADiB,IAAII,aAAW,GAAeD,EAAYhM,GACzC5E,IAAI6P,IAiBxBqB,kCAAA,SAAsBtB,EAA0BC,EAAyBtO,EAAmByO,GAC1FA,EAAWA,MAGX,IAAMqC,EAAS9F,EAAQuE,QAAQC,OAAS,EAAI,KAAO,GAE7CuB,EAAQ,SAACC,GACb,IAAMC,EAAUzG,cAAYwG,GAC5B,MAAO,aAAajG,KAAKkG,GAAW,KAAKA,EAAYA,GAmCnDC,EAAQC,EAAqBnR,GAAWe,IA/BvB,SAACqQ,GACd,IAAA9R,SAAMyG,SACRsL,EAAWN,EAAMzR,GAIrB,GAAI+O,EAAO3I,KAAK2L,KAAc5C,EAASnP,GACrC,OAAU+R,OAAahD,EAAO3I,KAAK2L,OAErC,IAAIC,EAAc7C,EAASnP,IAASA,EAGpC,GAAa,MAATyG,EACF,OAAUsL,SAAeP,cAAkBQ,QAK7C,GAAa,MAATvL,EAAc,CAChB,IAAIwL,EAAMjD,EAAQ3C,cAAc2F,GAC5BE,EAAKD,GAAOA,EAAIpI,KAChBsI,EAAOD,GAAMjT,WAASC,UAAU+E,SAASiO,OAG7C,OAAUH,gBAAsBC,GADdhK,UAAQkK,GAAM,KAAIA,EAAG1Q,OAAS,OAAO,QACM2Q,EAAKhS,KAAK,UAIzE,OAAU4R,OAAaP,cAAkBQ,QAGmB7R,KAAK,KAC/D8K,EAAYwG,EAAM/Q,GACtB,MAAO,IAAIuK,MAAa2G,QAAW3G,YAajCvJ,EAAc,SAAC2D,GACnB,OAA2C+M,EAAvCC,WAAShN,EAAIiN,kBAAwCjN,EAAIiN,iBACxCjN,EAAIwC,QAUrBuK,EAAgB,SAACG,GAAqB,OAAA1M,OAAO8I,KAAK4D,OAEnD9Q,IAAI,SAAAvB,GAAO,OAACA,EAAK,oBAAoBuL,KAAK8G,EAAYrS,OAEtDD,OAAO,SAAAuS,GAAS,OAAA5S,YAAU4S,IAAUxK,UAAQwK,EAAM,MAElD/Q,IAAI,SAAA+Q,GAAS,OAAGxS,KAAMwS,EAAM,GAAG,IAAMA,EAAM,GAAI/L,KAAM+L,EAAM,GAAG,oBMhMjE,WAAoB7P,EAAsCC,GAAtCL,mBAAAI,EAAsCJ,kBAAAK,EACxD6P,uBAAqB/E,MAAIhL,EAAcoD,WAAYvD,KAAMmL,MAAInL,OAyPjE,OA7JEG,sBAAA,SAAU1C,EAAc0S,GACtB,OAAOnQ,KAAKI,cAAcE,UAAU7C,EAAM0S,IAASnQ,MAyIrDG,kBAAA,SAAM1C,EAAW2S,GAOf,OANIN,WAASrS,GACX2S,EAAa3S,EAEb2S,EAAW3S,KAAOA,EAEpBuC,KAAKI,cAAciQ,SAASD,GACrBpQ,MASTG,sBAAA,SAAUmQ,GACR,OAAOtQ,KAAKK,aAAakQ,UAAUD,SCjQ1B9P,EAAsB,SAACgQ,GACpC,OAAA,SAA0B1T,EAAoB2T,GAC5C,IAAIC,EAAO5T,EAAM0T,GACbG,EAAwB,WAAbH,EAAwB,OAAS,KAQhD,OAAOE,EANP,SAA0BlF,EAAmB1O,GAC3C,IAAI8T,EAAiB,IAAI9I,iBAAe0D,EAAMlB,YAAYqG,IACtDxI,EAAS/J,SAAOgK,EAAUwI,IAAmBC,QAAS/T,EAAOkN,aAAcwB,IAC/E,OAAO9O,WAASC,UAAUmU,OAAOJ,EAAM1Q,KAAMmI,SAGdxF,iBCKjC,WAAYrD,GAJJU,sBAKNA,KAAKV,kBAAoBA,EACzB,IAAIyR,EAAM5F,MAAI7L,GACd4Q,uBAAqBa,EAAK/Q,KAAM+Q,GAAM,eA4D1C,OAjEEhQ,oBAAA,aAQAA,qBAAA,SAASuP,GAAT,WAEE,OADAtQ,KAAKgR,cAAcC,KAAKX,GACjB,WAAM,OAAAY,aAAWxE,EAAKsE,cAAhBE,CAA+BZ,KAG9CvP,sBAAA,WACE,IAAIoQ,EAAiBnR,KAAKV,kBAAkB6R,YAE5C,OADAA,EAAYrB,WAASqB,GAAaA,EAAUC,QAAUD,IAClCnR,KAAKP,SAAS4R,SAGpCtQ,gBAAA,SAAIuQ,EAAiBlP,EAAiBtF,GAIpC,oBAJmBsF,MACfkP,GAAQtR,KAAKT,UAAUqP,IAAI0C,GAC3BlP,GAASpC,KAAKT,UAAU6C,UACxBtF,GAAOkD,KAAKT,UAAUzC,MAAMA,GACzBkD,KAAKT,UAAUqP,OAGxB7N,6BAAA,SAAiBrB,EAAYH,EAA6BE,EAAUD,GAApE,WACEQ,KAAKT,UAAYA,EACjBS,KAAKP,SAAWA,EAGhBC,EAAWoG,IAAI,yBAA0B,SAAAyL,GAAO,OAAA7E,EAAKsE,cAAchT,QAAQ,SAAA2R,GAAM,OAAAA,EAAG4B,OACpF,IAAIC,EAAOrG,MAAI5L,GACXkS,EAAWtG,MAAI3L,GAGnB0Q,uBAAqBsB,EAAMxR,KAAMwR,GAAO,UAAW,OAAQ,SAAU,SAErEtB,uBAAqBsB,EAAMxR,KAAMwR,GAAO,OAAQ,WAAY,SAE5DtB,uBAAqBuB,EAAUzR,KAAMyR,GAAW,cAe3C1Q,+BAAP,SAAoChB,GAClC,IAAI2R,EAAsB3R,EAAO4R,kBAAkBzN,KAAK,QAExDwN,EAASE,OAAS,SAACzG,GACf,OAAO,MAAPA,EAAcA,EAAI3H,WAAWpB,QAAQ,UAAW,SAAAyP,GAAK,OAAGC,IAAK,KAAMC,IAAK,OAAQF,KAAO1G,GAE3FuG,EAASM,OAAS,SAAC7G,GACf,OAAO,MAAPA,EAAcA,EAAI3H,WAAWpB,QAAQ,YAAa,SAAAyP,GAAK,OAAGI,KAAM,IAAKC,MAAO,KAAML,KAAO1G,sBC5D/F,WAAYpL,GACVC,KAAKmS,QAAUpS,EACfC,KAAKoS,WAAarS,EAAOsS,UAkL7B,OA9KEC,iBAAA,WACE,IAAID,EAAYrS,KAAKoS,WAGrB,OAFAC,EAAUE,QAAO,GACZF,EAAUG,mBAAmBH,EAAUI,SACrCJ,GAkCTC,iBAAA,SAAKI,GAAL,WACE,IAAKrJ,aAAWqJ,GAAS,MAAM,IAAIlV,MAAM,6BAEzC,IAGImV,EAAO,IAAIC,cAHD,WACV,OAAAF,EAAOhW,WAASC,UAAW+P,EAAKyF,QAAQtR,kBAEVgS,YAElC,OADA7S,KAAKoS,WAAWO,KAAKA,GACd3S,MA6BTsS,sBAAA,SAAUK,GAAV,WACMN,EAAYrS,KAAKoS,WAErB,GAAIlU,WAASyU,GACXN,EAAUS,UAAUH,OACf,CAAA,IAAItJ,aAAWsJ,GAGpB,MAAM,IAAInV,MAAM,uCAFhB6U,EAAUS,UAAU,WAAM,OAAAH,EAAKjW,WAASC,UAAW+P,EAAKyF,QAAQtR,mBAKlE,OAAOb,MAyCTsS,iBAAA,SAAKS,EAAkCC,GAMrC,OALIvN,UAAQuN,IAAY3J,aAAW2J,MACjCA,EAAUV,EAAkBW,kBAAkBjT,KAAKmS,QAASa,IAG9DhT,KAAKoS,WAAWtG,KAAKiH,EAAMC,GACpBhT,MAGFsS,oBAAP,SAAyBvS,EAAkBiT,GACzC,OAAO,SAAA7Q,GACH,OAAAzF,WAASC,UAAUmU,OAAOkC,EAAS,MAAQE,OAAQ/Q,EAAOgR,aAAcpT,EAAOqT,QAAQjN,WAiC7FmM,2BAAA,SAAee,GACbrT,KAAKoS,WAAWkB,eAAeD,SRpMnCpH,EAgBQsH,OAAO,yBACf,IAAIC,EAAYrK,EAAQoK,OAAO,qBAC3BE,EAAYtK,EAAQoK,OAAO,kBAAqB,KAAM,mBACtDG,EAAYvK,EAAQoK,OAAO,oBAAqB,mBAChDI,EAAYxK,EAAQoK,OAAO,mBAAqB,mBAAoB,iBAAkB,uBACtFK,EAAYzK,EAAQoK,OAAO,aAAqB,iBAAkB,kBAAmB,uBAYrFxT,GAXYoJ,EAAQoK,OAAO,oBAAqB,cAW7B,MAEvBnS,EAAUF,SAAW,qBAiCrB,IAAM2S,EAAiB,SAACC,GAAgB,OAAE,oBAAqB,SAACC,GAC9D,IAAIC,EAAUD,EAAKhU,OAAO+T,GAE1B,OADAE,EAAc,KAAI,WAAM,OAAAA,GACjBA,KAITC,EAAS/S,SAAW,YAAa,KAAM,aAuBvCgT,EAAahT,SAAW,cAKxBsS,EAAUnG,SAAS,YAA4BjM,GAC/CsS,EAAUrG,SAAS,cAAuB,oBAdb,SAAC8G,GAC5B,OAAAA,EAASC,kBAAoB,IAAI9B,EAAkB6B,MAcrDV,EAAUpG,SAAS,cAAsBwG,EAAe,eACxDJ,EAAUpG,SAAS,sBAAuB,oBAAqB,WAAM,OAAAtN,EAAO4R,qBAC5E8B,EAAUpG,SAAS,mBAAsB,WAAM,OAAA,IAAIS,IACnD6F,EAAUtG,SAAS,iBAAsBwG,EAAe,kBACxDF,EAAUtG,SAAS,mBAAsBwG,EAAe,YACxDF,EAAUtG,SAAS,eAAsBwG,EAAe,sBACxDF,EAAUtG,SAAS,UAAuB,oBAhBjB,WACrB,OAAAjP,SAAO2B,EAAOG,eAAiBe,KAAM,WAAM,OAAAlB,EAAOM,mBAiBtDsT,EAAUpH,QAAS,gBAAuB,YAAa,SAACnL,GAAwB,OAAAA,EAAUgS,QAAQjN,UAClGyN,EAAUrH,QAAS,QAAsB,WAAM,OAAAxM,EAAOU,cACtDmT,EAAUI,QAAS,SAAsB,WAAM,OAAAlS,UAE/C8R,EAAUS,IAASH,GACnBT,EAAUY,KAAU,qBAAsB,SAAUC,OACpDX,EAAUU,KAAU,SAAU,SAAUzR,OACxC8Q,EAAUW,KAAU,aAAc,SAAUE,OAC5Cf,EAAUa,IAASJ,GAGnB,ICwHIO,EDxHSpM,EAAY,SAACqM,GASxB,OARaA,EAAIC,YAAYhX,OAAOQ,YAEfgB,IAAI,SAAAvB,GACvB,IAAI8D,EAAagT,EAAI3K,cAAcnM,GAEnC,OAASA,EAAoB,WADZ8W,EAAIE,UAAUlT,GAAYmT,MACHnT,EAAWmK,QAAUnK,EAAW6F,QAG5DlI,OAAOyV,kBCgHvBL,GAAU,YAAa,WACrB,SAA4BpT,EAAqB6C,GAC/C,IAAIrB,EAASxB,EAAUf,aAEvB,OACE0G,SAAU,IACV+N,SAAU,iBAAkB,oBAC5B9M,KAAM,SAAU1C,EAAeD,EAA2BgK,EAAY0F,GAapE,aACE,IAAIjS,EAAMqB,IACN6Q,GAAcA,IACdC,IAAQD,EAAeC,EAAOC,eAAepS,EAAIC,QAASD,EAAIM,gBAClD,MAAZN,EAAIK,MAAckM,EAAM8F,KAAKjR,EAAKL,KAAMf,EAAIK,MAhBlD,IAGIoC,EAHArB,EAAOkR,EAAY/P,GACnB4P,EAASF,EAAa,IAAMA,EAAa,GACzCC,EAAyB,KAGzBK,KACAlR,EAAS,WAAM,OAAAmR,EAAa1S,EAAQyC,EAASgQ,IAE7CrT,EAAMuT,EAAclG,EAAMmF,QAC9Ba,EAAOtS,QAAUf,EAAIlF,MACrBuY,EAAOpS,YAAcoM,EAAMmG,WAAalQ,EAAMmQ,MAAMpG,EAAMmG,eAStDxT,EAAIK,YACNiD,EAAMzD,OAAOG,EAAIK,UAAW,SAAU8I,GACpCkK,EAAOjS,cAAgBhF,YAAW+M,GAClCoH,MACC,GACH8C,EAAOjS,cAAgBhF,YAAWkH,EAAMmQ,MAAMzT,EAAIK,aAGpDkQ,IAEAjN,EAAMQ,IAAI,WAAkB1E,EAAUhB,cAAcsV,gBAAgBnD,IACpEjN,EAAMQ,IAAI,WAAkB1E,EAAUuU,kBAAkB5L,aAAcwI,IAEjErO,EAAKF,YACVuB,EAASqQ,EAAUvQ,EAASzC,EAAQqB,EAAUC,EAAMC,GACpD0R,EAAWxQ,EAASC,EAAOC,EAAQ8P,EAAOpS,kBAyFlD,IAAIF,EACJA,GAAW,YAAa,WACtB,SAAmC3B,EAAqB6C,GACtD,IAAIrB,EAASxB,EAAUf,aAEvB,OACE0G,SAAU,IACV+N,SAAU,iBAAkB,oBAC5B9M,KAAM,SAAU1C,EAAeD,EAA2BgK,EAAY0F,GAYpE,aACE,IAAIjS,EAAMqB,IACN6Q,GAAcA,IACdC,IAAQD,EAAeC,EAAOC,eAAepS,EAAIC,QAASD,EAAIM,gBAClD,MAAZN,EAAIK,MAAckM,EAAM8F,KAAKjR,EAAKL,KAAMf,EAAIK,MAflD,IAGIoC,EAHArB,EAAOkR,EAAY/P,GACnB4P,EAASF,EAAa,IAAMA,EAAa,GACzCC,EAAyB,KAGzBK,KACAlR,EAAS,WAAM,OAAAmR,EAAa1S,EAAQyC,EAASgQ,IAE7CS,GAAc,UAAW,gBAAiB,eAC1CC,EAAgBD,EAAW1W,OAAO,SAACkN,EAAKzI,GAAS,OAACyI,EAAIzI,GAAQ+D,OAAM0E,OASxEwJ,EAAW9X,QAAQ,SAACgY,GAClBX,EAAOW,GAAS3G,EAAM2G,GAAS1Q,EAAMmQ,MAAMpG,EAAM2G,IAAU,KAE3D3G,EAAM4G,SAASD,EAAO,SAACE,GACrBH,EAAcC,KACdD,EAAcC,GAAS1Q,EAAMzD,OAAOqU,EAAM,SAACC,GACzCd,EAAOW,GAASG,EAChB5D,MACC,OAIPA,IAEAjN,EAAMQ,IAAI,WAAkB1E,EAAUhB,cAAcsV,gBAAgBnD,IACpEjN,EAAMQ,IAAI,WAAkB1E,EAAUuU,kBAAkB5L,aAAcwI,IAEjErO,EAAKF,YACVuB,EAASqQ,EAAUvQ,EAASzC,EAAQqB,EAAUC,EAAMC,GACpD0R,EAAWxQ,EAASC,EAAOC,EAAQ8P,EAAOpS,kBAuFlD,IAAI8R,EACJA,GAAgB,SAAU,eAAgB,eAAgB,YACxD,SAAkCnS,EAAsBuQ,EAAmBiD,EAAmChV,GAC5G,OACE2F,SAAU,IACVkB,YAAa,SAAU,WAAY,SACjC,SAAUK,EAAgBzF,EAA4BwT,GAsCpD,WAA+B7K,GAC7BA,EAAMI,QAAQG,KAAKwG,EAAQ3K,QAS7B,WAAkB0O,EAAmBC,EAAkBC,GACrD,IAEIC,GACF3Z,MAHU8F,EAAOhG,IAAI0Z,EAAWrR,EAAapC,MAG3BpF,KAAM6Y,GACxBnQ,OAAQoQ,EACRC,YAAaA,GAKf,OAFAE,EAAOzF,KAAKwF,GAEL,WACLvF,aAAWwF,EAAXxF,CAAmBuF,IAKvB,aACE,IAAME,EAAe,SAAAxI,GACjB,OAAAA,EAAIyI,MAAM,MAAMlZ,OAAOmV,aACrBgE,EAAa,SAACC,GAChB,OAAAA,EAAU5X,IAAI,SAAAmC,GAAK,OAAAA,EAAEmV,cAAatX,IAAIyX,GAAcvX,OAAOC,eAE3D0X,EAAaF,EAAWH,GAAQvZ,OAAOwZ,EAAaK,IAAgB5X,OAAO6X,YAC3EC,EAAeL,EAAWH,EAAOhZ,OAAO,SAAA2D,GAAK,OAAAuB,EAAO4D,SAASnF,EAAEvE,MAAMW,KAAM4D,EAAE8E,WAE7EgR,IADsBT,EAAOhZ,OAAO,SAAA2D,GAAK,OAAAuB,EAAOyD,GAAGhF,EAAEvE,MAAMW,KAAM4D,EAAE8E,UAASlH,OACzC0X,EAAaK,MAEhDI,EAAaF,EAAa/Z,OAAOga,GAAc/X,OAAO6X,YACtDI,EAAgBN,EAAWrZ,OAAO,SAAA4Z,GAAO,OAACC,UAAQH,EAAYE,KAElEhP,EAAOkP,WAAW,WAChBJ,EAAWpZ,QAAQ,SAAAyZ,GAAa,OAAA5U,EAAS6U,SAASD,KAClDJ,EAAcrZ,QAAQ,SAAAyZ,GAAa,OAAA5U,EAAS8U,YAAYF,OAhF5D,IACIT,EACAjC,EAFA2B,KAOJM,EAAgBZ,EAAaC,EAAOuB,gBAAkB,IAAI,EAA1CxB,CAAiD9N,GAEjE,IACEyM,EAAezM,EAAOmN,MAAMY,EAAOtB,cACnC,MAAO3Q,IAIT2Q,EAAeA,GAAgBqB,EAAaC,EAAOtB,cAAgB,IAAI,EAAxCqB,CAA+C9N,GAC1EwH,WAASiF,IACX/W,UAAQ+W,EAAc,SAAU8C,EAA0BrB,GACxD,GAAItY,WAAS2Z,GAAc,CACzB,IAAI7V,EAAMuT,EAAcsC,GACxBC,EAAS9V,EAAIlF,MAAOwL,EAAOmN,MAAMzT,EAAIK,WAAYmU,MAMvDxW,KAAKkV,eAAiB,SAAU6C,EAAkBC,GAGhD,KAAIlI,WAASiF,IAAiB2B,EAAOzX,OAAS,GAA9C,CAGA,IAAIgZ,EAAaH,EAASC,EAAUC,EAAWjD,GAE/C,OADAxC,IACO0F,IAOT3P,EAAOxC,IAAI,sBAAuByM,GAClCjK,EAAOxC,IAAI,WAAkB1E,EAAUuU,kBAAkBuC,WAAYC,IACjE/W,EAAUgS,QAAQzO,YACpBwT,EAAsB/W,EAAUgS,QAAQzO,YAwC1C4N,SAUVpJ,EAAQoK,OAAO,mBACV6E,UAAU,SAAU5D,GACpB4D,UAAU,eAAgBrD,GAC1BqD,UAAU,iBAAkBrD,GAC5BqD,UAAU,UAAWrV,GCnmB1BsV,EAAenX,SAAW,UAmB1BoX,EAAuBpX,SAAW,UASlCiI,EAAQoK,OAAO,mBACZ7V,OAAO,UAAW2a,GAClB3a,OAAO,kBAAmB4a,GCiH7B,IAAW9L,EACXA,GAAU,QAAS,WAAY,gBAAiB,eAAgB,KAChE,SAAwB5F,EAAoB2R,EAAeC,EAAoBpC,EAAmCjV,GAEhH,WAAqBkO,EAAY/J,GAC/B,OACEmT,MAAO,SAASpT,EAAiBd,EAAamU,GACxCvP,EAAQuE,QAAQC,MAAQ,EAC1B4K,EAASE,MAAMpT,EAAS,KAAMd,GAAQwH,KAAK2M,GAE3CH,EAASE,MAAMpT,EAAS,KAAMd,EAAQmU,IAG1CC,MAAO,SAAStT,EAAiBqT,GAC3BvP,EAAQuE,QAAQC,MAAQ,EAC1B4K,EAASI,MAAMtT,GAAS0G,KAAK2M,GAE7BH,EAASI,MAAMtT,EAASqT,KAMhC,WAAsBE,EAAwBC,GAC5C,OAAOD,IAAYC,EAGrB,IAAIC,GACFrR,MAAQC,UAAYnJ,SAAUqI,EAAMlG,WAAWqY,qBAC/CxW,YAGE6V,GACFY,MAAO,EACPjS,SAAU,MACVkS,UAAU,EACVjS,SAAU,IACVkS,WAAY,UACZjS,QAAS,SAAUC,EAAkBiS,EAAaC,GAEhD,OAAO,SAAU9T,EAAezC,EAA4BwM,GA+C1D,aAaE,GAZIgK,IACFvX,QAAMwX,iBAAiB,yBAA0BD,EAAW/R,KAAK,YACjE+R,EAAWE,SACXF,EAAa,MAGXG,IACF1X,QAAMwX,iBAAiB,mBAAoBG,GAC3CD,EAAaE,WACbF,EAAe,MAGbG,EAAW,CACb,IAAIC,EAAYD,EAAUrS,KAAK,eAC/BxF,QAAMwX,iBAAiB,cAAeM,GACtCC,EAASlB,MAAMgB,EAAW,WACxBC,EAAUE,YAAYC,UACtBV,EAAa,OAGfA,EAAaM,EACbA,EAAY,MAIhB,WAAoB1b,GAClB,IAAI+b,EAAW1U,EAAM2U,OACjBC,EAAY/Y,EAAGkS,QAAS8G,EAAYhZ,EAAGkS,QAEvC+G,GACF3S,KAAMxJ,EACNsE,QAASkX,GAGPY,GACFC,WAAYJ,EAAUtO,QACtB2O,WAAYJ,EAAUvO,QACtBkO,YAAaK,GAefH,EAASQ,MAAM,sBAAuB/c,GAEtC,IAAIgd,EAASrB,EAAYY,EAAU,SAASU,GAC1CA,EAAMpT,KAAK,cAAe+S,GAC1BK,EAAMpT,KAAK,UAAW8S,GACtBP,EAASpB,MAAMiC,EAAO7X,EAAU,WAC9BqX,EAAUH,UACNP,GAAcA,EAAagB,MAAM,+BAEjCnd,YAAUsd,KAAmBA,GAAiBrV,EAAMmQ,MAAMkF,KAC5DnC,EAAckC,KAIlBE,MAGFjB,EAAYc,GACZjB,EAAeQ,GAWFQ,MAAM,qBAAsBvc,GAAU4c,GACnDrB,EAAa/D,MAAMqF,GAjIrB,IAAIzB,EAAoBM,EACpBH,EAAsBuB,EACtBD,EAAgBzL,EAAc,QAAK,GACnCsL,EAAgBtL,EAAkB,WAClCwK,EAAgBmB,IAChBH,OAAgBlY,EAChBsY,EAAgBpY,EAASL,cAAc,YAAcsW,EACrDrb,EAAgB2Y,EAAa/G,EAAc,QAAKA,EAAY,MAAK,GAAjD+G,CAAqD9Q,IAAU,WAE/EmU,GACFnb,MAAO,MACP0M,GAAIoN,EAAUY,QACdvb,KAAMA,EACNyd,IAAKD,EAAU1Y,QAAQ2Y,IAAMD,EAAU1Y,QAAQ2Y,IAAM,IAAMzd,EAAOA,EAClEQ,OAAQ,KACRkd,cAYF,SAA+Bld,KACzBA,GAAYA,aAAkBpB,KAC9Bue,EAAaP,EAAY5c,KAC7B6D,QAAMuZ,yBAAyB5B,EAAcxb,GAAUA,EAAOyJ,UAAYzJ,EAAOyJ,SAASnJ,UAE1Fsc,EAAa5c,EACbqd,EAAWrd,MAjBXsd,sBACE,IAAIC,EAAsB/Y,QAAM,yBAANA,CAAgCwY,GAGtDQ,EAAgBhZ,QAAM,0BAANA,CAAiCwY,GACrD,OAAOO,GAAuBC,IAIlC3Z,QAAMwX,iBAAiB,UAAWG,GAWlC5W,EAASyE,KAAK,WAAa/E,QAASkX,IAEpC6B,IAEAP,EAAanU,EAAM8U,eAAejC,GAClCnU,EAAMQ,IAAI,WAAY,WACpBhE,QAAMwX,iBAAiB,2BAA4BG,GACnDsB,SA4FR,OAAO3C,IAGTuD,EAAmBza,SAAW,WAAY,cAAe,eAAgB,QAAS,KAAM,YAoFxF,IAAIqI,EAAgF,mBAArDJ,EAAgBoK,OAAO,aAAwB,UAE1EjI,EAAe,EAyEnBnC,EAAQoK,OAAO,mBAAmB6E,UAAU,SAAgB5L,GAC5DrD,EAAQoK,OAAO,mBAAmB6E,UAAU,SAAgBuD,GM1c5DxS,EAAQoK,OAAO,mBAAmBlG,SAAS,gBArB3C,WAEE,IAAIuO,GAAkB,EAEtB5b,KAAK4b,gBAAkB,WACrBA,GAAkB,GAGpB5b,KAAKiB,MAAQ,gBAAiB,WAAY,SAAU4a,EAAqC5X,GACvF,OAAI2X,EACKC,EAGF,SAAUhZ,GACf,OAAOoB,EAAS,WACdpB,EAAS,GAAGiZ,kBACX,GAAG,kBCjBG"} \ No newline at end of file +{ + "version": 3, + "file": "ui-router-angularjs.min.js", + "sources": [ + "@uirouter/angularjs/src/statebuilders/views.ts", + "@uirouter/angularjs/src/templateFactory.ts", + "@uirouter/angularjs/src/services.ts", + "@uirouter/angularjs/src/directives/stateDirectives.ts", + "@uirouter/angularjs/src/stateFilters.ts", + "@uirouter/angularjs/src/directives/viewDirective.ts", + "@uirouter/angularjs/src/angular.ts", + "@uirouter/angularjs/src/stateProvider.ts", + "@uirouter/angularjs/src/statebuilders/onEnterExitRetain.ts", + "@uirouter/angularjs/src/locationServices.ts", + "@uirouter/angularjs/src/urlRouterProvider.ts", + "@uirouter/angularjs/src/viewScroll.ts", + "@uirouter/angularjs/src/index.ts" + ], + "sourcesContent": [ + "/** @module ng1 */ /** */\nimport { ng as angular } from \"../angular\";\nimport {\n StateObject, pick, forEach, tail, extend,\n isArray, isInjectable, isDefined, isString, services, trace,\n ViewConfig, ViewService, ViewConfigFactory, PathNode, ResolveContext, Resolvable, IInjectable\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration } from \"../interface\";\nimport { TemplateFactory } from \"../templateFactory\";\nimport IInjectorService = angular.auto.IInjectorService;\n\nexport function getNg1ViewConfigFactory(): ViewConfigFactory {\n let templateFactory: TemplateFactory = null;\n return (path, view) => {\n templateFactory = templateFactory || services.$injector.get(\"$templateFactory\");\n return [new Ng1ViewConfig(path, view, templateFactory)];\n };\n}\n\nconst hasAnyKey = (keys, obj) =>\n keys.reduce((acc, key) => acc || isDefined(obj[key]), false);\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `views`.\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * handles the `views` property with logic specific to @uirouter/angularjs (ng1).\n *\n * If no `views: {}` property exists on the [[StateDeclaration]], then it creates the `views` object\n * and applies the state-level configuration to a view named `$default`.\n */\nexport function ng1ViewsBuilder(state: StateObject) {\n // Do not process root state\n if (!state.parent) return {};\n\n let tplKeys = ['templateProvider', 'templateUrl', 'template', 'notify', 'async'],\n ctrlKeys = ['controller', 'controllerProvider', 'controllerAs', 'resolveAs'],\n compKeys = ['component', 'bindings', 'componentProvider'],\n nonCompKeys = tplKeys.concat(ctrlKeys),\n allViewKeys = compKeys.concat(nonCompKeys);\n\n // Do not allow a state to have both state-level props and also a `views: {}` property.\n // A state without a `views: {}` property can declare properties for the `$default` view as properties of the state.\n // However, the `$default` approach should not be mixed with a separate `views: ` block.\n if (isDefined(state.views) && hasAnyKey(allViewKeys, state)) {\n throw new Error(`State '${state.name}' has a 'views' object. ` +\n `It cannot also have \"view properties\" at the state level. ` +\n `Move the following properties into a view (in the 'views' object): ` +\n ` ${allViewKeys.filter(key => isDefined(state[key])).join(\", \")}`);\n }\n\n let views: { [key: string]: Ng1ViewDeclaration } = {},\n viewsObject = state.views || { \"$default\": pick(state, allViewKeys) };\n\n forEach(viewsObject, function (config: Ng1ViewDeclaration, name: string) {\n // Account for views: { \"\": { template... } }\n name = name || \"$default\";\n // Account for views: { header: \"headerComponent\" }\n if (isString(config)) config = { component: config };\n\n // Make a shallow copy of the config object\n config = extend({}, config);\n\n // Do not allow a view to mix props for component-style view with props for template/controller-style view\n if (hasAnyKey(compKeys, config) && hasAnyKey(nonCompKeys, config)) {\n throw new Error(`Cannot combine: ${compKeys.join(\"|\")} with: ${nonCompKeys.join(\"|\")} in stateview: '${name}@${state.name}'`);\n }\n\n config.resolveAs = config.resolveAs || '$resolve';\n config.$type = \"ng1\";\n config.$context = state;\n config.$name = name;\n\n let normalized = ViewService.normalizeUIViewTarget(config.$context, config.$name);\n config.$uiViewName = normalized.uiViewName;\n config.$uiViewContextAnchor = normalized.uiViewContextAnchor;\n\n views[name] = config;\n });\n return views;\n}\n\nlet id = 0;\nexport class Ng1ViewConfig implements ViewConfig {\n $id = id++;\n loaded: boolean = false;\n controller: Function; // actually IInjectable|string\n template: string;\n component: string;\n locals: any; // TODO: delete me\n\n constructor(public path: PathNode[], public viewDecl: Ng1ViewDeclaration, public factory: TemplateFactory) { }\n\n load() {\n let $q = services.$q;\n let context = new ResolveContext(this.path);\n let params = this.path.reduce((acc, node) => extend(acc, node.paramValues), {});\n\n let promises: any = {\n template: $q.when(this.factory.fromConfig(this.viewDecl, params, context)),\n controller: $q.when(this.getController(context))\n };\n\n return $q.all(promises).then((results) => {\n trace.traceViewServiceEvent(\"Loaded\", this);\n this.controller = results.controller;\n extend(this, results.template); // Either { template: \"tpl\" } or { component: \"cmpName\" }\n return this;\n });\n }\n\n getTemplate = (uiView, context: ResolveContext) =>\n this.component ? this.factory.makeComponentTemplate(uiView, context, this.component, this.viewDecl.bindings) : this.template;\n\n /**\n * Gets the controller for a view configuration.\n *\n * @returns {Function|Promise.} Returns a controller, or a promise that resolves to a controller.\n */\n getController(context: ResolveContext): (IInjectable|string|Promise) {\n let provider = this.viewDecl.controllerProvider;\n if (!isInjectable(provider)) return this.viewDecl.controller;\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n }\n}\n", + "/** @module view */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport { IAugmentedJQuery } from \"angular\";\nimport {\n isArray, isDefined, isFunction, isObject, services, Obj, IInjectable, tail, kebobString, unnestR, ResolveContext,\n Resolvable, RawParams\n} from \"@uirouter/core\";\nimport { Ng1ViewDeclaration, TemplateFactoryProvider } from \"./interface\";\n\n/**\n * Service which manages loading of templates from a ViewConfig.\n */\nexport class TemplateFactory implements TemplateFactoryProvider {\n /** @hidden */ private _useHttp = angular.version.minor < 3;\n /** @hidden */ private $templateRequest;\n /** @hidden */ private $templateCache;\n /** @hidden */ private $http;\n\n /** @hidden */ $get = ['$http', '$templateCache', '$injector', ($http, $templateCache, $injector) => {\n this.$templateRequest = $injector.has && $injector.has('$templateRequest') && $injector.get('$templateRequest');\n this.$http = $http;\n this.$templateCache = $templateCache;\n return this;\n }];\n\n /** @hidden */\n useHttpService(value: boolean) {\n this._useHttp = value;\n };\n\n /**\n * Creates a template from a configuration object.\n *\n * @param config Configuration object for which to load a template.\n * The following properties are search in the specified order, and the first one\n * that is defined is used to create the template:\n *\n * @param params Parameters to pass to the template function.\n * @param context The resolve context associated with the template's view\n *\n * @return {string|object} The template html as a string, or a promise for\n * that string,or `null` if no template is configured.\n */\n fromConfig(config: Ng1ViewDeclaration, params: any, context: ResolveContext): Promise<{ template?: string, component?: string }> {\n const defaultTemplate = \"\";\n\n const asTemplate = (result) => services.$q.when(result).then(str => ({ template: str }));\n const asComponent = (result) => services.$q.when(result).then(str => ({ component: str }));\n\n return (\n isDefined(config.template) ? asTemplate(this.fromString(config.template, params)) :\n isDefined(config.templateUrl) ? asTemplate(this.fromUrl(config.templateUrl, params)) :\n isDefined(config.templateProvider) ? asTemplate(this.fromProvider(config.templateProvider, params, context)) :\n isDefined(config.component) ? asComponent(config.component) :\n isDefined(config.componentProvider) ? asComponent(this.fromComponentProvider(config.componentProvider, params, context)) :\n asTemplate(defaultTemplate)\n );\n };\n\n /**\n * Creates a template from a string or a function returning a string.\n *\n * @param template html template as a string or function that returns an html template as a string.\n * @param params Parameters to pass to the template function.\n *\n * @return {string|object} The template html as a string, or a promise for that\n * string.\n */\n fromString(template: (string | Function), params?: RawParams) {\n return isFunction(template) ? ( template)(params) : template;\n };\n\n /**\n * Loads a template from the a URL via `$http` and `$templateCache`.\n *\n * @param {string|Function} url url of the template to load, or a function\n * that returns a url.\n * @param {Object} params Parameters to pass to the url function.\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromUrl(url: (string | Function), params: any) {\n if (isFunction(url)) url = ( url)(params);\n if (url == null) return null;\n\n if (this._useHttp) {\n return this.$http.get(url, { cache: this.$templateCache, headers: { Accept: 'text/html' } })\n .then(function (response) {\n return response.data;\n });\n }\n\n return this.$templateRequest(url);\n };\n\n /**\n * Creates a template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string|Promise.} The template html as a string, or a promise\n * for that string.\n */\n fromProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a component's template by invoking an injectable provider function.\n *\n * @param provider Function to invoke via `locals`\n * @param {Function} injectFn a function used to invoke the template provider\n * @return {string} The template html as a string: \"\".\n */\n fromComponentProvider(provider: IInjectable, params: any, context: ResolveContext) {\n let deps = services.$injector.annotate(provider);\n let providerFn = isArray(provider) ? tail( provider) : provider;\n let resolvable = new Resolvable(\"\", providerFn, deps);\n return resolvable.get(context);\n };\n\n /**\n * Creates a template from a component's name\n *\n * This implements route-to-component.\n * It works by retrieving the component (directive) metadata from the injector.\n * It analyses the component's bindings, then constructs a template that instantiates the component.\n * The template wires input and output bindings to resolves or from the parent component.\n *\n * @param uiView {object} The parent ui-view (for binding outputs to callbacks)\n * @param context The ResolveContext (for binding outputs to callbacks returned from resolves)\n * @param component {string} Component's name in camel case.\n * @param bindings An object defining the component's bindings: {foo: '<'}\n * @return {string} The template as a string: \"\".\n */\n makeComponentTemplate(uiView: IAugmentedJQuery, context: ResolveContext, component: string, bindings?: any) {\n bindings = bindings || {};\n\n // Bind once prefix\n const prefix = angular.version.minor >= 3 ? \"::\" : \"\";\n // Convert to kebob name. Add x- prefix if the string starts with `x-` or `data-`\n const kebob = (camelCase: string) => {\n const kebobed = kebobString(camelCase);\n return /^(x|data)-/.exec(kebobed) ? `x-${kebobed}` : kebobed;\n };\n\n\n const attributeTpl = (input: BindingTuple) => {\n let { name, type } = input;\n let attrName = kebob(name);\n // If the ui-view has an attribute which matches a binding on the routed component\n // then pass that attribute through to the routed component template.\n // Prefer ui-view wired mappings to resolve data, unless the resolve was explicitly bound using `bindings:`\n if (uiView.attr(attrName) && !bindings[name])\n return `${attrName}='${uiView.attr(attrName)}'`;\n\n let resolveName = bindings[name] || name;\n // Pre-evaluate the expression for \"@\" bindings by enclosing in {{ }}\n // some-attr=\"{{ ::$resolve.someResolveName }}\"\n if (type === '@')\n return `${attrName}='{{${prefix}$resolve.${resolveName}}}'`;\n\n // Wire \"&\" callbacks to resolves that return a callback function\n // Get the result of the resolve (should be a function) and annotate it to get its arguments.\n // some-attr=\"$resolve.someResolveResultName(foo, bar)\"\n if (type === '&') {\n let res = context.getResolvable(resolveName);\n let fn = res && res.data;\n let args = fn && services.$injector.annotate(fn) || [];\n // account for array style injection, i.e., ['foo', function(foo) {}]\n let arrayIdxStr = isArray(fn) ? `[${fn.length - 1}]` : '';\n return `${attrName}='$resolve.${resolveName}${arrayIdxStr}(${args.join(\",\")})'`;\n }\n\n // some-attr=\"::$resolve.someResolveName\"\n return `${attrName}='${prefix}$resolve.${resolveName}'`;\n };\n\n let attrs = getComponentBindings(component).map(attributeTpl).join(\" \");\n let kebobName = kebob(component);\n return `<${kebobName} ${attrs}>`;\n };\n}\n\n// Gets all the directive(s)' inputs ('@', '=', and '<') and outputs ('&')\nfunction getComponentBindings(name: string) {\n let cmpDefs = services.$injector.get(name + \"Directive\"); // could be multiple\n if (!cmpDefs || !cmpDefs.length) throw new Error(`Unable to find component named '${name}'`);\n return cmpDefs.map(getBindings).reduce(unnestR, []);\n}\n\n// Given a directive definition, find its object input attributes\n// Use different properties, depending on the type of directive (component, bindToController, normal)\nconst getBindings = (def: any) => {\n if (isObject(def.bindToController)) return scopeBindings(def.bindToController);\n return scopeBindings(def.scope);\n};\n\ninterface BindingTuple {\n name: string;\n type: string;\n}\n\n// for ng 1.2 style, process the scope: { input: \"=foo\" }\n// for ng 1.3 through ng 1.5, process the component's bindToController: { input: \"=foo\" } object\nconst scopeBindings = (bindingsObj: Obj) => Object.keys(bindingsObj || {})\n // [ 'input', [ '=foo', '=', 'foo' ] ]\n .map(key => [key, /^([=<@&])[?]?(.*)/.exec(bindingsObj[key])])\n // skip malformed values\n .filter(tuple => isDefined(tuple) && isArray(tuple[1]))\n // { name: ('foo' || 'input'), type: '=' }\n .map(tuple => ({ name: tuple[1][2] || tuple[0], type: tuple[1][1] } as BindingTuple));\n\n", + "/**\n * # Angular 1 types\n *\n * UI-Router core provides various Typescript types which you can use for code completion and validating parameter values, etc.\n * The customizations to the core types for Angular UI-Router are documented here.\n *\n * The optional [[$resolve]] service is also documented here.\n *\n * @module ng1\n * @preferred\n */\n/** for typedoc */\nimport { ng as angular } from \"./angular\";\nimport {\n IRootScopeService, IQService, ILocationService, ILocationProvider, IHttpService, ITemplateCacheService\n} from \"angular\";\nimport {\n services, applyPairs, isString, trace, extend, UIRouter, StateService, UrlRouter, UrlMatcherFactory, ResolveContext,\n unnestR, TypedMap\n} from \"@uirouter/core\";\nimport { ng1ViewsBuilder, getNg1ViewConfigFactory } from \"./statebuilders/views\";\nimport { TemplateFactory } from \"./templateFactory\";\nimport { StateProvider } from \"./stateProvider\";\nimport { getStateHookBuilder } from \"./statebuilders/onEnterExitRetain\";\nimport { Ng1LocationServices } from \"./locationServices\";\nimport { UrlRouterProvider } from \"./urlRouterProvider\";\nimport IInjectorService = angular.auto.IInjectorService; // tslint:disable-line\n\nangular.module(\"ui.router.angular1\", []);\nlet mod_init = angular.module('ui.router.init', []);\nlet mod_util = angular.module('ui.router.util', ['ng', 'ui.router.init']);\nlet mod_rtr = angular.module('ui.router.router', ['ui.router.util']);\nlet mod_state = angular.module('ui.router.state', ['ui.router.router', 'ui.router.util', 'ui.router.angular1']);\nlet mod_main = angular.module('ui.router', ['ui.router.init', 'ui.router.state', 'ui.router.angular1']);\nlet mod_cmpt = angular.module('ui.router.compat', ['ui.router']); // tslint:disable-line\n\ndeclare module '@uirouter/core/lib/router' {\n interface UIRouter {\n /** @hidden */\n stateProvider: StateProvider;\n /** @hidden */\n urlRouterProvider: UrlRouterProvider;\n }\n}\n\nlet router: UIRouter = null;\n\n$uiRouter.$inject = ['$locationProvider'];\n/** This angular 1 provider instantiates a Router and exposes its services via the angular injector */\nfunction $uiRouter($locationProvider: ILocationProvider) {\n\n // Create a new instance of the Router when the $uiRouterProvider is initialized\n router = this.router = new UIRouter();\n router.stateProvider = new StateProvider(router.stateRegistry, router.stateService);\n\n // Apply ng1 specific StateBuilder code for `views`, `resolve`, and `onExit/Retain/Enter` properties\n router.stateRegistry.decorator(\"views\", ng1ViewsBuilder);\n router.stateRegistry.decorator(\"onExit\", getStateHookBuilder(\"onExit\"));\n router.stateRegistry.decorator(\"onRetain\", getStateHookBuilder(\"onRetain\"));\n router.stateRegistry.decorator(\"onEnter\", getStateHookBuilder(\"onEnter\"));\n\n router.viewService._pluginapi._viewConfigFactory('ng1', getNg1ViewConfigFactory());\n\n let ng1LocationService = router.locationService = router.locationConfig = new Ng1LocationServices($locationProvider);\n\n Ng1LocationServices.monkeyPatchPathParameterType(router);\n\n // backwards compat: also expose router instance as $uiRouterProvider.router\n router['router'] = router;\n router['$get'] = $get;\n $get.$inject = ['$location', '$browser', '$sniffer', '$rootScope', '$http', '$templateCache'];\n function $get($location: ILocationService, $browser: any, $sniffer: any, $rootScope: ng.IScope, $http: IHttpService, $templateCache: ITemplateCacheService) {\n ng1LocationService._runtimeServices($rootScope, $location, $sniffer, $browser);\n delete router['router'];\n delete router['$get'];\n return router;\n }\n return router;\n}\n\nconst getProviderFor = (serviceName) => [ '$uiRouterProvider', ($urp) => {\n let service = $urp.router[serviceName];\n service[\"$get\"] = () => service;\n return service;\n}];\n\n// This effectively calls $get() on `$uiRouterProvider` to trigger init (when ng enters runtime)\nrunBlock.$inject = ['$injector', '$q', '$uiRouter'];\nfunction runBlock($injector: IInjectorService, $q: IQService, $uiRouter: UIRouter) {\n services.$injector = $injector;\n services.$q = $q;\n\n // The $injector is now available.\n // Find any resolvables that had dependency annotation deferred\n $uiRouter.stateRegistry.get()\n .map(x => x.$$state().resolvables)\n .reduce(unnestR, [])\n .filter(x => x.deps === \"deferred\")\n .forEach(resolvable => resolvable.deps = $injector.annotate(resolvable.resolveFn, $injector.strictDi));\n}\n\n// $urlRouter service and $urlRouterProvider\nconst getUrlRouterProvider = (uiRouter: UIRouter) =>\n uiRouter.urlRouterProvider = new UrlRouterProvider(uiRouter);\n\n// $state service and $stateProvider\n// $urlRouter service and $urlRouterProvider\nconst getStateProvider = () =>\n extend(router.stateProvider, { $get: () => router.stateService });\n\nwatchDigests.$inject = ['$rootScope'];\nexport function watchDigests($rootScope: IRootScopeService) {\n $rootScope.$watch(function() { trace.approximateDigests++; });\n}\n\nmod_init .provider(\"$uiRouter\", $uiRouter);\nmod_rtr .provider('$urlRouter', ['$uiRouterProvider', getUrlRouterProvider]);\nmod_util .provider('$urlService', getProviderFor('urlService'));\nmod_util .provider('$urlMatcherFactory', ['$uiRouterProvider', () => router.urlMatcherFactory]);\nmod_util .provider('$templateFactory', () => new TemplateFactory());\nmod_state.provider('$stateRegistry', getProviderFor('stateRegistry'));\nmod_state.provider('$uiRouterGlobals', getProviderFor('globals'));\nmod_state.provider('$transitions', getProviderFor('transitionService'));\nmod_state.provider('$state', ['$uiRouterProvider', getStateProvider]);\n\nmod_state.factory ('$stateParams', ['$uiRouter', ($uiRouter: UIRouter) => $uiRouter.globals.params]);\nmod_main .factory ('$view', () => router.viewService);\nmod_main .service (\"$trace\", () => trace);\n\nmod_main .run (watchDigests);\nmod_util .run (['$urlMatcherFactory', function ($urlMatcherFactory: UrlMatcherFactory) { }]);\nmod_state.run (['$state', function ($state: StateService) { }]);\nmod_rtr .run (['$urlRouter', function ($urlRouter: UrlRouter) { }]);\nmod_init .run (runBlock);\n\n/** @hidden TODO: find a place to move this */\nexport const getLocals = (ctx: ResolveContext): TypedMap => {\n let tokens = ctx.getTokens().filter(isString);\n\n let tuples = tokens .map(key => {\n let resolvable = ctx.getResolvable(key);\n let waitPolicy = ctx.getPolicy(resolvable).async;\n return [ key, waitPolicy === 'NOWAIT' ? resolvable.promise : resolvable.data ];\n });\n\n return tuples.reduce(applyPairs, {});\n};\n\n", + "/**\n * # Angular 1 Directives\n *\n * These are the directives included in UI-Router for Angular 1.\n * These directives are used in templates to create viewports and link/navigate to states.\n *\n * @ng1api\n * @preferred\n * @module directives\n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport { IAugmentedJQuery, ITimeoutService, IScope, IInterpolateService } from \"angular\";\n\nimport {\n Obj, extend, forEach, tail, isString, isObject, isArray, parse, noop, unnestR, identity, uniqR, inArray, removeFrom,\n RawParams, PathNode, StateOrName, StateService, StateDeclaration, UIRouter\n} from \"@uirouter/core\";\nimport { UIViewData } from \"./viewDirective\";\n\n/** @hidden Used for typedoc */\nexport interface ng1_directive {}\n\n/** @hidden */\nfunction parseStateRef(ref: string) {\n let paramsOnly = ref.match(/^\\s*({[^}]*})\\s*$/), parsed;\n if (paramsOnly) ref = '(' + paramsOnly[1] + ')';\n\n parsed = ref.replace(/\\n/g, \" \").match(/^\\s*([^(]*?)\\s*(\\((.*)\\))?\\s*$/);\n if (!parsed || parsed.length !== 4) throw new Error(\"Invalid state ref '\" + ref + \"'\");\n return { state: parsed[1] || null, paramExpr: parsed[3] || null };\n}\n\n/** @hidden */\nfunction stateContext(el: IAugmentedJQuery) {\n let $uiView: UIViewData = (el.parent() as IAugmentedJQuery).inheritedData('$uiView');\n let path: PathNode[] = parse('$cfg.path')($uiView);\n return path ? tail(path).state.name : undefined;\n}\n\n/** @hidden */\nfunction processedDef($state: StateService, $element: IAugmentedJQuery, def: Def): Def {\n let uiState = def.uiState || $state.current.name;\n let uiStateOpts = extend(defaultOpts($element, $state), def.uiStateOpts || {});\n let href = $state.href(uiState, def.uiStateParams, uiStateOpts);\n return { uiState, uiStateParams: def.uiStateParams, uiStateOpts, href };\n}\n\n/** @hidden */\ninterface TypeInfo {\n attr: string;\n isAnchor: boolean;\n clickable: boolean;\n}\n\n/** @hidden */\nfunction getTypeInfo(el: IAugmentedJQuery): TypeInfo {\n // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.\n var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';\n var isForm = el[0].nodeName === \"FORM\";\n\n return {\n attr: isForm ? \"action\" : (isSvg ? 'xlink:href' : 'href'),\n isAnchor: el.prop(\"tagName\").toUpperCase() === \"A\",\n clickable: !isForm\n };\n}\n\n/** @hidden */\nfunction clickHook(el: IAugmentedJQuery, $state: StateService, $timeout: ITimeoutService, type: TypeInfo, getDef: () => Def) {\n return function (e: JQueryMouseEventObject) {\n var button = e.which || e.button, target = getDef();\n\n if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {\n // HACK: This is to allow ng-clicks to be processed before the transition is initiated:\n var transition = $timeout(function () {\n $state.go(target.uiState, target.uiStateParams, target.uiStateOpts);\n });\n e.preventDefault();\n\n // if the state has no URL, ignore one preventDefault from the directive.\n var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1 : 0;\n\n e.preventDefault = function () {\n if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);\n };\n }\n };\n}\n\n/** @hidden */\nfunction defaultOpts(el: IAugmentedJQuery, $state: StateService) {\n return {\n relative: stateContext(el) || $state.$current,\n inherit: true,\n source: \"sref\"\n };\n}\n\n/** @hidden */\nfunction bindEvents(element: IAugmentedJQuery, scope: IScope, hookFn: (e: JQueryMouseEventObject) => void, uiStateOpts: any): void {\n let events;\n\n if (uiStateOpts) {\n events = uiStateOpts.events;\n }\n\n if (!isArray(events)) {\n events = ['click'];\n }\n\n let on = element.on ? 'on' : 'bind';\n for (let event of events) {\n element[on](event, hookFn);\n }\n\n scope.$on('$destroy', function() {\n let off = element.off ? 'off' : 'unbind';\n for (let event of events) {\n element[off](event, hookFn);\n }\n });\n}\n\n/**\n * `ui-sref`: A directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of the `ui-sref` is the name of the state to link to.\n *\n * #### Example:\n * This will activate the `home` state when the link is clicked.\n * ```html\n * Home\n * ```\n *\n * ### Relative Links\n * You can also use relative state paths within `ui-sref`, just like a relative path passed to `$state.go()` ([[StateService.go]]).\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create a relative `ui-sref` which always targets the same destination.\n *\n * #### Example:\n * Both these links are relative to the parent state, even when a child state is currently active.\n * ```html\n * child 1 state\n * child 2 state\n * ```\n *\n * This link activates the parent state.\n * ```html\n * Return\n * ```\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * #### Example:\n * Assuming the `users` state has a url of `/users/`\n * ```html\n * Users\n * ```\n *\n * ### Parameter Values\n * In addition to the state name, a `ui-sref` can include parameter values which are applied when activating the state.\n * Param values can be provided in the `ui-sref` value after the state name, enclosed by parentheses.\n * The content inside the parentheses is an expression, evaluated to the parameter values.\n *\n * #### Example:\n * This example renders a list of links to users.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ user.displayName }}\n *
  • \n * ```\n *\n * Note:\n * The parameter values expression is `$watch`ed for updates.\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-sref-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-sref-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Examples\n * If you have the following template:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n * \n * ```\n *\n * Then (assuming the current state is `contacts`) the rendered html including hrefs would be:\n *\n * ```html\n * Home\n * About\n * Next page\n *\n *
      \n *
    • \n * Joe\n *
    • \n *
    • \n * Alice\n *
    • \n *
    • \n * Bob\n *
    • \n *
    \n *\n * Home\n * ```\n *\n * ### Notes\n *\n * - You can use `ui-sref` to change **only the parameter values** by omitting the state name and parentheses.\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n *\n * - Unlike the parameter values expression, the state name is not `$watch`ed (for performance reasons).\n * If you need to dynamically update the state being linked to, use the fully dynamic [[uiState]] directive.\n */\nlet uiSref: ng1_directive;\nuiSref = ['$uiRouter', '$timeout',\n function $StateRefDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let ref = parseStateRef(attrs.uiSref);\n rawDef.uiState = ref.state;\n rawDef.uiStateOpts = attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {};\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n if (ref.paramExpr) {\n scope.$watch(ref.paramExpr, function (val) {\n rawDef.uiStateParams = extend({}, val);\n update();\n }, true);\n rawDef.uiStateParams = extend({}, scope.$eval(ref.paramExpr));\n }\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n/**\n * `ui-state`: A fully dynamic directive for linking to a state\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * **This directive is very similar to [[uiSref]], but it `$observe`s and `$watch`es/evaluates all its inputs.**\n *\n * A directive which links to a state (and optionally, parameters).\n * When clicked, this directive activates the linked state with the supplied parameter values.\n *\n * ### Linked State\n * The attribute value of `ui-state` is an expression which is `$watch`ed and evaluated as the state to link to.\n * **This is in contrast with `ui-sref`, which takes a state name as a string literal.**\n *\n * #### Example:\n * Create a list of links.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Relative Links\n * If the expression evaluates to a relative path, it is processed like [[uiSref]].\n * You just need to be aware that the path is relative to the state that *created* the link.\n * This allows a state to create relative `ui-state` which always targets the same destination.\n *\n * ### hrefs\n * If the linked state has a URL, the directive will automatically generate and\n * update the `href` attribute (using the [[StateService.href]] method).\n *\n * ### Parameter Values\n * In addition to the state name expression, a `ui-state` can include parameter values which are applied when activating the state.\n * Param values should be provided using the `ui-state-params` attribute.\n * The `ui-state-params` attribute value is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * This example renders a list of links with param values.\n * The state's `userId` parameter value comes from each user's `user.id` property.\n * ```html\n *
  • \n * {{ link.displayName }}\n *
  • \n * ```\n *\n * ### Transition Options\n * You can specify [[TransitionOptions]] to pass to [[StateService.go]] by using the `ui-state-opts` attribute.\n * Options are restricted to `location`, `inherit`, and `reload`.\n * The value of the `ui-state-opts` is `$watch`ed and evaluated as an expression.\n *\n * #### Example:\n * ```html\n * Home\n * ```\n *\n * ### Other DOM Events\n *\n * You can also customize which DOM events to respond to (instead of `click`) by\n * providing an `events` array in the `ui-state-opts` attribute.\n *\n * #### Example:\n * ```html\n * \n * ```\n *\n * ### Highlighting the active link\n * This directive can be used in conjunction with [[uiSrefActive]] to highlight the active link.\n *\n * ### Notes\n *\n * - You can use `ui-params` to change **only the parameter values** by omitting the state name and supplying only `ui-state-params`.\n * However, it might be simpler to use [[uiSref]] parameter-only links.\n *\n * #### Example:\n * Sets the `lang` parameter to `en` and remains on the same state.\n *\n * ```html\n * English\n * ```\n *\n * - A middle-click, right-click, or ctrl-click is handled (natively) by the browser to open the href in a new window, for example.\n * ```\n */\nlet uiState: ng1_directive;\nuiState = ['$uiRouter', '$timeout',\n function $StateRefDynamicDirective($uiRouter: UIRouter, $timeout: ITimeoutService) {\n let $state = $uiRouter.stateService;\n\n return {\n restrict: 'A',\n require: ['?^uiSrefActive', '?^uiSrefActiveEq'],\n link: function (scope: IScope, element: IAugmentedJQuery, attrs: any, uiSrefActive: any) {\n let type = getTypeInfo(element);\n let active = uiSrefActive[1] || uiSrefActive[0];\n let unlinkInfoFn: Function = null;\n let hookFn;\n\n let rawDef = {} as Def;\n let getDef = () => processedDef($state, element, rawDef);\n\n let inputAttrs = ['uiState', 'uiStateParams', 'uiStateOpts'];\n let watchDeregFns = inputAttrs.reduce((acc, attr) => (acc[attr] = noop, acc), {});\n\n function update() {\n let def = getDef();\n if (unlinkInfoFn) unlinkInfoFn();\n if (active) unlinkInfoFn = active.$$addStateInfo(def.uiState, def.uiStateParams);\n if (def.href != null) attrs.$set(type.attr, def.href);\n }\n\n inputAttrs.forEach((field) => {\n rawDef[field] = attrs[field] ? scope.$eval(attrs[field]) : null;\n\n attrs.$observe(field, (expr) => {\n watchDeregFns[field]();\n watchDeregFns[field] = scope.$watch(expr, (newval) => {\n rawDef[field] = newval;\n update();\n }, true);\n })\n });\n\n update();\n\n scope.$on('$destroy', $uiRouter.stateRegistry.onStatesChanged(update));\n scope.$on('$destroy', $uiRouter.transitionService.onSuccess({}, update));\n\n if (!type.clickable) return;\n hookFn = clickHook(element, $state, $timeout, type, getDef);\n bindEvents(element, scope, hookFn, rawDef.uiStateOpts);\n }\n };\n }];\n\n\n/**\n * `ui-sref-active` and `ui-sref-active-eq`: A directive that adds a CSS class when a `ui-sref` is active\n *\n * A directive working alongside [[uiSref]] and [[uiState]] to add classes to an element when the\n * related directive's state is active (and remove them when it is inactive).\n *\n * The primary use-case is to highlight the active link in navigation menus,\n * distinguishing it from the inactive menu items.\n *\n * ### Linking to a `ui-sref` or `ui-state`\n * `ui-sref-active` can live on the same element as `ui-sref`/`ui-state`, or it can be on a parent element.\n * If a `ui-sref-active` is a parent to more than one `ui-sref`/`ui-state`, it will apply the CSS class when **any of the links are active**.\n *\n * ### Matching\n *\n * The `ui-sref-active` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state **or any child state is active**.\n * This is a \"fuzzy match\" which uses [[StateService.includes]].\n *\n * The `ui-sref-active-eq` directive applies the CSS class when the `ui-sref`/`ui-state`'s target state is directly active (not when child states are active).\n * This is an \"exact match\" which uses [[StateService.is]].\n *\n * ### Parameter values\n * If the `ui-sref`/`ui-state` includes parameter values, the current parameter values must match the link's values for the link to be highlighted.\n * This allows a list of links to the same state with different parameters to be rendered, and the correct one highlighted.\n *\n * #### Example:\n * ```html\n *
  • \n * {{ user.lastName }}\n *
  • \n * ```\n *\n * ### Examples\n *\n * Given the following template:\n * #### Example:\n * ```html\n * \n * ```\n *\n * When the app state is `app.user` (or any child state),\n * and contains the state parameter \"user\" with value \"bilbobaggins\",\n * the resulting HTML will appear as (note the 'active' class):\n *\n * ```html\n * \n * ```\n *\n * ### Glob mode\n *\n * It is possible to pass `ui-sref-active` an expression that evaluates to an object.\n * The objects keys represent active class names and values represent the respective state names/globs.\n * `ui-sref-active` will match if the current active state **includes** any of\n * the specified state names/globs, even the abstract ones.\n *\n * #### Example:\n * Given the following template, with \"admin\" being an abstract state:\n * ```html\n *
    \n * Roles\n *
    \n * ```\n *\n * When the current state is \"admin.roles\" the \"active\" class will be applied to both the
    and elements.\n * It is important to note that the state names/globs passed to `ui-sref-active` override any state provided by a linked `ui-sref`.\n *\n * ### Notes:\n *\n * - The class name is interpolated **once** during the directives link time (any further changes to the\n * interpolated value are ignored).\n *\n * - Multiple classes may be specified in a space-separated format: `ui-sref-active='class1 class2 class3'`\n */\nlet uiSrefActive: ng1_directive;\nuiSrefActive = ['$state', '$stateParams', '$interpolate', '$uiRouter',\n function $StateRefActiveDirective($state: StateService, $stateParams: Obj, $interpolate: IInterpolateService, $uiRouter: UIRouter) {\n return {\n restrict: \"A\",\n controller: ['$scope', '$element', '$attrs',\n function ($scope: IScope, $element: IAugmentedJQuery, $attrs: any) {\n let states: StateData[] = [],\n activeEqClass: string,\n uiSrefActive: any;\n\n // There probably isn't much point in $observing this\n // uiSrefActive and uiSrefActiveEq share the same directive object with some\n // slight difference in logic routing\n activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);\n\n try {\n uiSrefActive = $scope.$eval($attrs.uiSrefActive);\n } catch (e) {\n // Do nothing. uiSrefActive is not a valid expression.\n // Fall back to using $interpolate below\n }\n uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);\n if (isObject(uiSrefActive)) {\n forEach(uiSrefActive, function (stateOrName: StateOrName, activeClass: string) {\n if (isString(stateOrName)) {\n let ref = parseStateRef(stateOrName);\n addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);\n }\n });\n }\n\n // Allow uiSref to communicate with uiSrefActive[Equals]\n this.$$addStateInfo = function (newState: string, newParams: Obj) {\n // we already got an explicit state provided by ui-sref-active, so we\n // shadow the one that comes from ui-sref\n if (isObject(uiSrefActive) && states.length > 0) {\n return;\n }\n let deregister = addState(newState, newParams, uiSrefActive);\n update();\n return deregister;\n };\n\n function updateAfterTransition(trans) {\n trans.promise.then(update, noop);\n }\n\n $scope.$on('$stateChangeSuccess', update);\n $scope.$on('$destroy', $uiRouter.transitionService.onStart({}, updateAfterTransition));\n if ($uiRouter.globals.transition) {\n updateAfterTransition($uiRouter.globals.transition);\n }\n\n function addState(stateName: string, stateParams: Obj, activeClass: string) {\n var state = $state.get(stateName, stateContext($element));\n\n var stateInfo = {\n state: state || { name: stateName },\n params: stateParams,\n activeClass: activeClass\n };\n\n states.push(stateInfo);\n\n return function removeState() {\n removeFrom(states)(stateInfo);\n }\n }\n\n // Update route state\n function update() {\n const splitClasses = str =>\n str.split(/\\s/).filter(identity);\n const getClasses = (stateList: StateData[]) =>\n stateList.map(x => x.activeClass).map(splitClasses).reduce(unnestR, []);\n\n let allClasses = getClasses(states).concat(splitClasses(activeEqClass)).reduce(uniqR, []);\n let fuzzyClasses = getClasses(states.filter(x => $state.includes(x.state.name, x.params)));\n let exactlyMatchesAny = !!states.filter(x => $state.is(x.state.name, x.params)).length;\n let exactClasses = exactlyMatchesAny ? splitClasses(activeEqClass) : [];\n\n let addClasses = fuzzyClasses.concat(exactClasses).reduce(uniqR, []);\n let removeClasses = allClasses.filter(cls => !inArray(addClasses, cls));\n\n $scope.$evalAsync(() => {\n addClasses.forEach(className => $element.addClass(className));\n removeClasses.forEach(className => $element.removeClass(className));\n });\n }\n\n update();\n }]\n };\n }];\n\n/** @hidden */\ninterface Def { uiState: string; href: string; uiStateParams: Obj; uiStateOpts: any; }\n/** @hidden */\ninterface StateData { state: StateDeclaration; params: RawParams; activeClass: string; }\n\nangular.module('ui.router.state')\n .directive('uiSref', uiSref)\n .directive('uiSrefActive', uiSrefActive)\n .directive('uiSrefActiveEq', uiSrefActive)\n .directive('uiState', uiState);\n", + "/** @module ng1 */ /** for typedoc */\n\nimport { ng as angular } from \"./angular\";\nimport { Obj, StateService, StateOrName } from \"@uirouter/core\";\n\n/**\n * `isState` Filter: truthy if the current state is the parameter\n *\n * Translates to [[StateService.is]] `$state.is(\"stateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state is 'stateName'
    \n * ```\n */\n$IsStateFilter.$inject = ['$state'];\nexport function $IsStateFilter($state: StateService) {\n var isFilter: any = function(state: StateOrName, params: Obj, options?: { relative?: StateOrName }) {\n return $state.is(state, params, options);\n };\n isFilter.$stateful = true;\n return isFilter;\n}\n\n/**\n * `includedByState` Filter: truthy if the current state includes the parameter\n *\n * Translates to [[StateService.includes]]` $state.is(\"fullOrPartialStateName\")`.\n *\n * #### Example:\n * ```html\n *
    show if state includes 'fullOrPartialStateName'
    \n * ```\n */\n$IncludedByStateFilter.$inject = ['$state'];\nexport function $IncludedByStateFilter($state: StateService) {\n var includesFilter: any = function(state: StateOrName, params: Obj, options: { relative?: StateOrName }) {\n return $state.includes(state, params, options);\n };\n includesFilter.$stateful = true;\n return includesFilter;\n}\n\nangular.module('ui.router.state')\n .filter('isState', $IsStateFilter)\n .filter('includedByState', $IncludedByStateFilter);\n", + "/** \n * @ng1api \n * @module directives \n */ /** for typedoc */\nimport { ng as angular } from \"../angular\";\nimport {\n IInterpolateService, IScope, ITranscludeFunction, IAugmentedJQuery,\n ICompileService, IControllerService, ITimeoutService, noop\n} from \"angular\";\n\nimport {\n extend, unnestR, filter, tail, isDefined, isFunction, isString, trace, parse,\n ActiveUIView, TransitionService, ResolveContext, Transition, PathNode, StateDeclaration,\n Param, kebobString, HookRegOptions, ViewService, $QLike, Obj, TypedMap\n} from \"@uirouter/core\";\nimport {Ng1ViewConfig} from \"../statebuilders/views\";\nimport {Ng1Controller, Ng1StateDeclaration} from \"../interface\";\nimport {getLocals} from \"../services\";\nimport { ng1_directive } from \"./stateDirectives\";\n\n/** @hidden */\nexport type UIViewData = {\n $cfg: Ng1ViewConfig;\n $uiView: ActiveUIView;\n}\n\n/** @hidden */\nexport type UIViewAnimData = {\n $animEnter: Promise;\n $animLeave: Promise;\n $$animLeave: { resolve: () => any; } // \"deferred\"\n}\n\n/**\n * `ui-view`: A viewport directive which is filled in by a view from the active state.\n *\n * ### Attributes\n *\n * - `name`: (Optional) A view name.\n * The name should be unique amongst the other views in the same state.\n * You can have views of the same name that live in different states.\n * The ui-view can be targeted in a View using the name ([[Ng1StateDeclaration.views]]).\n *\n * - `autoscroll`: an expression. When it evaluates to true, the `ui-view` will be scrolled into view when it is activated.\n * Uses [[$uiViewScroll]] to do the scrolling.\n *\n * - `onload`: Expression to evaluate whenever the view updates.\n *\n * #### Example:\n * A view can be unnamed or named.\n * ```html\n * \n *
    \n *\n * \n *
    \n *\n * \n * \n * ```\n *\n * You can only have one unnamed view within any template (or root html). If you are only using a\n * single view and it is unnamed then you can populate it like so:\n *\n * ```html\n *
    \n * $stateProvider.state(\"home\", {\n * template: \"

    HELLO!

    \"\n * })\n * ```\n *\n * The above is a convenient shortcut equivalent to specifying your view explicitly with the\n * [[Ng1StateDeclaration.views]] config property, by name, in this case an empty name:\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * But typically you'll only use the views property if you name your view or have more than one view\n * in the same template. There's not really a compelling reason to name a view if its the only one,\n * but you could if you wanted, like so:\n *\n * ```html\n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"main\": {\n * template: \"

    HELLO!

    \"\n * }\n * }\n * })\n * ```\n *\n * Really though, you'll use views to set up multiple views:\n *\n * ```html\n *
    \n *
    \n *
    \n * ```\n *\n * ```js\n * $stateProvider.state(\"home\", {\n * views: {\n * \"\": {\n * template: \"

    HELLO!

    \"\n * },\n * \"chart\": {\n * template: \"\"\n * },\n * \"data\": {\n * template: \"\"\n * }\n * }\n * })\n * ```\n *\n * #### Examples for `autoscroll`:\n * ```html\n * \n * \n *\n * \n * \n * \n * \n * ```\n *\n * Resolve data:\n *\n * The resolved data from the state's `resolve` block is placed on the scope as `$resolve` (this\n * can be customized using [[Ng1ViewDeclaration.resolveAs]]). This can be then accessed from the template.\n *\n * Note that when `controllerAs` is being used, `$resolve` is set on the controller instance *after* the\n * controller is instantiated. The `$onInit()` hook can be used to perform initialization code which\n * depends on `$resolve` data.\n *\n * #### Example:\n * ```js\n * $stateProvider.state('home', {\n * template: '',\n * resolve: {\n * user: function(UserService) { return UserService.fetchUser(); }\n * }\n * });\n * ```\n */\nexport let uiView: ng1_directive;\nuiView = ['$view', '$animate', '$uiViewScroll', '$interpolate', '$q',\nfunction $ViewDirective($view: ViewService, $animate: any, $uiViewScroll: any, $interpolate: IInterpolateService, $q: $QLike) {\n\n function getRenderer(attrs: Obj, scope: IScope) {\n return {\n enter: function(element: JQuery, target: any, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.enter(element, null, target).then(cb);\n } else {\n $animate.enter(element, null, target, cb);\n }\n },\n leave: function(element: JQuery, cb: Function) {\n if (angular.version.minor > 2) {\n $animate.leave(element).then(cb);\n } else {\n $animate.leave(element, cb);\n }\n }\n };\n }\n\n function configsEqual(config1: Ng1ViewConfig, config2: Ng1ViewConfig) {\n return config1 === config2;\n }\n\n let rootData = {\n $cfg: { viewDecl: { $context: $view._pluginapi._rootViewContext() } },\n $uiView: { }\n };\n\n let directive = {\n count: 0,\n restrict: 'ECA',\n terminal: true,\n priority: 400,\n transclude: 'element',\n compile: function (tElement: JQuery, tAttrs: Obj, $transclude: ITranscludeFunction) {\n\n return function (scope: IScope, $element: IAugmentedJQuery, attrs: Obj) {\n let previousEl: JQuery, currentEl: JQuery,\n currentScope: IScope, unregister: Function,\n onloadExp = attrs['onload'] || '',\n autoScrollExp = attrs['autoscroll'],\n renderer = getRenderer(attrs, scope),\n viewConfig = undefined as Ng1ViewConfig,\n inherited = $element.inheritedData('$uiView') || rootData,\n name = $interpolate(attrs['uiView'] || attrs['name'] || '')(scope) || '$default';\n\n let activeUIView: ActiveUIView = {\n $type: 'ng1',\n id: directive.count++, // Global sequential ID for ui-view tags added to DOM\n name: name, // ui-view name (
    \n fqn: inherited.$uiView.fqn ? inherited.$uiView.fqn + \".\" + name : name, // fully qualified name, describes location in DOM\n config: null, // The ViewConfig loaded (from a state.views definition)\n configUpdated: configUpdatedCallback, // Called when the matching ViewConfig changes\n get creationContext() { // The context in which this ui-view \"tag\" was created\n let fromParentTagConfig = parse('$cfg.viewDecl.$context')(inherited);\n // Allow \n // See https://github.com/angular-ui/ui-router/issues/3355\n let fromParentTag = parse('$uiView.creationContext')(inherited);\n return fromParentTagConfig || fromParentTag;\n }\n };\n\n trace.traceUIViewEvent(\"Linking\", activeUIView);\n\n function configUpdatedCallback(config?: Ng1ViewConfig) {\n if (config && !(config instanceof Ng1ViewConfig)) return;\n if (configsEqual(viewConfig, config)) return;\n trace.traceUIViewConfigUpdated(activeUIView, config && config.viewDecl && config.viewDecl.$context);\n\n viewConfig = config;\n updateView(config);\n }\n\n $element.data('$uiView', { $uiView: activeUIView });\n\n updateView();\n\n unregister = $view.registerUIView(activeUIView);\n scope.$on(\"$destroy\", function() {\n trace.traceUIViewEvent(\"Destroying/Unregistering\", activeUIView);\n unregister();\n });\n\n function cleanupLastView() {\n if (previousEl) {\n trace.traceUIViewEvent(\"Removing (previous) el\", previousEl.data('$uiView'));\n previousEl.remove();\n previousEl = null;\n }\n\n if (currentScope) {\n trace.traceUIViewEvent(\"Destroying scope\", activeUIView);\n currentScope.$destroy();\n currentScope = null;\n }\n\n if (currentEl) {\n let _viewData = currentEl.data('$uiViewAnim');\n trace.traceUIViewEvent(\"Animate out\", _viewData);\n renderer.leave(currentEl, function() {\n _viewData.$$animLeave.resolve();\n previousEl = null;\n });\n\n previousEl = currentEl;\n currentEl = null;\n }\n }\n\n function updateView(config?: Ng1ViewConfig) {\n let newScope = scope.$new();\n let animEnter = $q.defer(), animLeave = $q.defer();\n\n let $uiViewData: UIViewData = {\n $cfg: config,\n $uiView: activeUIView,\n };\n\n let $uiViewAnim: UIViewAnimData = {\n $animEnter: animEnter.promise,\n $animLeave: animLeave.promise,\n $$animLeave: animLeave\n };\n\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoading\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description\n *\n * Fired once the view **begins loading**, *before* the DOM is rendered.\n *\n * @param {Object} event Event object.\n * @param {string} viewName Name of the view.\n */\n newScope.$emit('$viewContentLoading', name);\n\n let cloned = $transclude(newScope, function(clone) {\n clone.data('$uiViewAnim', $uiViewAnim);\n clone.data('$uiView', $uiViewData);\n renderer.enter(clone, $element, function onUIViewEnter() {\n animEnter.resolve();\n if (currentScope) currentScope.$emit('$viewContentAnimationEnded');\n\n if (isDefined(autoScrollExp) && !autoScrollExp || scope.$eval(autoScrollExp)) {\n $uiViewScroll(clone);\n }\n });\n\n cleanupLastView();\n });\n\n currentEl = cloned;\n currentScope = newScope;\n /**\n * @ngdoc event\n * @name ui.router.state.directive:ui-view#$viewContentLoaded\n * @eventOf ui.router.state.directive:ui-view\n * @eventType emits on ui-view directive scope\n * @description *\n * Fired once the view is **loaded**, *after* the DOM is rendered.\n *\n * @param {Object} event Event object.\n */\n currentScope.$emit('$viewContentLoaded', config || viewConfig);\n currentScope.$eval(onloadExp);\n }\n };\n }\n };\n\n return directive;\n}];\n\n$ViewDirectiveFill.$inject = ['$compile', '$controller', '$transitions', '$view', '$q', '$timeout'];\n/** @hidden */\nfunction $ViewDirectiveFill($compile: angular.ICompileService,\n $controller: angular.IControllerService,\n $transitions: TransitionService,\n $view: ViewService,\n $q: angular.IQService,\n $timeout: ITimeoutService) {\n const getControllerAs = parse('viewDecl.controllerAs');\n const getResolveAs = parse('viewDecl.resolveAs');\n\n return {\n restrict: 'ECA',\n priority: -400,\n compile: function (tElement: JQuery) {\n let initial = tElement.html();\n tElement.empty();\n\n return function (scope: IScope, $element: JQuery) {\n let data: UIViewData = $element.data('$uiView');\n if (!data) {\n $element.html(initial);\n $compile($element.contents())(scope);\n return;\n }\n\n let cfg: Ng1ViewConfig = data.$cfg || { viewDecl: {}, getTemplate: noop };\n let resolveCtx: ResolveContext = cfg.path && new ResolveContext(cfg.path);\n $element.html(cfg.getTemplate($element, resolveCtx) || initial);\n trace.traceUIViewFill(data.$uiView, $element.html());\n\n let link = $compile($element.contents());\n let controller = cfg.controller;\n let controllerAs: string = getControllerAs(cfg);\n let resolveAs: string = getResolveAs(cfg);\n let locals = resolveCtx && getLocals(resolveCtx);\n\n scope[resolveAs] = locals;\n\n if (controller) {\n let controllerInstance = $controller(controller, extend({}, locals, { $scope: scope, $element: $element }));\n if (controllerAs) {\n scope[controllerAs] = controllerInstance;\n scope[controllerAs][resolveAs] = locals;\n }\n\n // TODO: Use $view service as a central point for registering component-level hooks\n // Then, when a component is created, tell the $view service, so it can invoke hooks\n // $view.componentLoaded(controllerInstance, { $scope: scope, $element: $element });\n // scope.$on('$destroy', () => $view.componentUnloaded(controllerInstance, { $scope: scope, $element: $element }));\n\n $element.data('$ngControllerController', controllerInstance);\n $element.children().data('$ngControllerController', controllerInstance);\n\n registerControllerCallbacks($q, $transitions, controllerInstance, scope, cfg);\n }\n\n // Wait for the component to appear in the DOM\n if (isString(cfg.viewDecl.component)) {\n let cmp = cfg.viewDecl.component;\n let kebobName = kebobString(cmp);\n let tagRegexp = new RegExp(`^(x-|data-)?${kebobName}$`, \"i\");\n\n let getComponentController = () => {\n let directiveEl = [].slice.call($element[0].children)\n .filter((el: Element) => el && el.tagName && tagRegexp.exec(el.tagName)) ;\n \n return directiveEl && angular.element(directiveEl).data(`$${cmp}Controller`);\n };\n\n let deregisterWatch = scope.$watch(getComponentController, function(ctrlInstance) {\n if (!ctrlInstance) return;\n registerControllerCallbacks($q, $transitions, ctrlInstance, scope, cfg);\n deregisterWatch();\n });\n }\n\n link(scope);\n };\n }\n };\n}\n\n/** @hidden */\nlet hasComponentImpl = typeof (angular as any).module('ui.router')['component'] === 'function';\n/** @hidden incrementing id */\nlet _uiCanExitId = 0;\n\n/** @hidden TODO: move these callbacks to $view and/or `/hooks/components.ts` or something */\nfunction registerControllerCallbacks($q: angular.IQService,\n $transitions: TransitionService,\n controllerInstance: Ng1Controller,\n $scope: IScope,\n cfg: Ng1ViewConfig) {\n // Call $onInit() ASAP\n if (isFunction(controllerInstance.$onInit) && !(cfg.viewDecl.component && hasComponentImpl)) {\n controllerInstance.$onInit();\n }\n\n let viewState: Ng1StateDeclaration = tail(cfg.path).state.self;\n\n let hookOptions: HookRegOptions = { bind: controllerInstance };\n // Add component-level hook for onParamsChange\n if (isFunction(controllerInstance.uiOnParamsChanged)) {\n let resolveContext: ResolveContext = new ResolveContext(cfg.path);\n let viewCreationTrans = resolveContext.getResolvable('$transition$').data;\n\n // Fire callback on any successful transition\n const paramsUpdated = ($transition$: Transition) => {\n // Exit early if the $transition$ is the same as the view was created within.\n // Exit early if the $transition$ will exit the state the view is for.\n if ($transition$ === viewCreationTrans || $transition$.exiting().indexOf(viewState as StateDeclaration) !== -1) return;\n\n let toParams = $transition$.params(\"to\") as TypedMap;\n let fromParams = $transition$.params>(\"from\") as TypedMap;\n let toSchema: Param[] = $transition$.treeChanges().to.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n let fromSchema: Param[] = $transition$.treeChanges().from.map((node: PathNode) => node.paramSchema).reduce(unnestR, []);\n\n // Find the to params that have different values than the from params\n let changedToParams = toSchema.filter((param: Param) => {\n let idx = fromSchema.indexOf(param);\n return idx === -1 || !fromSchema[idx].type.equals(toParams[param.id], fromParams[param.id]);\n });\n\n // Only trigger callback if a to param has changed or is new\n if (changedToParams.length) {\n let changedKeys: string[] = changedToParams.map(x => x.id);\n // Filter the params to only changed/new to params. `$transition$.params()` may be used to get all params.\n let newValues = filter(toParams, (val, key) => changedKeys.indexOf(key) !== -1);\n controllerInstance.uiOnParamsChanged(newValues, $transition$);\n }\n };\n $scope.$on('$destroy', $transitions.onSuccess({}, paramsUpdated, hookOptions));\n }\n\n // Add component-level hook for uiCanExit\n if (isFunction(controllerInstance.uiCanExit)) {\n let id = _uiCanExitId++;\n let cacheProp = '_uiCanExitIds';\n\n // Returns true if a redirect transition already answered truthy\n const prevTruthyAnswer = (trans: Transition) =>\n !!trans && (trans[cacheProp] && trans[cacheProp][id] === true || prevTruthyAnswer(trans.redirectedFrom()));\n\n // If a user answered yes, but the transition was later redirected, don't also ask for the new redirect transition\n const wrappedHook = (trans: Transition) => {\n let promise, ids = trans[cacheProp] = trans[cacheProp] || {};\n if (!prevTruthyAnswer(trans)) {\n promise = $q.when(controllerInstance.uiCanExit(trans));\n promise.then(val => ids[id] = (val !== false));\n }\n return promise;\n };\n\n let criteria = {exiting: viewState.name};\n $scope.$on('$destroy', $transitions.onBefore(criteria, wrappedHook, hookOptions));\n }\n}\n\nangular.module('ui.router.state').directive('uiView', uiView);\nangular.module('ui.router.state').directive('uiView', $ViewDirectiveFill);\n", + "/**\n * @hidden\n * @module ng1\n */ /** */\ndeclare var angular;\nimport * as ng_from_import from \"angular\";\nlet ng_from_global = angular;\n\nexport const ng = (ng_from_import && ng_from_import.module) ? ng_from_import : ng_from_global;\n", + "/** @module ng1 */ /** for typedoc */\nimport {\n val, isObject, createProxyFunctions, BuilderFunction, StateRegistry, StateService, OnInvalidCallback\n} from \"@uirouter/core\";\nimport { Ng1StateDeclaration } from \"./interface\";\n\n/**\n * The Angular 1 `StateProvider`\n *\n * The `$stateProvider` works similar to Angular's v1 router, but it focuses purely\n * on state.\n *\n * A state corresponds to a \"place\" in the application in terms of the overall UI and\n * navigation. A state describes (via the controller / template / view properties) what\n * the UI looks like and does at that place.\n *\n * States often have things in common, and the primary way of factoring out these\n * commonalities in this model is via the state hierarchy, i.e. parent/child states aka\n * nested states.\n *\n * The `$stateProvider` provides interfaces to declare these states for your app.\n */\nexport class StateProvider {\n constructor(private stateRegistry: StateRegistry, private stateService: StateService) {\n createProxyFunctions(val(StateProvider.prototype), this, val(this));\n }\n\n /**\n * Decorates states when they are registered\n *\n * Allows you to extend (carefully) or override (at your own peril) the\n * `stateBuilder` object used internally by [[StateRegistry]].\n * This can be used to add custom functionality to ui-router,\n * for example inferring templateUrl based on the state name.\n *\n * When passing only a name, it returns the current (original or decorated) builder\n * function that matches `name`.\n *\n * The builder functions that can be decorated are listed below. Though not all\n * necessarily have a good use case for decoration, that is up to you to decide.\n *\n * In addition, users can attach custom decorators, which will generate new\n * properties within the state's internal definition. There is currently no clear\n * use-case for this beyond accessing internal states (i.e. $state.$current),\n * however, expect this to become increasingly relevant as we introduce additional\n * meta-programming features.\n *\n * **Warning**: Decorators should not be interdependent because the order of\n * execution of the builder functions in non-deterministic. Builder functions\n * should only be dependent on the state definition object and super function.\n *\n *\n * Existing builder functions and current return values:\n *\n * - **parent** `{object}` - returns the parent state object.\n * - **data** `{object}` - returns state data, including any inherited data that is not\n * overridden by own values (if any).\n * - **url** `{object}` - returns a {@link ui.router.util.type:UrlMatcher UrlMatcher}\n * or `null`.\n * - **navigable** `{object}` - returns closest ancestor state that has a URL (aka is\n * navigable).\n * - **params** `{object}` - returns an array of state params that are ensured to\n * be a super-set of parent's params.\n * - **views** `{object}` - returns a views object where each key is an absolute view\n * name (i.e. \"viewName@stateName\") and each value is the config object\n * (template, controller) for the view. Even when you don't use the views object\n * explicitly on a state config, one is still created for you internally.\n * So by decorating this builder function you have access to decorating template\n * and controller properties.\n * - **ownParams** `{object}` - returns an array of params that belong to the state,\n * not including any params defined by ancestor states.\n * - **path** `{string}` - returns the full path from the root down to this state.\n * Needed for state activation.\n * - **includes** `{object}` - returns an object that includes every state that\n * would pass a `$state.includes()` test.\n *\n * #### Example:\n * Override the internal 'views' builder with a function that takes the state\n * definition, and a reference to the internal function being overridden:\n * ```js\n * $stateProvider.decorator('views', function (state, parent) {\n * let result = {},\n * views = parent(state);\n *\n * angular.forEach(views, function (config, name) {\n * let autoName = (state.name + '.' + name).replace('.', '/');\n * config.templateUrl = config.templateUrl || '/partials/' + autoName + '.html';\n * result[name] = config;\n * });\n * return result;\n * });\n *\n * $stateProvider.state('home', {\n * views: {\n * 'contact.list': { controller: 'ListController' },\n * 'contact.item': { controller: 'ItemController' }\n * }\n * });\n * ```\n *\n *\n * ```js\n * // Auto-populates list and item views with /partials/home/contact/list.html,\n * // and /partials/home/contact/item.html, respectively.\n * $state.go('home');\n * ```\n *\n * @param {string} name The name of the builder function to decorate.\n * @param {object} func A function that is responsible for decorating the original\n * builder function. The function receives two parameters:\n *\n * - `{object}` - state - The state config object.\n * - `{object}` - super - The original builder function.\n *\n * @return {object} $stateProvider - $stateProvider instance\n */\n decorator(name: string, func: BuilderFunction) {\n return this.stateRegistry.decorator(name, func) || this;\n }\n\n /**\n * Registers a state\n *\n * ### This is a passthrough to [[StateRegistry.register]].\n *\n * Registers a state configuration under a given state name.\n * The stateConfig object has the following acceptable properties.\n *\n *
    \n *\n * - **`template`** - {string|function=} - html template as a string or a function that returns\n * an html template as a string which should be used by the uiView directives. This property\n * takes precedence over templateUrl.\n *\n * If `template` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateUrl`** - {string|function=} - path or function that returns a path to an html\n * template that should be used by uiView.\n *\n * If `templateUrl` is a function, it will be called with the following parameters:\n *\n * - {array.<object>} - state parameters extracted from the current $location.path() by\n * applying the current state\n *\n * \n *\n * - **`templateProvider`** - {function=} - Provider function that returns HTML content\n * string.\n *\n * \n *\n * - **`controller`** - {string|function=} - Controller fn that should be associated with newly\n * related scope or the name of a registered controller if passed as a string.\n *\n * \n *\n * - **`controllerProvider`** - {function=} - Injectable provider function that returns\n * the actual controller or string.\n *\n * \n *\n * - **`controllerAs`** – {string=} – A controller alias name. If present the controller will be\n * published to scope under the controllerAs name.\n *\n * \n *\n * - **`resolve`** - {object.<string, function>=} - An optional map of dependencies which\n * should be injected into the controller. If any of these dependencies are promises,\n * the router will wait for them all to be resolved or one to be rejected before the\n * controller is instantiated. If all the promises are resolved successfully, the values\n * of the resolved promises are injected and $stateChangeSuccess event is fired. If any\n * of the promises are rejected the $stateChangeError event is fired. The map object is:\n *\n * - key - {string}: name of dependency to be injected into controller\n * - factory - {string|function}: If string then it is alias for service. Otherwise if function,\n * it is injected and return value it treated as dependency. If result is a promise, it is\n * resolved before its value is injected into controller.\n *\n * \n *\n * - **`url`** - {string=} - A url with optional parameters. When a state is navigated or\n * transitioned to, the `$stateParams` service will be populated with any\n * parameters that were passed.\n *\n * \n *\n * - **`params`** - {object=} - An array of parameter names or regular expressions. Only\n * use this within a state if you are not using url. Otherwise you can specify your\n * parameters within the url. When a state is navigated or transitioned to, the\n * $stateParams service will be populated with any parameters that were passed.\n *\n * \n *\n * - **`views`** - {object=} - Use the views property to set up multiple views or to target views\n * manually/explicitly.\n *\n * \n *\n * - **`abstract`** - {boolean=} - An abstract state will never be directly activated,\n * but can provide inherited properties to its common children states.\n *\n * \n *\n * - **`onEnter`** - {object=} - Callback function for when a state is entered. Good way\n * to trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`onExit`** - {object=} - Callback function for when a state is exited. Good way to\n * trigger an action or dispatch an event, such as opening a dialog.\n * If minifying your scripts, make sure to use the `['injection1', 'injection2', function(injection1, injection2){}]` syntax.\n *\n * \n *\n * - **`reloadOnSearch = true`** - {boolean=} - If `false`, will not retrigger the same state\n * just because a search/query parameter has changed (via $location.search() or $location.hash()).\n * Useful for when you'd like to modify $location.search() without triggering a reload.\n *\n * \n *\n * - **`data`** - {object=} - Arbitrary data object, useful for custom configuration.\n *\n * #### Example:\n * Some state name examples\n * ```js\n * // stateName can be a single top-level name (must be unique).\n * $stateProvider.state(\"home\", {});\n *\n * // Or it can be a nested state name. This state is a child of the\n * // above \"home\" state.\n * $stateProvider.state(\"home.newest\", {});\n *\n * // Nest states as deeply as needed.\n * $stateProvider.state(\"home.newest.abc.xyz.inception\", {});\n *\n * // state() returns $stateProvider, so you can chain state declarations.\n * $stateProvider\n * .state(\"home\", {})\n * .state(\"about\", {})\n * .state(\"contacts\", {});\n * ```\n *\n * @param {string} name A unique state name, e.g. \"home\", \"about\", \"contacts\".\n * To create a parent/child state use a dot, e.g. \"about.sales\", \"home.newest\".\n * @param {object} definition State configuration object.\n */\n state(name: string, definition: Ng1StateDeclaration): StateProvider;\n state(definition: Ng1StateDeclaration): StateProvider;\n state(name: any, definition?: any) {\n if (isObject(name)) {\n definition = name;\n } else {\n definition.name = name;\n }\n this.stateRegistry.register(definition);\n return this;\n }\n\n /**\n * Registers an invalid state handler\n *\n * This is a passthrough to [[StateService.onInvalid]] for ng1.\n */\n\n onInvalid(callback: OnInvalidCallback): Function {\n return this.stateService.onInvalid(callback);\n }\n}\n", + "/** @module ng1 */ /** */\nimport {\n StateObject, TransitionStateHookFn, HookResult, Transition, services, ResolveContext, extend, BuilderFunction\n} from \"@uirouter/core\";\nimport { getLocals } from \"../services\";\nimport { Ng1StateDeclaration } from '../interface';\n\n/**\n * This is a [[StateBuilder.builder]] function for angular1 `onEnter`, `onExit`,\n * `onRetain` callback hooks on a [[Ng1StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * ensures that those hooks are injectable for @uirouter/angularjs (ng1).\n */\nexport const getStateHookBuilder = (hookName: \"onEnter\"|\"onExit\"|\"onRetain\") =>\nfunction stateHookBuilder(state: StateObject, parentFn: BuilderFunction): TransitionStateHookFn {\n let hook = state[hookName];\n let pathname = hookName === 'onExit' ? 'from' : 'to';\n\n function decoratedNg1Hook(trans: Transition, state: Ng1StateDeclaration): HookResult {\n let resolveContext = new ResolveContext(trans.treeChanges(pathname));\n let locals = extend(getLocals(resolveContext), { $state$: state, $transition$: trans });\n return services.$injector.invoke(hook, this, locals);\n }\n\n return hook ? decoratedNg1Hook : undefined;\n};\n", + "/**\n * @internalapi\n * @module ng1\n */ /** */\nimport { LocationConfig, LocationServices, UIRouter, ParamType } from \"@uirouter/core\";\nimport { val, createProxyFunctions, removeFrom, isObject } from \"@uirouter/core\";\nimport { ILocationService, ILocationProvider } from \"angular\";\n\n/**\n * Implements UI-Router LocationServices and LocationConfig using Angular 1's $location service\n */\nexport class Ng1LocationServices implements LocationConfig, LocationServices {\n private $locationProvider: ILocationProvider;\n private $location: ILocationService;\n private $sniffer;\n\n path;\n search;\n hash;\n hashPrefix;\n port;\n protocol;\n host;\n baseHref;\n\n // .onChange() registry\n private _urlListeners: Function[] = [];\n\n dispose() { }\n\n constructor($locationProvider: ILocationProvider) {\n this.$locationProvider = $locationProvider;\n let _lp = val($locationProvider);\n createProxyFunctions(_lp, this, _lp, ['hashPrefix']);\n }\n\n onChange(callback: Function) {\n this._urlListeners.push(callback);\n return () => removeFrom(this._urlListeners)(callback);\n }\n\n html5Mode() {\n let html5Mode: any = this.$locationProvider.html5Mode();\n html5Mode = isObject(html5Mode) ? html5Mode.enabled : html5Mode;\n return html5Mode && this.$sniffer.history;\n }\n\n url(newUrl?: string, replace = false, state?) {\n if (newUrl) this.$location.url(newUrl);\n if (replace) this.$location.replace();\n if (state) this.$location.state(state);\n return this.$location.url();\n }\n\n _runtimeServices($rootScope, $location: ILocationService, $sniffer, $browser) {\n this.$location = $location;\n this.$sniffer = $sniffer;\n\n // Bind $locationChangeSuccess to the listeners registered in LocationService.onChange\n $rootScope.$on(\"$locationChangeSuccess\", evt => this._urlListeners.forEach(fn => fn(evt)));\n let _loc = val($location);\n let _browser = val($browser);\n\n // Bind these LocationService functions to $location\n createProxyFunctions(_loc, this, _loc, [\"replace\", \"path\", \"search\", \"hash\"]);\n // Bind these LocationConfig functions to $location\n createProxyFunctions(_loc, this, _loc, ['port', 'protocol', 'host']);\n // Bind these LocationConfig functions to $browser\n createProxyFunctions(_browser, this, _browser, ['baseHref']);\n }\n\n /**\n * Applys ng1-specific path parameter encoding\n *\n * The Angular 1 `$location` service is a bit weird.\n * It doesn't allow slashes to be encoded/decoded bi-directionally.\n *\n * See the writeup at https://github.com/angular-ui/ui-router/issues/2598\n *\n * This code patches the `path` parameter type so it encoded/decodes slashes as ~2F\n *\n * @param router\n */\n static monkeyPatchPathParameterType(router: UIRouter) {\n let pathType: ParamType = router.urlMatcherFactory.type('path');\n\n pathType.encode = (val: any) =>\n val != null ? val.toString().replace(/(~|\\/)/g, m => ({ '~': '~~', '/': '~2F' }[m])) : val;\n\n pathType.decode = (val: string) =>\n val != null ? val.toString().replace(/(~~|~2F)/g, m => ({ '~~': '~', '~2F': '/' }[m])) : val;\n\n }\n}\n", + "/** @module url */ /** */\nimport {\n UIRouter, UrlRouter, LocationServices, $InjectorLike, BaseUrlRule, UrlRuleHandlerFn, UrlMatcher,\n IInjectable\n} from \"@uirouter/core\";\nimport { services, isString, isFunction, isArray, identity } from \"@uirouter/core\";\n\nexport interface RawNg1RuleFunction {\n ($injector: $InjectorLike, $location: LocationServices): string|void;\n}\n\n/**\n * Manages rules for client-side URL\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRulesApi]] which can be found as [[UrlService.rules]].\n *\n * This class manages the router rules for what to do when the URL changes.\n *\n * This provider remains for backwards compatibility.\n *\n * @deprecated\n */\nexport class UrlRouterProvider {\n /** @hidden */ _router: UIRouter;\n /** @hidden */ _urlRouter: UrlRouter;\n\n /** @hidden */\n constructor(router: UIRouter) {\n this._router = router;\n this._urlRouter = router.urlRouter;\n }\n\n /** @hidden */\n $get() {\n let urlRouter = this._urlRouter;\n urlRouter.update(true);\n if (!urlRouter.interceptDeferred) urlRouter.listen();\n return urlRouter;\n }\n\n /**\n * Registers a url handler function.\n *\n * Registers a low level url handler (a `rule`).\n * A rule detects specific URL patterns and returns a redirect, or performs some action.\n *\n * If a rule returns a string, the URL is replaced with the string, and all rules are fired again.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Here's an example of how you might allow case insensitive urls\n * $urlRouterProvider.rule(function ($injector, $location) {\n * var path = $location.path(),\n * normalized = path.toLowerCase();\n *\n * if (path !== normalized) {\n * return normalized;\n * }\n * });\n * });\n * ```\n *\n * @param ruleFn\n * Handler function that takes `$injector` and `$location` services as arguments.\n * You can use them to detect a url and return a different url as a string.\n *\n * @return [[UrlRouterProvider]] (`this`)\n */\n rule(ruleFn: RawNg1RuleFunction): UrlRouterProvider {\n if (!isFunction(ruleFn)) throw new Error(\"'rule' must be a function\");\n\n const match = () =>\n ruleFn(services.$injector, this._router.locationService);\n\n let rule = new BaseUrlRule(match, identity);\n this._urlRouter.rule(rule);\n return this;\n };\n\n /**\n * Defines the path or behavior to use when no url can be matched.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // if the path doesn't match any of the urls you configured\n * // otherwise will take care of routing the user to the\n * // specified url\n * $urlRouterProvider.otherwise('/index');\n *\n * // Example of using function rule as param\n * $urlRouterProvider.otherwise(function ($injector, $location) {\n * return '/a/valid/url';\n * });\n * });\n * ```\n *\n * @param rule\n * The url path you want to redirect to or a function rule that returns the url path or performs a `$state.go()`.\n * The function version is passed two params: `$injector` and `$location` services, and should return a url string.\n *\n * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance\n */\n otherwise(rule: string | RawNg1RuleFunction): UrlRouterProvider {\n let urlRouter = this._urlRouter;\n\n if (isString(rule)) {\n urlRouter.otherwise(rule);\n } else if (isFunction(rule)) {\n urlRouter.otherwise(() => rule(services.$injector, this._router.locationService));\n } else {\n throw new Error(\"'rule' must be a string or function\");\n }\n\n return this;\n };\n\n /**\n * Registers a handler for a given url matching.\n *\n * If the handler is a string, it is\n * treated as a redirect, and is interpolated according to the syntax of match\n * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).\n *\n * If the handler is a function, it is injectable.\n * It gets invoked if `$location` matches.\n * You have the option of inject the match object as `$match`.\n *\n * The handler can return\n *\n * - **falsy** to indicate that the rule didn't match after all, then `$urlRouter`\n * will continue trying to find another one that matches.\n * - **string** which is treated as a redirect and passed to `$location.url()`\n * - **void** or any **truthy** value tells `$urlRouter` that the url was handled.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * $urlRouterProvider.when($state.url, function ($match, $stateParams) {\n * if ($state.$current.navigable !== state ||\n * !equalForKeys($match, $stateParams) {\n * $state.transitionTo(state, $match, false);\n * }\n * });\n * });\n * ```\n *\n * @param what A pattern string to match, compiled as a [[UrlMatcher]].\n * @param handler The path (or function that returns a path) that you want to redirect your user to.\n * @param ruleCallback [optional] A callback that receives the `rule` registered with [[UrlMatcher.rule]]\n *\n * Note: the handler may also invoke arbitrary code, such as `$state.go()`\n */\n when(what: (RegExp|UrlMatcher|string), handler: string|IInjectable) {\n if (isArray(handler) || isFunction(handler)) {\n handler = UrlRouterProvider.injectableHandler(this._router, handler);\n }\n\n this._urlRouter.when(what, handler as any);\n return this;\n };\n\n static injectableHandler(router: UIRouter, handler): UrlRuleHandlerFn {\n return match =>\n services.$injector.invoke(handler, null, { $match: match, $stateParams: router.globals.params });\n }\n\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * var app = angular.module('app', ['ui.router']);\n *\n * app.config(function ($urlRouterProvider) {\n * // Prevent $urlRouter from automatically intercepting URL changes;\n * $urlRouterProvider.deferIntercept();\n * })\n *\n * app.run(function (MyService, $urlRouter, $http) {\n * $http.get(\"/stuff\").then(function(resp) {\n * MyService.doStuff(resp.data);\n * $urlRouter.listen();\n * $urlRouter.sync();\n * });\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n deferIntercept(defer?: boolean) {\n this._urlRouter.deferIntercept(defer);\n };\n}\n", + "/** @module ng1 */ /** */\nimport { ng as angular } from \"./angular\";\nimport { IServiceProviderFactory } from \"angular\";\nimport IAnchorScrollService = angular.IAnchorScrollService;\nimport ITimeoutService = angular.ITimeoutService;\n\nexport interface UIViewScrollProvider {\n /**\n * Uses standard anchorScroll behavior\n *\n * Reverts [[$uiViewScroll]] back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)\n * service for scrolling based on the url anchor.\n */\n useAnchorScroll(): void;\n}\n\n\n/** @hidden */\nfunction $ViewScrollProvider() {\n\n var useAnchorScroll = false;\n\n this.useAnchorScroll = function () {\n useAnchorScroll = true;\n };\n\n this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll: IAnchorScrollService, $timeout: ITimeoutService): Function {\n if (useAnchorScroll) {\n return $anchorScroll;\n }\n\n return function ($element: JQuery) {\n return $timeout(function () {\n $element[0].scrollIntoView();\n }, 0, false);\n };\n }];\n}\n\nangular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);\n", + "/**\n * Main entry point for angular 1.x build\n * @module ng1\n */ /** */\n\nexport * from \"./interface\";\nexport * from \"./services\";\nexport * from \"./statebuilders/views\";\nexport * from \"./stateProvider\";\nexport * from \"./urlRouterProvider\";\n\nimport \"./injectables\";\nimport \"./directives/stateDirectives\";\nimport \"./stateFilters\";\nimport \"./directives/viewDirective\";\nimport \"./viewScroll\";\n\nexport default \"ui.router\";\n\nimport * as core from \"@uirouter/core\";\nexport { core };\nexport * from \"@uirouter/core\";\n\n" + ], + "names": [ + "templateFactory", + "path", + "view", + "services", + "$injector", + "get", + "Ng1ViewConfig", + "state", + "parent", + "ctrlKeys", + "compKeys", + "nonCompKeys", + "concat", + "allViewKeys", + "isDefined", + "views", + "hasAnyKey", + "Error", + "name", + "filter", + "key", + "join", + "viewsObject", + "$default", + "pick", + "forEach", + "config", + "isString", + "component", + "extend", + "resolveAs", + "$type", + "$context", + "$name", + "normalized", + "ViewService", + "normalizeUIViewTarget", + "$uiViewName", + "uiViewName", + "$uiViewContextAnchor", + "uiViewContextAnchor", + "cmpDefs", + "length", + "map", + "getBindings", + "reduce", + "unnestR", + "$locationProvider", + "$location", + "$browser", + "$sniffer", + "$rootScope", + "$http", + "$templateCache", + "ng1LocationService", + "_runtimeServices", + "router", + "this", + "UIRouter", + "stateProvider", + "StateProvider", + "stateRegistry", + "stateService", + "decorator", + "ng1ViewsBuilder", + "getStateHookBuilder", + "viewService", + "_pluginapi", + "_viewConfigFactory", + "getNg1ViewConfigFactory", + "locationService", + "locationConfig", + "Ng1LocationServices", + "monkeyPatchPathParameterType", + "$get", + "$inject", + "$q", + "$uiRouter", + "x", + "$$state", + "resolvables", + "deps", + "resolvable", + "annotate", + "resolveFn", + "strictDi", + "$watch", + "trace", + "approximateDigests", + "ref", + "parsed", + "paramsOnly", + "match", + "replace", + "paramExpr", + "el", + "$uiView", + "inheritedData", + "parse", + "tail", + "undefined", + "$state", + "$element", + "def", + "uiState", + "current", + "uiStateOpts", + "defaultOpts", + "href", + "uiStateParams", + "isSvg", + "Object", + "prototype", + "toString", + "call", + "prop", + "isForm", + "nodeName", + "attr", + "isAnchor", + "toUpperCase", + "clickable", + "$timeout", + "type", + "getDef", + "e", + "button", + "which", + "target", + "ctrlKey", + "metaKey", + "shiftKey", + "transition", + "go", + "preventDefault", + "ignorePreventDefaultCount", + "cancel", + "relative", + "stateContext", + "$current", + "inherit", + "source", + "element", + "scope", + "hookFn", + "events", + "isArray", + "on", + "events_1", + "_i", + "event_1", + "$on", + "off", + "events_2", + "event_2", + "isFilter", + "params", + "options", + "is", + "$stateful", + "includesFilter", + "includes", + "$compile", + "$controller", + "$transitions", + "$view", + "getControllerAs", + "getResolveAs", + "restrict", + "priority", + "compile", + "tElement", + "initial", + "html", + "empty", + "data", + "contents", + "cfg", + "$cfg", + "viewDecl", + "getTemplate", + "noop", + "resolveCtx", + "ResolveContext", + "traceUIViewFill", + "link", + "controller", + "controllerAs", + "locals", + "getLocals", + "controllerInstance", + "$scope", + "children", + "registerControllerCallbacks", + "cmp_1", + "kebobName", + "kebobString", + "tagRegexp_1", + "RegExp", + "deregisterWatch_1", + "directiveEl", + "slice", + "tagName", + "exec", + "angular", + "ctrlInstance", + "isFunction", + "$onInit", + "hasComponentImpl", + "viewState", + "self", + "hookOptions", + "bind", + "uiOnParamsChanged", + "viewCreationTrans_1", + "getResolvable", + "onSuccess", + "$transition$", + "exiting", + "indexOf", + "toParams", + "fromParams", + "toSchema", + "treeChanges", + "to", + "node", + "paramSchema", + "fromSchema", + "from", + "changedToParams", + "param", + "idx", + "equals", + "id", + "changedKeys_1", + "newValues", + "val", + "uiCanExit", + "id_1", + "_uiCanExitId", + "prevTruthyAnswer_1", + "trans", + "redirectedFrom", + "criteria", + "onBefore", + "promise", + "ids", + "when", + "then", + "ng_from_global", + "ng", + "ng_from_import", + "ng_from_import.module", + "keys", + "obj", + "acc", + "factory", + "uiView", + "context", + "_this", + "makeComponentTemplate", + "bindings", + "template", + "paramValues", + "promises", + "fromConfig", + "getController", + "all", + "results", + "traceViewServiceEvent", + "provider", + "controllerProvider", + "isInjectable", + "providerFn", + "Resolvable", + "version", + "minor", + "$templateRequest", + "has", + "TemplateFactory", + "value", + "_useHttp", + "asTemplate", + "result", + "str", + "asComponent", + "fromString", + "templateUrl", + "fromUrl", + "templateProvider", + "fromProvider", + "componentProvider", + "fromComponentProvider", + "url", + "cache", + "headers", + "Accept", + "response", + "prefix", + "kebob", + "camelCase", + "kebobed", + "attrs", + "getComponentBindings", + "input", + "attrName", + "resolveName", + "res", + "fn", + "args", + "scopeBindings", + "isObject", + "bindToController", + "bindingsObj", + "tuple", + "createProxyFunctions", + "func", + "definition", + "register", + "callback", + "onInvalid", + "hookName", + "parentFn", + "hook", + "pathname", + "resolveContext", + "$state$", + "invoke", + "_lp", + "_urlListeners", + "push", + "removeFrom", + "html5Mode", + "enabled", + "history", + "newUrl", + "evt", + "_loc", + "_browser", + "pathType", + "urlMatcherFactory", + "encode", + "m", + "~", + "/", + "decode", + "~~", + "~2F", + "_router", + "_urlRouter", + "urlRouter", + "UrlRouterProvider", + "update", + "interceptDeferred", + "listen", + "ruleFn", + "rule", + "BaseUrlRule", + "identity", + "otherwise", + "what", + "handler", + "injectableHandler", + "$match", + "$stateParams", + "globals", + "defer", + "deferIntercept", + "module", + "mod_init", + "mod_util", + "mod_rtr", + "mod_state", + "mod_main", + "getProviderFor", + "serviceName", + "$urp", + "service", + "runBlock", + "watchDigests", + "uiRouter", + "urlRouterProvider", + "run", + "$urlMatcherFactory", + "$urlRouter", + "uiSref", + "ctx", + "getTokens", + "getPolicy", + "async", + "applyPairs", + "require", + "uiSrefActive", + "unlinkInfoFn", + "active", + "$$addStateInfo", + "$set", + "getTypeInfo", + "rawDef", + "processedDef", + "parseStateRef", + "uiSrefOpts", + "$eval", + "onStatesChanged", + "transitionService", + "clickHook", + "bindEvents", + "inputAttrs", + "watchDeregFns", + "field", + "$observe", + "expr", + "newval", + "$interpolate", + "$attrs", + "stateName", + "stateParams", + "activeClass", + "stateInfo", + "states", + "splitClasses", + "split", + "getClasses", + "stateList", + "allClasses", + "activeEqClass", + "uniqR", + "fuzzyClasses", + "exactClasses", + "addClasses", + "removeClasses", + "cls", + "inArray", + "$evalAsync", + "className", + "addClass", + "removeClass", + "uiSrefActiveEq", + "stateOrName", + "addState", + "newState", + "newParams", + "deregister", + "onStart", + "updateAfterTransition", + "directive", + "$IsStateFilter", + "$IncludedByStateFilter", + "$animate", + "$uiViewScroll", + "enter", + "cb", + "leave", + "config1", + "config2", + "rootData", + "_rootViewContext", + "count", + "terminal", + "transclude", + "tAttrs", + "$transclude", + "previousEl", + "traceUIViewEvent", + "remove", + "currentScope", + "activeUIView", + "$destroy", + "currentEl", + "_viewData_1", + "renderer", + "$$animLeave", + "resolve", + "newScope", + "$new", + "animEnter", + "animLeave", + "$uiViewData", + "$uiViewAnim", + "$animEnter", + "$animLeave", + "$emit", + "cloned", + "clone", + "autoScrollExp", + "cleanupLastView", + "viewConfig", + "onloadExp", + "unregister", + "getRenderer", + "inherited", + "fqn", + "configUpdated", + "configsEqual", + "traceUIViewConfigUpdated", + "updateView", + "creationContext", + "fromParentTagConfig", + "fromParentTag", + "registerUIView", + "$ViewDirectiveFill", + "useAnchorScroll", + "$anchorScroll", + "scrollIntoView" + ], + "mappings": "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" +} \ No newline at end of file diff --git a/src/main/webapp/bower_components/angular-ui-router/yarn.lock b/src/main/webapp/bower_components/angular-ui-router/yarn.lock index 9d54220554..61d0c15898 100644 --- a/src/main/webapp/bower_components/angular-ui-router/yarn.lock +++ b/src/main/webapp/bower_components/angular-ui-router/yarn.lock @@ -62,13 +62,13 @@ dependencies: "@types/node" "*" -"@uirouter/core@5.0.10": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@uirouter/core/-/core-5.0.10.tgz#1a39eacbe33f3b44ab2c8fa4520cb1da92026cc3" +"@uirouter/core@5.0.11": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@uirouter/core/-/core-5.0.11.tgz#bec461fcda767d79c98f6647cc9313ef9e5de03a" -"@uirouter/publish-scripts@1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@uirouter/publish-scripts/-/publish-scripts-1.0.7.tgz#99ffd6aeced41e96b92ccb007342eee5d14b0a9a" +"@uirouter/publish-scripts@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@uirouter/publish-scripts/-/publish-scripts-2.0.2.tgz#dcdcd158623c8151b9ca4d71aeca97c917469c51" dependencies: conventional-changelog "^1.1.4" conventional-changelog-ui-router-core "^1.4.2" @@ -76,6 +76,9 @@ git-semver-tags "^1.2.1" readline-sync "^1.4.7" shelljs "^0.7.8" + shx "^0.2.2" + tweak-sourcemap-paths "0.0.3" + yargs "^9.0.1" JSONStream@^1.0.4: version "1.3.1" @@ -3205,7 +3208,7 @@ shelljs@^0.7.0, shelljs@^0.7.3, shelljs@^0.7.8: interpret "^1.0.0" rechoir "^0.6.2" -shx@0.2.2: +shx@0.2.2, shx@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/shx/-/shx-0.2.2.tgz#0a304d020b0edf1306ad81570e80f0346df58a39" dependencies: @@ -3580,6 +3583,13 @@ tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" +tweak-sourcemap-paths@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tweak-sourcemap-paths/-/tweak-sourcemap-paths-0.0.3.tgz#a06bf69768e71966c4e0e7664749bdeac8922522" + dependencies: + glob "^7.1.2" + yargs "^9.0.1" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -3936,6 +3946,24 @@ yargs@^8.0.2: y18n "^3.2.1" yargs-parser "^7.0.0" +yargs@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" diff --git a/src/main/webapp/bower_components/bowser/.bower.json b/src/main/webapp/bower_components/bowser/.bower.json index c769ca2194..4b9a5b685e 100644 --- a/src/main/webapp/bower_components/bowser/.bower.json +++ b/src/main/webapp/bower_components/bowser/.bower.json @@ -11,7 +11,7 @@ "ender", "sniff" ], - "version": "1.8.0", + "version": "1.8.1", "homepage": "https://github.com/lancedikson/bowser", "scripts": [ "src/bowser.js" @@ -30,13 +30,13 @@ "**/.*", "Makefile" ], - "_release": "1.8.0", + "_release": "1.8.1", "_resolution": { "type": "version", - "tag": "1.8.0", - "commit": "714a010f1a3cb727c68c894be2814aba262a2135" + "tag": "1.8.1", + "commit": "258fe9ac84ffb5bbe349085c3234b3b21e3efbeb" }, "_source": "https://github.com/ded/bowser.git", - "_target": "^1.8.0", + "_target": "^1.8.1", "_originalSource": "bowser" } \ No newline at end of file diff --git a/src/main/webapp/bower_components/bowser/CHANGELOG.md b/src/main/webapp/bower_components/bowser/CHANGELOG.md index 940262a6ec..074390af89 100644 --- a/src/main/webapp/bower_components/bowser/CHANGELOG.md +++ b/src/main/webapp/bower_components/bowser/CHANGELOG.md @@ -1,5 +1,8 @@ # Bowser Changelog +### 1.8.1 (October 7, 2017) +- [FIX] Fix detection of MS Edge on Android and iOS (#201) + ### 1.8.0 (October 7, 2017) - [ADD] Add `osname` into result object (#200) diff --git a/src/main/webapp/bower_components/bowser/bower.json b/src/main/webapp/bower_components/bowser/bower.json index 6ce09c64b7..e25c8a0613 100644 --- a/src/main/webapp/bower_components/bowser/bower.json +++ b/src/main/webapp/bower_components/bowser/bower.json @@ -11,7 +11,7 @@ "ender", "sniff" ], - "version": "1.8.0", + "version": "1.8.1", "homepage": "https://github.com/lancedikson/bowser", "scripts": [ "src/bowser.js" diff --git a/src/main/webapp/bower_components/bowser/package.json b/src/main/webapp/bower_components/bowser/package.json index cc62cac2da..7e649eafa0 100644 --- a/src/main/webapp/bower_components/bowser/package.json +++ b/src/main/webapp/bower_components/bowser/package.json @@ -1,6 +1,6 @@ { "name": "bowser", - "version": "1.8.0", + "version": "1.8.1", "description": "Lightweight browser detector", "keywords": [ "browser", diff --git a/src/main/webapp/bower_components/bowser/src/bowser.js b/src/main/webapp/bower_components/bowser/src/bowser.js index aff5705795..f7bbca7c53 100644 --- a/src/main/webapp/bower_components/bowser/src/bowser.js +++ b/src/main/webapp/bower_components/bowser/src/bowser.js @@ -42,7 +42,7 @@ , windows = !windowsphone && /windows/i.test(ua) , mac = !iosdevice && !silk && /macintosh/i.test(ua) , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua) - , edgeVersion = getFirstMatch(/edge\/(\d+(\.\d+)?)/i) + , edgeVersion = getSecondMatch(/edg([ea]|ios)\/(\d+(\.\d+)?)/i) , versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i) , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua) , mobile = !tablet && /[^-]mobi/i.test(ua) @@ -157,7 +157,7 @@ , chrome: t , version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i) } - } else if (/chrome.+? edge/i.test(ua)) { + } else if (/edg([ea]|ios)/i.test(ua)) { result = { name: 'Microsoft Edge' , msedge: t @@ -329,10 +329,10 @@ } // set OS flags for platforms that have multiple browsers - if (!result.windowsphone && !result.msedge && (android || result.silk)) { + if (!result.windowsphone && (android || result.silk)) { result.android = t result.osname = 'Android' - } else if (!result.windowsphone && !result.msedge && iosdevice) { + } else if (!result.windowsphone && iosdevice) { result[iosdevice] = t result.ios = t result.osname = 'iOS' diff --git a/src/main/webapp/bower_components/bowser/src/useragents.js b/src/main/webapp/bower_components/bowser/src/useragents.js index 8fa90910d3..070b9f9679 100644 --- a/src/main/webapp/bower_components/bowser/src/useragents.js +++ b/src/main/webapp/bower_components/bowser/src/useragents.js @@ -816,6 +816,25 @@ module.exports.useragents = { , osversion: '10' , a: true } + , 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89 Safari/603.2.4 EdgiOS/41.1.35.1': { + osname: 'iOS' + , msedge: true + , version: '41.1' + , ios: true + , iphone: true + , mobile: true + , osversion: '10.3.2' + , a: true + } + , 'Mozilla/5.0 (Linux; Android 8.0; Pixel XL Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.0 Mobile Safari/537.36 EdgA/41.1.35.1': { + osname: 'Android' + , msedge: true + , version: '41.1' + , android: true + , mobile: true + , osversion: '8.0' + , a: true + } } , Firefox: { 'Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0': { diff --git a/src/main/webapp/bower_components/hyphenator/.bower.json b/src/main/webapp/bower_components/hyphenator/.bower.json index a62a37f8d5..da1f6e9d9e 100644 --- a/src/main/webapp/bower_components/hyphenator/.bower.json +++ b/src/main/webapp/bower_components/hyphenator/.bower.json @@ -1,19 +1,19 @@ { "name": "hyphenator", + "version": "5.3.0", "main": "Hyphenator.js", "ignore": [ - "favicon.ico", - "Hyphenator_observable.js" + "favicon.ico" ], - "homepage": "https://github.com/rreitmann/Hyphenator", - "_release": "9a726f36fd", + "homepage": "https://github.com/mnater/Hyphenator", + "_release": "5.3.0", "_resolution": { - "type": "branch", - "branch": "master", - "commit": "9a726f36fdf1318723ab03dd7597a59ea9502623" + "type": "version", + "tag": "5.3.0", + "commit": "386a7b8fd82976e70dcec79c714a3bdec9399c6f" }, - "_source": "https://github.com/rreitmann/Hyphenator.git", - "_target": "master", - "_originalSource": "rreitmann/Hyphenator", + "_source": "https://github.com/mnater/Hyphenator.git", + "_target": "^5.3.0", + "_originalSource": "Hyphenator", "_direct": true } \ No newline at end of file diff --git a/src/main/webapp/bower_components/hyphenator/Hyphenator.js b/src/main/webapp/bower_components/hyphenator/Hyphenator.js index 617ebfe404..82d35e8bbe 100644 --- a/src/main/webapp/bower_components/hyphenator/Hyphenator.js +++ b/src/main/webapp/bower_components/hyphenator/Hyphenator.js @@ -1,5 +1,5 @@ -/** @license Hyphenator 5.2.0(devel) - client side hyphenation for webbrowsers - * Copyright (C) 2015 Mathias Nater, Zürich (mathiasnater at gmail dot com) +/** @license Hyphenator 5.3.0 - client side hyphenation for webbrowsers + * Copyright (C) 2017 Mathias Nater, Zürich (mathiasnater at gmail dot com) * https://github.com/mnater/Hyphenator * * Released under the MIT license @@ -12,7 +12,7 @@ */ /* The following comment is for JSLint: */ -/*jslint browser: true, multivar: true, single: true*/ +/*jslint browser: true, multivar: true, eval: true*/ /*global Hyphenator window*/ /** @@ -20,7 +20,7 @@ * @global * @namespace Hyphenator * @author Mathias Nater, - * @version 5.2.0(devel) + * @version 5.3.0 * @example * <script src = "Hyphenator.js" type = "text/javascript"></script> * <script type = "text/javascript"> @@ -29,7 +29,7 @@ */ var Hyphenator; Hyphenator = (function (window) { - 'use strict'; + "use strict"; /** * @member Hyphenator~contextWindow @@ -57,8 +57,8 @@ Hyphenator = (function (window) { /** * @typedef {Object} Hyphenator~supportedLangs~supportedLanguage * @property {string} file - The name of the pattern file - * @property {number} script - The script type of the language (e.g. 'latin' for english), this type is abbreviated by an id - * @property {string} prompt - The sentence prompted to the user, if Hyphenator.js doesn't find a language hint + * @property {number} script - The script type of the language (e.g. "latin" for english), this type is abbreviated by an id + * @property {string} prompt - The sentence prompted to the user, if Hyphenator.js doesn"t find a language hint */ /** @@ -74,62 +74,62 @@ Hyphenator = (function (window) { * @param {string} file The name of the pattern file * @param {Number} script A shortcut for a specific script: latin:0, cyrillic: 1, arabic: 2, armenian:3, bengali: 4, devangari: 5, greek: 6 * gujarati: 7, kannada: 8, lao: 9, malayalam: 10, oriya: 11, persian: 12, punjabi: 13, tamil: 14, telugu: 15, georgian: 16 - * @param {string} prompt The sentence prompted to the user, if Hyphenator.js doesn't find a language hint + * @param {string} prompt The sentence prompted to the user, if Hyphenator.js doesn"t find a language hint */ o = function (code, file, script, prompt) { - r[code] = {'file': file, 'script': script, 'prompt': prompt}; + r[code] = {"file": file, "script": script, "prompt": prompt}; }; - o('be', 'be.js', 1, 'Мова гэтага сайта не можа быць вызначаны аўтаматычна. Калі ласка пакажыце мову:'); - o('ca', 'ca.js', 0, ''); - o('cs', 'cs.js', 0, 'Jazyk této internetové stránky nebyl automaticky rozpoznán. Určete prosím její jazyk:'); - o('cu', 'cu.js', 1, 'Ꙗ҆зы́къ сегѡ̀ са́йта не мо́жетъ ѡ҆предѣле́нъ бы́ти. Прошꙋ́ тѧ ᲂу҆каза́ти ꙗ҆зы́къ:'); - o('da', 'da.js', 0, 'Denne websides sprog kunne ikke bestemmes. Angiv venligst sprog:'); - o('bn', 'bn.js', 4, ''); - o('de', 'de.js', 0, 'Die Sprache dieser Webseite konnte nicht automatisch bestimmt werden. Bitte Sprache angeben:'); - o('el', 'el-monoton.js', 6, ''); - o('el-monoton', 'el-monoton.js', 6, ''); - o('el-polyton', 'el-polyton.js', 6, ''); - o('en', 'en-us.js', 0, 'The language of this website could not be determined automatically. Please indicate the main language:'); - o('en-gb', 'en-gb.js', 0, 'The language of this website could not be determined automatically. Please indicate the main language:'); - o('en-us', 'en-us.js', 0, 'The language of this website could not be determined automatically. Please indicate the main language:'); - o('eo', 'eo.js', 0, 'La lingvo de ĉi tiu retpaĝo ne rekoneblas aŭtomate. Bonvolu indiki ĝian ĉeflingvon:'); - o('es', 'es.js', 0, 'El idioma del sitio no pudo determinarse autom%E1ticamente. Por favor, indique el idioma principal:'); - o('et', 'et.js', 0, 'Veebilehe keele tuvastamine ebaõnnestus, palun valige kasutatud keel:'); - o('fi', 'fi.js', 0, 'Sivun kielt%E4 ei tunnistettu automaattisesti. M%E4%E4rit%E4 sivun p%E4%E4kieli:'); - o('fr', 'fr.js', 0, 'La langue de ce site n%u2019a pas pu %EAtre d%E9termin%E9e automatiquement. Veuillez indiquer une langue, s.v.p.%A0:'); - o('ga', 'ga.js', 0, 'Níorbh fhéidir teanga an tsuímh a fháil go huathoibríoch. Cuir isteach príomhtheanga an tsuímh:'); - o('grc', 'grc.js', 6, ''); - o('gu', 'gu.js', 7, ''); - o('hi', 'hi.js', 5, ''); - o('hu', 'hu.js', 0, 'A weboldal nyelvét nem sikerült automatikusan megállapítani. Kérem adja meg a nyelvet:'); - o('hy', 'hy.js', 3, 'Չհաջողվեց հայտնաբերել այս կայքի լեզուն։ Խնդրում ենք նշեք հիմնական լեզուն՝'); - o('it', 'it.js', 0, 'Lingua del sito sconosciuta. Indicare una lingua, per favore:'); - o('ka', 'ka.js', 16, ''); - o('kn', 'kn.js', 8, 'ಜಾಲ ತಾಣದ ಭಾಷೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ದಯವಿಟ್ಟು ಮುಖ್ಯ ಭಾಷೆಯನ್ನು ಸೂಚಿಸಿ:'); - o('la', 'la.js', 0, ''); - o('lt', 'lt.js', 0, 'Nepavyko automatiškai nustatyti šios svetainės kalbos. Prašome įvesti kalbą:'); - o('lv', 'lv.js', 0, 'Šīs lapas valodu nevarēja noteikt automātiski. Lūdzu norādiet pamata valodu:'); - o('ml', 'ml.js', 10, 'ഈ വെ%u0D2C%u0D4D%u200Cസൈറ്റിന്റെ ഭാഷ കണ്ടുപിടിയ്ക്കാ%u0D28%u0D4D%u200D കഴിഞ്ഞില്ല. ഭാഷ ഏതാണെന്നു തിരഞ്ഞെടുക്കുക:'); - o('nb', 'nb-no.js', 0, 'Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:'); - o('no', 'nb-no.js', 0, 'Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:'); - o('nb-no', 'nb-no.js', 0, 'Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:'); - o('nl', 'nl.js', 0, 'De taal van deze website kan niet automatisch worden bepaald. Geef de hoofdtaal op:'); - o('or', 'or.js', 11, ''); - o('pa', 'pa.js', 13, ''); - o('pl', 'pl.js', 0, 'Języka tej strony nie można ustalić automatycznie. Proszę wskazać język:'); - o('pt', 'pt.js', 0, 'A língua deste site não pôde ser determinada automaticamente. Por favor indique a língua principal:'); - o('ru', 'ru.js', 1, 'Язык этого сайта не может быть определен автоматически. Пожалуйста укажите язык:'); - o('sk', 'sk.js', 0, ''); - o('sl', 'sl.js', 0, 'Jezika te spletne strani ni bilo mogoče samodejno določiti. Prosim navedite jezik:'); - o('sr-cyrl', 'sr-cyrl.js', 1, 'Језик овог сајта није детектован аутоматски. Молим вас наведите језик:'); - o('sr-latn', 'sr-latn.js', 0, 'Jezika te spletne strani ni bilo mogoče samodejno določiti. Prosim navedite jezik:'); - o('sv', 'sv.js', 0, 'Spr%E5ket p%E5 den h%E4r webbplatsen kunde inte avg%F6ras automatiskt. V%E4nligen ange:'); - o('ta', 'ta.js', 14, ''); - o('te', 'te.js', 15, ''); - o('tr', 'tr.js', 0, 'Bu web sitesinin dili otomatik olarak tespit edilememiştir. Lütfen dökümanın dilini seçiniz%A0:'); - o('uk', 'uk.js', 1, 'Мова цього веб-сайту не може бути визначена автоматично. Будь ласка, вкажіть головну мову:'); - o('ro', 'ro.js', 0, 'Limba acestui sit nu a putut fi determinată automat. Alege limba principală:'); + o("be", "be.js", 1, "Мова гэтага сайта не можа быць вызначаны аўтаматычна. Калі ласка пакажыце мову:"); + o("ca", "ca.js", 0, ""); + o("cs", "cs.js", 0, "Jazyk této internetové stránky nebyl automaticky rozpoznán. Určete prosím její jazyk:"); + o("cu", "cu.js", 1, "Ꙗ҆зы́къ сегѡ̀ са́йта не мо́жетъ ѡ҆предѣле́нъ бы́ти. Прошꙋ́ тѧ ᲂу҆каза́ти ꙗ҆зы́къ:"); + o("da", "da.js", 0, "Denne websides sprog kunne ikke bestemmes. Angiv venligst sprog:"); + o("bn", "bn.js", 4, ""); + o("de", "de.js", 0, "Die Sprache dieser Webseite konnte nicht automatisch bestimmt werden. Bitte Sprache angeben:"); + o("el", "el-monoton.js", 6, ""); + o("el-monoton", "el-monoton.js", 6, ""); + o("el-polyton", "el-polyton.js", 6, ""); + o("en", "en-us.js", 0, "The language of this website could not be determined automatically. Please indicate the main language:"); + o("en-gb", "en-gb.js", 0, "The language of this website could not be determined automatically. Please indicate the main language:"); + o("en-us", "en-us.js", 0, "The language of this website could not be determined automatically. Please indicate the main language:"); + o("eo", "eo.js", 0, "La lingvo de ĉi tiu retpaĝo ne rekoneblas aŭtomate. Bonvolu indiki ĝian ĉeflingvon:"); + o("es", "es.js", 0, "El idioma del sitio no pudo determinarse autom%E1ticamente. Por favor, indique el idioma principal:"); + o("et", "et.js", 0, "Veebilehe keele tuvastamine ebaõnnestus, palun valige kasutatud keel:"); + o("fi", "fi.js", 0, "Sivun kielt%E4 ei tunnistettu automaattisesti. M%E4%E4rit%E4 sivun p%E4%E4kieli:"); + o("fr", "fr.js", 0, "La langue de ce site n%u2019a pas pu %EAtre d%E9termin%E9e automatiquement. Veuillez indiquer une langue, s.v.p.%A0:"); + o("ga", "ga.js", 0, "Níorbh fhéidir teanga an tsuímh a fháil go huathoibríoch. Cuir isteach príomhtheanga an tsuímh:"); + o("grc", "grc.js", 6, ""); + o("gu", "gu.js", 7, ""); + o("hi", "hi.js", 5, ""); + o("hu", "hu.js", 0, "A weboldal nyelvét nem sikerült automatikusan megállapítani. Kérem adja meg a nyelvet:"); + o("hy", "hy.js", 3, "Չհաջողվեց հայտնաբերել այս կայքի լեզուն։ Խնդրում ենք նշեք հիմնական լեզուն՝"); + o("it", "it.js", 0, "Lingua del sito sconosciuta. Indicare una lingua, per favore:"); + o("ka", "ka.js", 16, ""); + o("kn", "kn.js", 8, "ಜಾಲ ತಾಣದ ಭಾಷೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ದಯವಿಟ್ಟು ಮುಖ್ಯ ಭಾಷೆಯನ್ನು ಸೂಚಿಸಿ:"); + o("la", "la.js", 0, ""); + o("lt", "lt.js", 0, "Nepavyko automatiškai nustatyti šios svetainės kalbos. Prašome įvesti kalbą:"); + o("lv", "lv.js", 0, "Šīs lapas valodu nevarēja noteikt automātiski. Lūdzu norādiet pamata valodu:"); + o("ml", "ml.js", 10, "ഈ വെ%u0D2C%u0D4D%u200Cസൈറ്റിന്റെ ഭാഷ കണ്ടുപിടിയ്ക്കാ%u0D28%u0D4D%u200D കഴിഞ്ഞില്ല. ഭാഷ ഏതാണെന്നു തിരഞ്ഞെടുക്കുക:"); + o("nb", "nb-no.js", 0, "Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:"); + o("no", "nb-no.js", 0, "Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:"); + o("nb-no", "nb-no.js", 0, "Nettstedets språk kunne ikke finnes automatisk. Vennligst oppgi språk:"); + o("nl", "nl.js", 0, "De taal van deze website kan niet automatisch worden bepaald. Geef de hoofdtaal op:"); + o("or", "or.js", 11, ""); + o("pa", "pa.js", 13, ""); + o("pl", "pl.js", 0, "Języka tej strony nie można ustalić automatycznie. Proszę wskazać język:"); + o("pt", "pt.js", 0, "A língua deste site não pôde ser determinada automaticamente. Por favor indique a língua principal:"); + o("ru", "ru.js", 1, "Язык этого сайта не может быть определен автоматически. Пожалуйста укажите язык:"); + o("sk", "sk.js", 0, ""); + o("sl", "sl.js", 0, "Jezika te spletne strani ni bilo mogoče samodejno določiti. Prosim navedite jezik:"); + o("sr-cyrl", "sr-cyrl.js", 1, "Језик овог сајта није детектован аутоматски. Молим вас наведите језик:"); + o("sr-latn", "sr-latn.js", 0, "Jezika te spletne strani ni bilo mogoče samodejno določiti. Prosim navedite jezik:"); + o("sv", "sv.js", 0, "Spr%E5ket p%E5 den h%E4r webbplatsen kunde inte avg%F6ras automatiskt. V%E4nligen ange:"); + o("ta", "ta.js", 14, ""); + o("te", "te.js", 15, ""); + o("tr", "tr.js", 0, "Bu web sitesinin dili otomatik olarak tespit edilememiştir. Lütfen dökümanın dilini seçiniz%A0:"); + o("uk", "uk.js", 1, "Мова цього веб-сайту не може бути визначена автоматично. Будь ласка, вкажіть головну мову:"); + o("ro", "ro.js", 0, "Limba acestui sit nu a putut fi determinată automat. Alege limba principală:"); return r; }()); @@ -152,18 +152,18 @@ Hyphenator = (function (window) { var fullPath; function getBasePath(path) { if (!path) { - return r.basePath; + return r.basePath; } return path.substring(0, path.lastIndexOf("/") + 1); } function findCurrentScript() { - var scripts = contextWindow.document.getElementsByTagName('script'); + var scripts = contextWindow.document.getElementsByTagName("script"); var num = scripts.length - 1; var currScript; var src; while (num >= 0) { currScript = scripts[num]; - if (currScript.hasAttribute("src") && currScript.src.indexOf("Hyphenator") !== -1) { + if ((currScript.src || currScript.hasAttribute("src")) && currScript.src.indexOf("Hyphenator") !== -1) { src = currScript.src; break; } @@ -204,7 +204,7 @@ Hyphenator = (function (window) { * @desc * This is computed by getLocality. * isLocal is true, if Hyphenator is loaded from the same domain, as the webpage, but false, if - * it's loaded from an external source (i.e. directly from github) + * it"s loaded from an external source (i.e. directly from github) */ var isLocal = locality.isLocal; @@ -221,7 +221,7 @@ Hyphenator = (function (window) { * @access private * @desc * if persistentConfig is set to true (defaults to false), config options and the state of the - * toggleBox are stored in DOM-storage (according to the storage-setting). So they haven't to be + * toggleBox are stored in DOM-storage (according to the storage-setting). So they haven"t to be * set for each page. * @default false * @see {@link Hyphenator.config} @@ -245,7 +245,7 @@ Hyphenator = (function (window) { * A key-value object containing all html-tags whose content should not be hyphenated * @access private */ - var dontHyphenate = {'video': true, 'audio': true, 'script': true, 'code': true, 'pre': true, 'img': true, 'br': true, 'samp': true, 'kbd': true, 'var': true, 'abbr': true, 'acronym': true, 'sub': true, 'sup': true, 'button': true, 'option': true, 'label': true, 'textarea': true, 'input': true, 'math': true, 'svg': true, 'style': true}; + var dontHyphenate = {"video": true, "audio": true, "script": true, "code": true, "pre": true, "img": true, "br": true, "samp": true, "kbd": true, "var": true, "abbr": true, "acronym": true, "sub": true, "sup": true, "button": true, "option": true, "label": true, "textarea": true, "input": true, "math": true, "svg": true, "style": true}; /** * @member {boolean} Hyphenator~enableCache @@ -260,12 +260,12 @@ Hyphenator = (function (window) { /** * @member {string} Hyphenator~storageType * @desc - * A variable to define what html5-DOM-Storage-Method is used ('none', 'local' or 'session') - * @default 'local' + * A variable to define what html5-DOM-Storage-Method is used ("none", "local" or "session") + * @default "local" * @access private * @see {@link Hyphenator.config} */ - var storageType = 'local'; + var storageType = "local"; /** * @member {Object|undefined} Hyphenator~storage @@ -341,7 +341,7 @@ Hyphenator = (function (window) { context = context || contextWindow; var el; if (window.document.createElementNS) { - el = context.document.createElementNS('http://www.w3.org/1999/xhtml', tagname); + el = context.document.createElementNS("http://www.w3.org/1999/xhtml", tagname); } else if (window.document.createElement) { el = context.document.createElement(tagname); } @@ -387,44 +387,44 @@ Hyphenator = (function (window) { function css3_gethsupport() { var support = false, supportedBrowserLangs = {}, - property = '', + property = "", checkLangSupport, createLangSupportChecker = function (prefix) { var testStrings = [ //latin: 0 - 'aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz', + "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz", //cyrillic: 1 - 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя', + "абвгдеёжзийклмнопрстуфхцчшщъыьэюя", //arabic: 2 - 'أبتثجحخدذرزسشصضطظعغفقكلمنهوي', + "أبتثجحخدذرزسشصضطظعغفقكلمنهوي", //armenian: 3 - 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆ', + "աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆ", //bengali: 4 - 'ঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ', + "ঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ", //devangari: 5 - 'ँंःअआइईउऊऋऌएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसहऽािीुूृॄेैोौ्॒॑ॠॡॢॣ', + "ँंःअआइईउऊऋऌएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसहऽािीुूृॄेैोौ्॒॑ॠॡॢॣ", //greek: 6 - 'αβγδεζηθικλμνξοπρσςτυφχψω', + "αβγδεζηθικλμνξοπρσςτυφχψω", //gujarati: 7 - 'બહઅઆઇઈઉઊઋૠએઐઓઔાિીુૂૃૄૢૣેૈોૌકખગઘઙચછજઝઞટઠડઢણતથદધનપફસભમયરલળવશષ', + "બહઅઆઇઈઉઊઋૠએઐઓઔાિીુૂૃૄૢૣેૈોૌકખગઘઙચછજઝઞટઠડઢણતથદધનપફસભમયરલળવશષ", //kannada: 8 - 'ಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹಽಾಿೀುೂೃೄೆೇೈೊೋೌ್ೕೖೞೠೡ', + "ಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹಽಾಿೀುೂೃೄೆೇೈೊೋೌ್ೕೖೞೠೡ", //lao: 9 - 'ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮະັາິີຶືຸູົຼເແໂໃໄ່້໊໋ໜໝ', + "ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮະັາິີຶືຸູົຼເແໂໃໄ່້໊໋ໜໝ", //malayalam: 10 - 'ംഃഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരറലളഴവശഷസഹാിീുൂൃെേൈൊോൌ്ൗൠൡൺൻർൽൾൿ', + "ംഃഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരറലളഴവശഷസഹാിീുൂൃെേൈൊോൌ്ൗൠൡൺൻർൽൾൿ", //oriya: 11 - 'ଁଂଃଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହାିୀୁୂୃେୈୋୌ୍ୗୠୡ', + "ଁଂଃଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହାିୀୁୂୃେୈୋୌ୍ୗୠୡ", //persian: 12 - 'أبتثجحخدذرزسشصضطظعغفقكلمنهوي', + "أبتثجحخدذرزسشصضطظعغفقكلمنهوي", //punjabi: 13 - 'ਁਂਃਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਲ਼ਵਸ਼ਸਹਾਿੀੁੂੇੈੋੌ੍ੰੱ', + "ਁਂਃਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਲ਼ਵਸ਼ਸਹਾਿੀੁੂੇੈੋੌ੍ੰੱ", //tamil: 14 - 'ஃஅஆஇஈஉஊஎஏஐஒஓஔகஙசஜஞடணதநனபமயரறலளழவஷஸஹாிீுூெேைொோௌ்ௗ', + "ஃஅஆஇஈஉஊஎஏஐஒஓஔகஙசஜஞடணதநனபமயரறலளழவஷஸஹாிீுூெேைொோௌ்ௗ", //telugu: 15 - 'ఁంఃఅఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహాిీుూృౄెేైొోౌ్ౕౖౠౡ', + "ఁంఃఅఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహాిీుూృౄెేైొోౌ్ౕౖౠౡ", //georgian: 16 - 'აიერთხტუფბლდნვკწსგზმქყშჩცძჭჯოღპჟჰ' + "აიერთხტუფბლდნვკწსგზმქყშჩცძჭჯოღპჟჰ" ], f = function (lang) { var shadow, @@ -437,21 +437,21 @@ Hyphenator = (function (window) { r = supportedBrowserLangs[lang]; } else if (supportedLangs.hasOwnProperty(lang)) { //create and append shadow-test-element - bdy = window.document.getElementsByTagName('body')[0]; - shadow = createElem('div', window); - shadow.id = 'Hyphenator_LanguageChecker'; - shadow.style.width = '5em'; - shadow.style.padding = '0'; - shadow.style.border = 'none'; - shadow.style[prefix] = 'auto'; - shadow.style.hyphens = 'auto'; - shadow.style.fontSize = '12px'; - shadow.style.lineHeight = '12px'; - shadow.style.wordWrap = 'normal'; - shadow.style.wordBreak = 'normal'; - shadow.style.visibility = 'hidden'; + bdy = window.document.getElementsByTagName("body")[0]; + shadow = createElem("div", window); + shadow.id = "Hyphenator_LanguageChecker"; + shadow.style.width = "5em"; + shadow.style.padding = "0"; + shadow.style.border = "none"; + shadow.style[prefix] = "auto"; + shadow.style.hyphens = "auto"; + shadow.style.fontSize = "12px"; + shadow.style.lineHeight = "12px"; + shadow.style.wordWrap = "normal"; + shadow.style.wordBreak = "normal"; + shadow.style.visibility = "hidden"; shadow.lang = lang; - shadow.style['-webkit-locale'] = "'" + lang + "'"; + shadow.style["-webkit-locale"] = "\"" + lang + "\""; shadow.innerHTML = testStrings[supportedLangs[lang].script]; bdy.appendChild(shadow); //measure its height @@ -470,25 +470,25 @@ Hyphenator = (function (window) { s; if (window.getComputedStyle) { - s = window.getComputedStyle(window.document.getElementsByTagName('body')[0], null); + s = window.getComputedStyle(window.document.getElementsByTagName("body")[0], null); if (s.hyphens !== undefined) { support = true; - property = 'hyphens'; - checkLangSupport = createLangSupportChecker('hyphens'); - } else if (s['-webkit-hyphens'] !== undefined) { + property = "hyphens"; + checkLangSupport = createLangSupportChecker("hyphens"); + } else if (s["-webkit-hyphens"] !== undefined) { support = true; - property = '-webkit-hyphens'; - checkLangSupport = createLangSupportChecker('-webkit-hyphens'); + property = "-webkit-hyphens"; + checkLangSupport = createLangSupportChecker("-webkit-hyphens"); } else if (s.MozHyphens !== undefined) { support = true; - property = '-moz-hyphens'; - checkLangSupport = createLangSupportChecker('MozHyphens'); - } else if (s['-ms-hyphens'] !== undefined) { + property = "-moz-hyphens"; + checkLangSupport = createLangSupportChecker("MozHyphens"); + } else if (s["-ms-hyphens"] !== undefined) { support = true; - property = '-ms-hyphens'; - checkLangSupport = createLangSupportChecker('-ms-hyphens'); + property = "-ms-hyphens"; + checkLangSupport = createLangSupportChecker("-ms-hyphens"); } - } //else we just return the initial values because ancient browsers don't support css3 anyway + } //else we just return the initial values because ancient browsers don"t support css3 anyway return { @@ -525,25 +525,25 @@ Hyphenator = (function (window) { * @member {string} Hyphenator~hyphenateClass * @desc * A string containing the css-class-name for the hyphenate class - * @default 'hyphenate' + * @default "hyphenate" * @access private * @example * <p class = "hyphenate">Text</p> * @see {@link Hyphenator.config} */ - var hyphenateClass = 'hyphenate'; + var hyphenateClass = "hyphenate"; /** * @member {string} Hyphenator~urlHyphenateClass * @desc * A string containing the css-class-name for the urlhyphenate class - * @default 'urlhyphenate' + * @default "urlhyphenate" * @access private * @example * <p class = "urlhyphenate">Text</p> * @see {@link Hyphenator.config} */ - var urlHyphenateClass = 'urlhyphenate'; + var urlHyphenateClass = "urlhyphenate"; /** * @member {string} Hyphenator~classPrefix @@ -552,7 +552,7 @@ Hyphenator = (function (window) { * whenever Hyphenator sets a CSS-class * @access private */ - var classPrefix = 'Hyphenator' + Math.round(Math.random() * 1000); + var classPrefix = "Hyphenator" + Math.round(Math.random() * 1000); /** * @member {string} Hyphenator~hideClass @@ -560,7 +560,7 @@ Hyphenator = (function (window) { * The name of the class that hides elements * @access private */ - var hideClass = classPrefix + 'hide'; + var hideClass = classPrefix + "hide"; /** * @member {RegExp} Hyphenator~hideClassRegExp @@ -576,7 +576,7 @@ Hyphenator = (function (window) { * The name of the class that unhides elements * @access private */ - var unhideClass = classPrefix + 'unhide'; + var unhideClass = classPrefix + "unhide"; /** * @member {RegExp} Hyphenator~hideClassRegExp @@ -592,7 +592,7 @@ Hyphenator = (function (window) { * The name of the class that hyphenates elements with css3 * @access private */ - var css3hyphenateClass = classPrefix + 'css3hyphenate'; + var css3hyphenateClass = classPrefix + "css3hyphenate"; /** * @member {CSSEdit} Hyphenator~css3hyphenateClass @@ -606,13 +606,13 @@ Hyphenator = (function (window) { * @member {string} Hyphenator~dontHyphenateClass * @desc * A string containing the css-class-name for elements that should not be hyphenated - * @default 'donthyphenate' + * @default "donthyphenate" * @access private * @example * <p class = "donthyphenate">Text</p> * @see {@link Hyphenator.config} */ - var dontHyphenateClass = 'donthyphenate'; + var dontHyphenateClass = "donthyphenate"; /** * @member {number} Hyphenator~min @@ -650,9 +650,9 @@ Hyphenator = (function (window) { * @member {number} Hyphenator~rightmin * @desc * Control how compound words are hyphenated. - * "auto": factory-made -> fac-tory-made ('old' behaviour of Hyphenator.js) - * "all": factory-made -> fac-tory-[ZWSP]made ('made'.length < minWordLength) - * "hyphen": factory-made -> factory-[ZWSP]made (Zero Width Space inserted after '-' to provide line breaking opportunity) + * "auto": factory-made -> fac-tory-made ("old" behaviour of Hyphenator.js) + * "all": factory-made -> fac-tory-[ZWSP]made ("made".length < minWordLength) + * "hyphen": factory-made -> factory-[ZWSP]made (Zero Width Space inserted after "-" to provide line breaking opportunity) * @default "auto" * @access private * @see {@link Hyphenator.config} @@ -700,7 +700,7 @@ Hyphenator = (function (window) { * @see {@link Hyphenator.config} * @see {@link Hyphenator~autoSetMainLanguage} */ - var defaultLanguage = ''; + var defaultLanguage = ""; /** * @member {ElementCollection} Hyphenator~elements @@ -830,11 +830,11 @@ Hyphenator = (function (window) { /** * @member {string} Hyphenator~url * @desc - * A string containing a insane RegularExpression to match URL's + * A string containing a insane RegularExpression to match URL"s * @access private */ - var url = '(?:\\w*:\/\/)?(?:(?:\\w*:)?(?:\\w*)@)?(?:(?:(?:[\\d]{1,3}\\.){3}(?:[\\d]{1,3}))|(?:(?:www\\.|[a-zA-Z]\\.)?[a-zA-Z0-9\\-\\.]+\\.(?:[a-z]{2,})))(?::\\d*)?(?:\/[\\w#!:\\.?\\+=&%@!\\-]*)*'; - // protocoll usr pwd ip or host tld port path + var url = "(?:\\w*:\/\/)?(?:(?:\\w*:)?(?:\\w*)@)?(?:(?:(?:[\\d]{1,3}\\.){3}(?:[\\d]{1,3}))|(?:(?:www\\.|[a-zA-Z]\\.)?[a-zA-Z0-9\\-]+(?:\\.[a-z]{2,})+))(?::\\d*)?(?:\/[\\w#!:\\.?\\+=&%@!\\-]*)*"; + // protocoll usr pwd ip or host tld port path /** * @member {string} Hyphenator~mail @@ -842,7 +842,7 @@ Hyphenator = (function (window) { * A string containing a RegularExpression to match mail-adresses * @access private */ - var mail = '[\\w-\\.]+@[\\w\\.]+'; + var mail = "[\\w-\\.]+@[\\w\\.]+"; /** * @member {string} Hyphenator~zeroWidthSpace @@ -855,11 +855,11 @@ Hyphenator = (function (window) { var zeroWidthSpace = (function () { var zws, ua = window.navigator.userAgent.toLowerCase(); zws = String.fromCharCode(8203); //Unicode zero width space - if (ua.indexOf('msie 6') !== -1) { - zws = ''; //IE6 doesn't support zws + if (ua.indexOf("msie 6") !== -1) { + zws = ""; //IE6 doesn"t support zws } - if (ua.indexOf('opera') !== -1 && ua.indexOf('version/10.00') !== -1) { - zws = ''; //opera 10 on XP doesn't support zws + if (ua.indexOf("opera") !== -1 && ua.indexOf("version/10.00") !== -1) { + zws = ""; //opera 10 on XP doesn"t support zws } return zws; }()); @@ -927,10 +927,10 @@ Hyphenator = (function (window) { * @name Hyphenator~flattenNodeList * @desc * Takes a nodeList and returns an array with all elements that are not contained by another element in the nodeList - * By using this function the elements returned by selectElements can be 'flattened'. + * By using this function the elements returned by selectElements can be "flattened". * @see {@link Hyphenator~selectElements} * @param {nodeList} nl - * @return {Array} Array of 'parent'-elements + * @return {Array} Array of "parent"-elements * @access private */ function flattenNodeList(nl) { @@ -963,7 +963,7 @@ Hyphenator = (function (window) { * @method Hyphenator~mySelectorFunction * @desc * A function that returns a HTMLNodeList or array of Elements to be hyphenated. - * By default it uses the classname ('hyphenate') to select the elements. + * By default it uses the classname ("hyphenate") to select the elements. * @access private */ function mySelectorFunction(hyphenateClass) { @@ -973,9 +973,9 @@ Hyphenator = (function (window) { if (window.document.getElementsByClassName) { el = contextWindow.document.getElementsByClassName(hyphenateClass); } else if (window.document.querySelectorAll) { - el = contextWindow.document.querySelectorAll('.' + hyphenateClass); + el = contextWindow.document.querySelectorAll("." + hyphenateClass); } else { - tmp = contextWindow.document.getElementsByTagName('*'); + tmp = contextWindow.document.getElementsByTagName("*"); while (i < tmp.length) { if (tmp[i].className.indexOf(hyphenateClass) !== -1 && tmp[i].className.indexOf(dontHyphenateClass) === -1) { el.push(tmp[i]); @@ -1010,24 +1010,24 @@ Hyphenator = (function (window) { * @member {string} Hyphenator~intermediateState * @desc * The visibility of elements while they are hyphenated: - * 'visible': unhyphenated text is visible and then redrawn when hyphenated. - * 'hidden': unhyphenated text is made invisible as soon as possible and made visible after hyphenation. - * @default 'hidden' + * "visible": unhyphenated text is visible and then redrawn when hyphenated. + * "hidden": unhyphenated text is made invisible as soon as possible and made visible after hyphenation. + * @default "hidden" * @see {@link Hyphenator.config} * @access private */ - var intermediateState = 'hidden'; + var intermediateState = "hidden"; /** * @member {string} Hyphenator~unhide * @desc - * How hidden elements unhide: either simultaneous (default: 'wait') or progressively. - * 'wait' makes Hyphenator.js to wait until all elements are hyphenated (one redraw) - * With 'progressive' Hyphenator.js unhides elements as soon as they are hyphenated. + * How hidden elements unhide: either simultaneous (default: "wait") or progressively. + * "wait" makes Hyphenator.js to wait until all elements are hyphenated (one redraw) + * With "progressive" Hyphenator.js unhides elements as soon as they are hyphenated. * @see {@link Hyphenator.config} * @access private */ - var unhide = 'wait'; + var unhide = "wait"; /** * @member {Array.} Hyphenator~CSSEditors @@ -1072,9 +1072,9 @@ Hyphenator = (function (window) { i += 1; } if (r === false) { - element = doc.createElement('style'); - element.type = 'text/css'; - doc.getElementsByTagName('head')[0].appendChild(element); + element = doc.createElement("style"); + element.type = "text/css"; + doc.getElementsByTagName("head")[0].appendChild(element); r = doc.styleSheets[doc.styleSheets.length - 1]; } return r; @@ -1159,7 +1159,7 @@ Hyphenator = (function (window) { } else { i = 0; } - r = sheet.insertRule(sel + '{' + rulesStr + '}', i); + r = sheet.insertRule(sel + "{" + rulesStr + "}", i); } else if (!!sheet.addRule) { // IE < 9 if (!!sheet.rules) { @@ -1208,12 +1208,12 @@ Hyphenator = (function (window) { // IE < 9 cssText = existingRule.rule.style.cssText.toLowerCase(); } - if (cssText !== sel + ' { ' + rulesString + ' }') { + if (cssText !== sel + " { " + rulesString + " }") { //cssText of the found rule is not uniquely selector + rulesString, if (cssText.indexOf(rulesString) !== -1) { //maybe there are other rules or IE < 9 //clear existing def - existingRule.rule.style.visibility = ''; + existingRule.rule.style.visibility = ""; } //add rule and register for later removal i = addRule(sel, rulesString); @@ -1270,7 +1270,7 @@ Hyphenator = (function (window) { * @access public */ function hyphenateURL(url) { - var tmp = url.replace(/([:\/.?#&\-_,;!@]+)/gi, '$&' + urlhyphen), + var tmp = url.replace(/([:\/.?#&\-_,;!@]+)/gi, "$&" + urlhyphen), parts = tmp.split(urlhyphen), i = 0; while (i < parts.length) { @@ -1342,6 +1342,147 @@ Hyphenator = (function (window) { */ var hyphRunFor = {}; + /** + * @method Hyphenator~removeHyphenationFromElement + * @desc + * Removes all hyphens from the element. If there are other elements, the function is + * called recursively. + * Removing hyphens is usefull if you like to copy text. Some browsers are buggy when the copy hyphenated texts. + * @param {Object} el The element where to remove hyphenation. + * @access public + */ + function removeHyphenationFromElement(el) { + var h, u, i = 0, n; + //escape hyphen + if (".\\+*?[^]$(){}=!<>|:-".indexOf(hyphen) !== -1) { + h = "\\" + hyphen; + } else { + h = hyphen; + } + //escape hyphen + if (".\\+*?[^]$(){}=!<>|:-".indexOf(urlhyphen) !== -1) { + u = "\\" + urlhyphen; + } else { + u = urlhyphen; + } + n = el.childNodes[i]; + while (!!n) { + if (n.nodeType === 3) { + n.data = n.data.replace(new RegExp(h, "g"), ""); + n.data = n.data.replace(new RegExp(u, "g"), ""); + } else if (n.nodeType === 1) { + removeHyphenationFromElement(n); + } + i += 1; + n = el.childNodes[i]; + } + } + + /** + * @member {Object} Hyphenator~hyphRunFor + * @desc + * stores location.href for documents where run() has been executed + * to warn when Hyphenator.run() executed multiple times + * @access private + * @see {@link Hyphenator~runWhenLoaded} + */ + var copy = (function () { + var factory = function () { + var registeredElements = []; + var oncopyHandler = function (e) { + e = e || window.event; + var shadow, + selection, + range, + rangeShadow, + restore, + target = e.target || e.srcElement, + currDoc = target.ownerDocument, + bdy = currDoc.getElementsByTagName("body")[0], + targetWindow = currDoc.defaultView || currDoc.parentWindow; + if (target.tagName && dontHyphenate[target.tagName.toLowerCase()]) { + //Safari needs this + return; + } + //create a hidden shadow element + shadow = currDoc.createElement("div"); + shadow.style.color = window.getComputedStyle + ? targetWindow.getComputedStyle(bdy, null).backgroundColor + : "#FFFFFF"; + shadow.style.fontSize = "0px"; + bdy.appendChild(shadow); + if (!!window.getSelection) { + //FF3, Webkit, IE9 + selection = targetWindow.getSelection(); + range = selection.getRangeAt(0); + shadow.appendChild(range.cloneContents()); + removeHyphenationFromElement(shadow); + selection.selectAllChildren(shadow); + restore = function () { + shadow.parentNode.removeChild(shadow); + selection.removeAllRanges(); //IE9 needs that + selection.addRange(range); + }; + } else { + // IE<9 + selection = targetWindow.document.selection; + range = selection.createRange(); + shadow.innerHTML = range.htmlText; + removeHyphenationFromElement(shadow); + rangeShadow = bdy.createTextRange(); + rangeShadow.moveToElementText(shadow); + rangeShadow.select(); + restore = function () { + shadow.parentNode.removeChild(shadow); + if (range.text !== "") { + range.select(); + } + }; + } + zeroTimeOut(restore); + }; + var removeOnCopy = function () { + var i = registeredElements.length - 1; + while (i >= 0) { + if (window.removeEventListener) { + registeredElements[i].removeEventListener("copy", oncopyHandler, true); + } else { + registeredElements[i].detachEvent("oncopy", oncopyHandler); + } + i -= 1; + } + }; + var reactivateOnCopy = function () { + var i = registeredElements.length - 1; + while (i >= 0) { + if (window.addEventListener) { + registeredElements[i].addEventListener("copy", oncopyHandler, true); + } else { + registeredElements[i].attachEvent("oncopy", oncopyHandler); + } + i -= 1; + } + }; + var registerOnCopy = function (el) { + registeredElements.push(el); + if (window.addEventListener) { + el.addEventListener("copy", oncopyHandler, true); + } else { + el.attachEvent("oncopy", oncopyHandler); + } + }; + return { + oncopyHandler: oncopyHandler, + removeOnCopy: removeOnCopy, + registerOnCopy: registerOnCopy, + reactivateOnCopy: reactivateOnCopy + }; + }; + return (safeCopy + ? factory() + : false); + }()); + /** * @method Hyphenator~runWhenLoaded * @desc @@ -1355,14 +1496,14 @@ Hyphenator = (function (window) { function runWhenLoaded(w, f) { var toplevel, add = window.document.addEventListener - ? 'addEventListener' - : 'attachEvent', + ? "addEventListener" + : "attachEvent", rem = window.document.addEventListener - ? 'removeEventListener' - : 'detachEvent', + ? "removeEventListener" + : "detachEvent", pre = window.document.addEventListener - ? '' - : 'on'; + ? "" + : "on"; function init(context) { if (hyphRunFor[context.location.href]) { @@ -1393,31 +1534,31 @@ Hyphenator = (function (window) { var i = 0, fl, haveAccess; - if (!!e && e.type === 'readystatechange' && w.document.readyState !== 'interactive' && w.document.readyState !== 'complete') { + if (!!e && e.type === "readystatechange" && w.document.readyState !== "interactive" && w.document.readyState !== "complete") { return; } //DOM is ready/interactive, but frames may not be loaded yet! //cleanup events - w.document[rem](pre + 'DOMContentLoaded', doOnEvent, false); - w.document[rem](pre + 'readystatechange', doOnEvent, false); + w.document[rem](pre + "DOMContentLoaded", doOnEvent, false); + w.document[rem](pre + "readystatechange", doOnEvent, false); //check frames fl = w.frames.length; if (fl === 0 || !doFrames) { //there are no frames! //cleanup events - w[rem](pre + 'load', doOnEvent, false); + w[rem](pre + "load", doOnEvent, false); documentLoaded = true; init(w); } else if (doFrames && fl > 0) { //we have frames, so wait for onload and then initiate runWhenLoaded recursevly for each frame: - if (!!e && e.type === 'load') { + if (!!e && e.type === "load") { //cleanup events - w[rem](pre + 'load', doOnEvent, false); + w[rem](pre + "load", doOnEvent, false); while (i < fl) { haveAccess = undefined; - //try catch isn't enough for webkit + //try catch isn"t enough for webkit try { //opera throws only on document.toString-access haveAccess = w.frames[i].document.toString(); @@ -1434,16 +1575,16 @@ Hyphenator = (function (window) { } } - if (documentLoaded || w.document.readyState === 'complete') { + if (documentLoaded || w.document.readyState === "complete") { //Hyphenator has run already (documentLoaded is true) or //it has been loaded after onLoad documentLoaded = true; - doOnEvent({type: 'load'}); + doOnEvent({type: "load"}); } else { //register events - w.document[add](pre + 'DOMContentLoaded', doOnEvent, false); - w.document[add](pre + 'readystatechange', doOnEvent, false); - w[add](pre + 'load', doOnEvent, false); + w.document[add](pre + "DOMContentLoaded", doOnEvent, false); + w.document[add](pre + "readystatechange", doOnEvent, false); + w[add](pre + "load", doOnEvent, false); toplevel = false; try { toplevel = !window.frameElement; @@ -1460,22 +1601,26 @@ Hyphenator = (function (window) { * Gets the language of an element. If no language is set, it may use the {@link Hyphenator~mainLanguage}. * @param {Object} el The first parameter is an DOM-Element-Object * @param {boolean} fallback The second parameter is a boolean to tell if the function should return the {@link Hyphenator~mainLanguage} - * if there's no language found for the element. + * if there"s no language found for the element. * @return {string} The language of the element * @access private */ function getLang(el, fallback) { try { - return !!el.getAttribute('lang') - ? el.getAttribute('lang').toLowerCase() - : !!el.getAttribute('xml:lang') - ? el.getAttribute('xml:lang').toLowerCase() - : el.tagName.toLowerCase() !== 'html' + return !!el.getAttribute("lang") + ? el.getAttribute("lang").toLowerCase() + : !!el.getAttribute("xml:lang") + ? el.getAttribute("xml:lang").toLowerCase() + : el.tagName.toLowerCase() !== "html" ? getLang(el.parentNode, fallback) : fallback ? mainLanguage : null; - } catch (ignore) {} + } catch (ignore) { + return fallback + ? mainLanguage + : null; + } } /** @@ -1495,55 +1640,44 @@ Hyphenator = (function (window) { */ function autoSetMainLanguage(w) { w = w || contextWindow; - var el = w.document.getElementsByTagName('html')[0], - m = w.document.getElementsByTagName('meta'), + var el = w.document.getElementsByTagName("html")[0], + m = w.document.getElementsByTagName("meta"), i = 0, getLangFromUser = function () { - var ml, - text = '', - dH = 300, - dW = 450, - dX = Math.floor((w.outerWidth - dW) / 2) + window.screenX, - dY = Math.floor((w.outerHeight - dH) / 2) + window.screenY, - ul = '', - languageHint; - if (!!window.showModalDialog && (w.location.href.indexOf(basePath) !== -1)) { - ml = window.showModalDialog(basePath + 'modalLangDialog.html', supportedLangs, "dialogWidth: " + dW + "px; dialogHeight: " + dH + "px; dialogtop: " + dY + "; dialogleft: " + dX + "; center: on; resizable: off; scroll: off;"); + var text = ""; + var ul = ""; + var languageHint = (function () { + var r = ""; + forEachKey(supportedLangs, function (k) { + r += k + ", "; + }); + r = r.substring(0, r.length - 2); + return r; + }()); + ul = window.navigator.language || window.navigator.userLanguage; + ul = ul.substring(0, 2); + if (!!supportedLangs[ul] && supportedLangs[ul].prompt !== "") { + text = supportedLangs[ul].prompt; } else { - languageHint = (function () { - var r = ''; - forEachKey(supportedLangs, function (k) { - r += k + ', '; - }); - r = r.substring(0, r.length - 2); - return r; - }()); - ul = window.navigator.language || window.navigator.userLanguage; - ul = ul.substring(0, 2); - if (!!supportedLangs[ul] && supportedLangs[ul].prompt !== '') { - text = supportedLangs[ul].prompt; - } else { - text = supportedLangs.en.prompt; - } - text += ' (ISO 639-1)\n\n' + languageHint; - ml = window.prompt(window.unescape(text), ul).toLowerCase(); + text = supportedLangs.en.prompt; } - return ml; + text += " (ISO 639-1)\n\n" + languageHint; + return window.prompt(window.unescape(text), ul).toLowerCase(); }; mainLanguage = getLang(el, false); if (!mainLanguage) { while (i < m.length) { // - if (!!m[i].getAttribute('http-equiv') && (m[i].getAttribute('http-equiv').toLowerCase() === 'content-language')) { - mainLanguage = m[i].getAttribute('content').toLowerCase(); + if (!!m[i].getAttribute("http-equiv") && (m[i].getAttribute("http-equiv").toLowerCase() === "content-language")) { + mainLanguage = m[i].getAttribute("content").toLowerCase(); } // - if (!!m[i].getAttribute('name') && (m[i].getAttribute('name').toLowerCase() === 'dc.language')) { - mainLanguage = m[i].getAttribute('content').toLowerCase(); + if (!!m[i].getAttribute("name") && (m[i].getAttribute("name").toLowerCase() === "dc.language")) { + mainLanguage = m[i].getAttribute("content").toLowerCase(); } // - if (!!m[i].getAttribute('name') && (m[i].getAttribute('name').toLowerCase() === 'language')) { - mainLanguage = m[i].getAttribute('content').toLowerCase(); + if (!!m[i].getAttribute("name") && (m[i].getAttribute("name").toLowerCase() === "language")) { + mainLanguage = m[i].getAttribute("content").toLowerCase(); } i += 1; } @@ -1553,7 +1687,7 @@ Hyphenator = (function (window) { autoSetMainLanguage(window.parent); } //fallback to defaultLang if set - if (!mainLanguage && defaultLanguage !== '') { + if (!mainLanguage && defaultLanguage !== "") { mainLanguage = defaultLanguage; } //ask user for lang @@ -1580,7 +1714,7 @@ Hyphenator = (function (window) { * @desc * This method copies the element to the elements-variable, sets its visibility * to intermediateState, retrieves its language and recursivly descends the DOM-tree until - * the child-Nodes aren't of type 1 + * the child-Nodes aren"t of type 1 * @param {Object} el a DOM element * @param {string} plang the language of the parent element * @param {boolean} isChild true, if the parent of el has been processed @@ -1592,12 +1726,12 @@ Hyphenator = (function (window) { eLang, useCSS3 = function () { css3hyphenateClassHandle = makeCSSEdit(contextWindow); - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, css3_h9n.property + ': auto;'); - css3hyphenateClassHandle.setRule('.' + dontHyphenateClass, css3_h9n.property + ': manual;'); - if ((eLang !== pLang) && css3_h9n.property.indexOf('webkit') !== -1) { - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, '-webkit-locale : ' + eLang + ';'); + css3hyphenateClassHandle.setRule("." + css3hyphenateClass, css3_h9n.property + ": auto;"); + css3hyphenateClassHandle.setRule("." + dontHyphenateClass, css3_h9n.property + ": manual;"); + if ((eLang !== pLang) && css3_h9n.property.indexOf("webkit") !== -1) { + css3hyphenateClassHandle.setRule("." + css3hyphenateClass, "-webkit-locale : " + eLang + ";"); } - el.className = el.className + ' ' + css3hyphenateClass; + el.className = el.className + " " + css3hyphenateClass; }, useHyphenator = function () { //quick fix for test111.html @@ -1608,25 +1742,25 @@ Hyphenator = (function (window) { if (supportedLangs.hasOwnProperty(eLang)) { docLanguages[eLang] = true; } else { - if (supportedLangs.hasOwnProperty(eLang.split('-')[0])) { //try subtag - eLang = eLang.split('-')[0]; + if (supportedLangs.hasOwnProperty(eLang.split("-")[0])) { //try subtag + eLang = eLang.split("-")[0]; docLanguages[eLang] = true; } else if (!isBookmarklet) { hyphenate = false; - onError(new Error('Language "' + eLang + '" is not yet supported.')); + onError(new Error("Language \"" + eLang + "\" is not yet supported.")); } } if (hyphenate) { - if (intermediateState === 'hidden') { - el.className = el.className + ' ' + hideClass; + if (intermediateState === "hidden") { + el.className = el.className + " " + hideClass; } elements.add(el, eLang); } }; isChild = isChild || false; - if (el.lang && typeof el.lang === 'string') { + if (el.lang && typeof el.lang === "string") { eLang = el.lang.toLowerCase(); //copy attribute-lang to internal eLang - } else if (!!pLang && pLang !== '') { + } else if (!!pLang && pLang !== "") { eLang = pLang.toLowerCase(); } else { eLang = getLang(el, true); @@ -1636,6 +1770,9 @@ Hyphenator = (function (window) { if (css3 && css3_h9n.support && !!css3_h9n.checkLangSupport(eLang)) { useCSS3(); } else { + if (safeCopy) { + copy.registerOnCopy(el); + } useHyphenator(); } } else { @@ -1653,9 +1790,11 @@ Hyphenator = (function (window) { } n = el.childNodes[j]; while (!!n) { - if (n.nodeType === 1 && !dontHyphenate[n.nodeName.toLowerCase()] && + if ( + n.nodeType === 1 && !dontHyphenate[n.nodeName.toLowerCase()] && n.className.indexOf(dontHyphenateClass) === -1 && - n.className.indexOf(urlHyphenateClass) === -1 && !elToProcess[n]) { + n.className.indexOf(urlHyphenateClass) === -1 && !elToProcess[n] + ) { process(n, eLang, true); } j += 1; @@ -1667,12 +1806,18 @@ Hyphenator = (function (window) { n = el.childNodes[j]; while (!!n) { - if (n.nodeType === 1 && !dontHyphenate[n.nodeName.toLowerCase()] && + if ( + n.nodeType === 1 && !dontHyphenate[n.nodeName.toLowerCase()] && n.className.indexOf(dontHyphenateClass) === -1 && - n.className.indexOf(hyphenateClass) === -1 && !urlhyphenEls[n]) { + n.className.indexOf(hyphenateClass) === -1 && !urlhyphenEls[n] + ) { processUrlStyled(n); } else if (n.nodeType === 3) { - n.data = hyphenateURL(n.data); + if (safeCopy) { + copy.registerOnCopy(n.parentNode); + } + //n.data = hyphenateURL(n.data); + elements.add(n.parentNode, "urlstyled"); } j += 1; n = el.childNodes[j]; @@ -1683,19 +1828,19 @@ Hyphenator = (function (window) { css3_h9n = css3_gethsupport(); } if (isBookmarklet) { - elToProcess = contextWindow.document.getElementsByTagName('body')[0]; + elToProcess = contextWindow.document.getElementsByTagName("body")[0]; process(elToProcess, mainLanguage, false); } else { - if (!css3 && intermediateState === 'hidden') { + if (!css3 && intermediateState === "hidden") { CSSEditors.push(makeCSSEdit(contextWindow)); - CSSEditors[CSSEditors.length - 1].setRule('.' + hyphenateClass, 'visibility: hidden;'); - CSSEditors[CSSEditors.length - 1].setRule('.' + hideClass, 'visibility: hidden;'); - CSSEditors[CSSEditors.length - 1].setRule('.' + unhideClass, 'visibility: visible;'); + CSSEditors[CSSEditors.length - 1].setRule("." + hyphenateClass, "visibility: hidden;"); + CSSEditors[CSSEditors.length - 1].setRule("." + hideClass, "visibility: hidden;"); + CSSEditors[CSSEditors.length - 1].setRule("." + unhideClass, "visibility: visible;"); } elToProcess = selectElements(); tmp = elToProcess[i]; while (!!tmp) { - process(tmp, '', false); + process(tmp, "", false); i += 1; tmp = elToProcess[i]; } @@ -1757,7 +1902,7 @@ Hyphenator = (function (window) { function makeValueStore(len) { var indexes = (function () { var arr; - if (Object.prototype.hasOwnProperty.call(window, "Uint32Array")) { //IE<9 doesn't have window.hasOwnProperty (host object) + if (Object.prototype.hasOwnProperty.call(window, "Uint32Array")) { //IE<9 doesn"t have window.hasOwnProperty (host object) arr = new window.Uint32Array(3); arr[0] = 1; //start position of a value set arr[1] = 1; //next index @@ -1769,7 +1914,7 @@ Hyphenator = (function (window) { }()), keys = (function () { var i, r; - if (Object.prototype.hasOwnProperty.call(window, "Uint8Array")) { //IE<9 doesn't have window.hasOwnProperty (host object) + if (Object.prototype.hasOwnProperty.call(window, "Uint8Array")) { //IE<9 doesn"t have window.hasOwnProperty (host object) return new window.Uint8Array(len); } r = []; @@ -1818,7 +1963,7 @@ Hyphenator = (function (window) { * * 2. Create a ValueStore: (typed) array that holds "values", i.e. the digits extracted from the patterns * The first value set starts at index 1 (since the trie is initialized with zeroes, starting at 0 would create errors) - * Each value set ends with a value of 255; trailing 0's are not stored. So pattern values like e.g. "010200" will become […,0,1,0,2,255,…] + * Each value set ends with a value of 255; trailing 0"s are not stored. So pattern values like e.g. "010200" will become […,0,1,0,2,255,…] * The ValueStore-Object manages handling of indizes automatically. Use ValueStore.add(p) to add a running value. * Use ValueStore.finalize() when the last value of a pattern is added. It will add the final 255, prepare the valueStore for new values * and return the starting index of the pattern. @@ -1827,7 +1972,7 @@ Hyphenator = (function (window) { * * 3. Create and zero initialize a (typed) array to store the trie. The trie uses two slots for each entry/node: * i: a link to another position in the array or -1 if the pattern ends here or more rows have to be added. - * i + 1: a link to a value in the ValueStore or 0 if there's no value for the path to this node. + * i + 1: a link to a value in the ValueStore or 0 if there"s no value for the path to this node. * Although the array is one-dimensional it can be described as an array of "rows", * where each "row" is an array of length trieRowLength (see below). * The first entry of this "row" represents the first character of the alphabet, the second a possible link to value store, @@ -1942,7 +2087,7 @@ Hyphenator = (function (window) { valueStore = makeValueStore(lo.valueStoreLength); lo.valueStore = valueStore; - if (Object.prototype.hasOwnProperty.call(window, "Int32Array")) { //IE<9 doesn't have window.hasOwnProperty (host object) + if (Object.prototype.hasOwnProperty.call(window, "Int32Array")) { //IE<9 doesn"t have window.hasOwnProperty (host object) lo.indexedTrie = new window.Int32Array(lo.patternArrayLength * 2); } else { lo.indexedTrie = []; @@ -1973,7 +2118,7 @@ Hyphenator = (function (window) { */ function recreatePattern(pattern, nodePoints) { var r = [], - c = pattern.split(''), + c = pattern.split(""), i = 0; while (i <= c.length) { if (nodePoints[i] && nodePoints[i] !== 0) { @@ -1984,26 +2129,26 @@ Hyphenator = (function (window) { } i += 1; } - return r.join(''); + return r.join(""); } /** * @method Hyphenator~convertExceptionsToObject * @desc * Converts a list of comma seprated exceptions to an object: - * 'Fortran,Hy-phen-a-tion' -> {'Fortran':'Fortran','Hyphenation':'Hy-phen-a-tion'} + * "Fortran,Hy-phen-a-tion" -> {"Fortran":"Fortran","Hyphenation":"Hy-phen-a-tion"} * @access private * @param {string} exc a comma separated string of exceptions (without spaces) * @return {Object.} */ function convertExceptionsToObject(exc) { - var w = exc.split(', '), + var w = exc.split(", "), r = {}, i = 0, l = w.length, key; while (i < l) { - key = w[i].replace(/-/g, ''); + key = w[i].replace(/-/g, ""); if (!r.hasOwnProperty(key)) { r[key] = w[i]; } @@ -2026,38 +2171,44 @@ Hyphenator = (function (window) { */ function loadPatterns(lang, cb) { var location, xhr, head, script, done = false; + function getXHRforIElt6() { + try { + //IE>=5 + xhr = new window.ActiveXObject("Msxml2.XMLHTTP"); + } catch (ignore) { + xhr = null; + } + } + function getXHRforIElt10() { + try { + //IE>=6 + xhr = new window.ActiveXObject("Microsoft.XMLHTTP"); + } catch (ignore) { + getXHRforIElt6(); + } + } if (supportedLangs.hasOwnProperty(lang) && !Hyphenator.languages[lang]) { - location = basePath + 'patterns/' + supportedLangs[lang].file; + location = basePath + "patterns/" + supportedLangs[lang].file; } else { return; } if (isLocal && !isBookmarklet) { - //check if 'location' is available: + //check if "location" is available: xhr = null; try { // Mozilla, Opera, Safari and Internet Explorer (ab v7) xhr = new window.XMLHttpRequest(); } catch (ignore) { - try { - //IE>=6 - xhr = new window.ActiveXObject("Microsoft.XMLHTTP"); - } catch (ignore) { - try { - //IE>=5 - xhr = new window.ActiveXObject("Msxml2.XMLHTTP"); - } catch (ignore) { - xhr = null; - } - } + getXHRforIElt10(); } if (xhr) { - xhr.open('HEAD', location, true); - xhr.setRequestHeader('Cache-Control', 'no-cache'); + xhr.open("HEAD", location, true); + xhr.setRequestHeader("Cache-Control", "no-cache"); xhr.onreadystatechange = function () { if (xhr.readyState === 2) { if (xhr.status >= 400) { - onError(new Error('Could not load\n' + location)); + onError(new Error("Could not load\n" + location)); delete docLanguages[lang]; return; } @@ -2068,11 +2219,11 @@ Hyphenator = (function (window) { } } if (createElem) { - head = window.document.getElementsByTagName('head').item(0); - script = createElem('script', window); + head = window.document.getElementsByTagName("head").item(0); + script = createElem("script", window); script.src = location; - script.type = 'text/javascript'; - script.charset = 'utf8'; + script.type = "text/javascript"; + script.charset = "utf8"; script.onreadystatechange = function () { if (!done && (!script.readyState || script.readyState === "loaded" || script.readyState === "complete")) { done = true; @@ -2104,9 +2255,9 @@ Hyphenator = (function (window) { var lo = Hyphenator.languages[lang], wrd = ""; if (String.prototype.normalize) { - wrd = '[\\w' + lo.specialChars + lo.specialChars.normalize("NFD") + hyphen + String.fromCharCode(8204) + '-]{' + min + ',}(?!:\\/\\/)'; + wrd = "[\\w" + lo.specialChars + lo.specialChars.normalize("NFD") + hyphen + String.fromCharCode(8204) + "-]{" + min + ",}(?!:\\/\\/)"; } else { - wrd = '[\\w' + lo.specialChars + hyphen + String.fromCharCode(8204) + '-]{' + min + ',}(?!:\\/\\/)'; + wrd = "[\\w" + lo.specialChars + hyphen + String.fromCharCode(8204) + "-]{" + min + ",}(?!:\\/\\/)"; } return wrd; } @@ -2128,7 +2279,7 @@ Hyphenator = (function (window) { if (enableCache) { lo.cache = {}; //Export - //lo['cache'] = lo.cache; + //lo["cache"] = lo.cache; } if (enableReducedPatternSet) { lo.redPatSet = {}; @@ -2139,20 +2290,20 @@ Hyphenator = (function (window) { if (rightmin > lo.rightmin) { lo.rightmin = rightmin; } - //add exceptions from the pattern file to the local 'exceptions'-obj - if (lo.hasOwnProperty('exceptions')) { + //add exceptions from the pattern file to the local "exceptions"-obj + if (lo.hasOwnProperty("exceptions")) { Hyphenator.addExceptions(lang, lo.exceptions); delete lo.exceptions; } //copy global exceptions to the language specific exceptions - if (exceptions.hasOwnProperty('global')) { + if (exceptions.hasOwnProperty("global")) { if (exceptions.hasOwnProperty(lang)) { - exceptions[lang] += ', ' + exceptions.global; + exceptions[lang] += ", " + exceptions.global; } else { exceptions[lang] = exceptions.global; } } - //move exceptions from the the local 'exceptions'-obj to the 'language'-object + //move exceptions from the the local "exceptions"-obj to the "language"-object if (exceptions.hasOwnProperty(lang)) { lo.exceptions = convertExceptionsToObject(exceptions[lang]); delete exceptions[lang]; @@ -2160,7 +2311,7 @@ Hyphenator = (function (window) { lo.exceptions = {}; } convertPatternsToArray(lo); - lo.genRegExp = new RegExp('(' + createWordRegExp(lang) + ')|(' + url + ')|(' + mail + ')', 'gi'); + lo.genRegExp = new RegExp("(" + createWordRegExp(lang) + ")|(" + url + ")|(" + mail + ")", "gi"); lo.prepared = true; } } @@ -2197,15 +2348,16 @@ Hyphenator = (function (window) { forEachKey(Hyphenator.languages, function (lang) { prepareLanguagesObj(lang); }); - callback('*'); + callback("*"); return; } + callback("urlstyled"); // get all languages that are used and preload the patterns forEachKey(docLanguages, function (lang) { if (!!storage && storage.test(lang)) { Hyphenator.languages[lang] = window.JSON.parse(storage.getItem(lang)); prepareLanguagesObj(lang); - if (exceptions.hasOwnProperty('global')) { + if (exceptions.hasOwnProperty("global")) { tmp1 = convertExceptionsToObject(exceptions.global); forEachKey(tmp1, function (tmp2) { Hyphenator.languages[lang].exceptions[tmp2] = tmp1[tmp2]; @@ -2220,7 +2372,7 @@ Hyphenator = (function (window) { delete exceptions[lang]; } //Replace genRegExp since it may have been changed: - Hyphenator.languages[lang].genRegExp = new RegExp('(' + createWordRegExp(lang) + ')|(' + url + ')|(' + mail + ')', 'gi'); + Hyphenator.languages[lang].genRegExp = new RegExp("(" + createWordRegExp(lang) + ")|(" + url + ")|(" + mail + ")", "gi"); if (enableCache) { if (!Hyphenator.languages[lang].cache) { Hyphenator.languages[lang].cache = {}; @@ -2233,7 +2385,7 @@ Hyphenator = (function (window) { } }); //call languagesLoaded in case language has been loaded manually - //and remoteLoading is on (onload won't fire) + //and remoteLoading is on (onload won"t fire) languagesLoaded(); } @@ -2248,33 +2400,33 @@ Hyphenator = (function (window) { var bdy, myTextNode, text = (Hyphenator.doHyphenation - ? 'Hy-phen-a-tion' - : 'Hyphenation'), - myBox = contextWindow.document.getElementById('HyphenatorToggleBox'); + ? "Hy-phen-a-tion" + : "Hyphenation"), + myBox = contextWindow.document.getElementById("HyphenatorToggleBox"); if (!!myBox) { myBox.firstChild.data = text; } else { - bdy = contextWindow.document.getElementsByTagName('body')[0]; - myBox = createElem('div', contextWindow); - myBox.setAttribute('id', 'HyphenatorToggleBox'); - myBox.setAttribute('class', dontHyphenateClass); + bdy = contextWindow.document.getElementsByTagName("body")[0]; + myBox = createElem("div", contextWindow); + myBox.setAttribute("id", "HyphenatorToggleBox"); + myBox.setAttribute("class", dontHyphenateClass); myTextNode = contextWindow.document.createTextNode(text); myBox.appendChild(myTextNode); myBox.onclick = Hyphenator.toggleHyphenation; - myBox.style.position = 'absolute'; - myBox.style.top = '0px'; - myBox.style.right = '0px'; - myBox.style.zIndex = '1000'; - myBox.style.margin = '0'; - myBox.style.backgroundColor = '#AAAAAA'; - myBox.style.color = '#FFFFFF'; - myBox.style.font = '6pt Arial'; - myBox.style.letterSpacing = '0.2em'; - myBox.style.padding = '3px'; - myBox.style.cursor = 'pointer'; - myBox.style.WebkitBorderBottomLeftRadius = '4px'; - myBox.style.MozBorderRadiusBottomleft = '4px'; - myBox.style.borderBottomLeftRadius = '4px'; + myBox.style.position = "absolute"; + myBox.style.top = "0px"; + myBox.style.right = "0px"; + myBox.style.zIndex = "1000"; + myBox.style.margin = "0"; + myBox.style.backgroundColor = "#AAAAAA"; + myBox.style.color = "#FFFFFF"; + myBox.style.font = "6pt Arial"; + myBox.style.letterSpacing = "0.2em"; + myBox.style.padding = "3px"; + myBox.style.cursor = "pointer"; + myBox.style.WebkitBorderBottomLeftRadius = "4px"; + myBox.style.MozBorderRadiusBottomleft = "4px"; + myBox.style.borderBottomLeftRadius = "4px"; bdy.appendChild(myBox); } }; @@ -2284,7 +2436,7 @@ Hyphenator = (function (window) { * @desc * Replace chars in a word * - * @param {Object} loCharSubst Map of substitutions ({'ä': 'a', 'ü': 'u', …}) + * @param {Object} loCharSubst Map of substitutions ({"ä": "a", "ü": "u", …}) * @param {string} w the word * @returns string The word with substituted characers * @access private @@ -2292,7 +2444,7 @@ Hyphenator = (function (window) { function doCharSubst(loCharSubst, w) { var r = w; forEachKey(loCharSubst, function (subst) { - r = r.replace(new RegExp(subst, 'g'), loCharSubst[subst]); + r = r.replace(new RegExp(subst, "g"), loCharSubst[subst]); }); return r; } @@ -2331,7 +2483,7 @@ Hyphenator = (function (window) { /** * @method Hyphenator~hyphenateCompound * @desc - * Treats compound words accordingly to the 'compound' setting + * Treats compound words accordingly to the "compound" setting * * @param {Object} lo A language object (containing the patterns) * @param {string} lang The language of the word @@ -2343,30 +2495,30 @@ Hyphenator = (function (window) { var hw, parts, i = 0; switch (compound) { case "auto": - parts = word.split('-'); + parts = word.split("-"); while (i < parts.length) { if (parts[i].length >= min) { parts[i] = hyphenateWord(lo, lang, parts[i]); } i += 1; } - hw = parts.join('-'); + hw = parts.join("-"); break; case "all": - parts = word.split('-'); + parts = word.split("-"); while (i < parts.length) { if (parts[i].length >= min) { parts[i] = hyphenateWord(lo, lang, parts[i]); } i += 1; } - hw = parts.join('-' + zeroWidthSpace); + hw = parts.join("-" + zeroWidthSpace); break; case "hyphen": - hw = word.replace('-', '-' + zeroWidthSpace); + hw = word.replace("-", "-" + zeroWidthSpace); break; default: - onError(new Error('Hyphenator.settings: compound setting "' + compound + '" not known.')); + onError(new Error("Hyphenator.settings: compound setting \"" + compound + "\" not known.")); } return hw; } @@ -2376,9 +2528,9 @@ Hyphenator = (function (window) { * @desc * This function is the heart of Hyphenator.js. It returns a hyphenated word. * - * If there's already a {@link Hyphenator~hypen} in the word, the word is returned as it is. + * If there"s already a {@link Hyphenator~hypen} in the word, the word is returned as it is. * If the word is in the exceptions list or in the cache, it is retrieved from it. - * If there's a '-' it calls Hyphenator~hyphenateCompound + * If there"s a "-" it calls Hyphenator~hyphenateCompound * The hyphenated word is returned and (if acivated) cached. * Both special Events onBeforeWordHyphenation and onAfterWordHyphenation are called for the word. * @param {Object} lo A language object (containing the patterns) @@ -2397,7 +2549,7 @@ Hyphenator = (function (window) { hp, hpc, wordLength = word.length, - hw = '', + hw = "", charMap = lo.charMap.code2int, charCode, mappedCharCode, @@ -2409,8 +2561,8 @@ Hyphenator = (function (window) { valueStore = lo.valueStore.keys, wwAsMappedCharCode = wwAsMappedCharCodeStore; word = onBeforeWordHyphenation(word, lang); - if (word === '') { - hw = ''; + if (word === "") { + hw = ""; } else if (enableCache && lo.cache && lo.cache.hasOwnProperty(word)) { //the word is in the cache hw = lo.cache[word]; } else if (word.indexOf(hyphen) !== -1) { @@ -2418,7 +2570,7 @@ Hyphenator = (function (window) { hw = word; } else if (lo.exceptions.hasOwnProperty(word)) { //the word is in the exceptions list hw = lo.exceptions[word].replace(/-/g, hyphen); - } else if (word.indexOf('-') !== -1) { + } else if (word.indexOf("-") !== -1) { hw = hyphenateCompound(lo, lang, word); } else { ww = word.toLowerCase(); @@ -2431,7 +2583,7 @@ Hyphenator = (function (window) { if (word.indexOf("'") !== -1) { ww = ww.replace(/'/g, "’"); //replace APOSTROPHE with RIGHT SINGLE QUOTATION MARK (since the latter is used in the patterns) } - ww = '_' + ww + '_'; + ww = "_" + ww + "_"; wwlen = ww.length; //prepare wwhp and wwAsMappedCharCode while (pstart < wwlen) { @@ -2446,7 +2598,7 @@ Hyphenator = (function (window) { pstart = 0; while (pstart < wwlen) { row = 0; - pattern = ''; + pattern = ""; plen = pstart; while (plen < wwlen) { mappedCharCode = wwAsMappedCharCode[plen]; @@ -2507,140 +2659,6 @@ Hyphenator = (function (window) { return hw; } - /** - * @method Hyphenator~removeHyphenationFromElement - * @desc - * Removes all hyphens from the element. If there are other elements, the function is - * called recursively. - * Removing hyphens is usefull if you like to copy text. Some browsers are buggy when the copy hyphenated texts. - * @param {Object} el The element where to remove hyphenation. - * @access public - */ - function removeHyphenationFromElement(el) { - var h, u, i = 0, n; - //escape hyphen - if (".\\+*?[^]$(){}=!<>|:-".indexOf(hyphen) !== -1) { - h = "\\" + hyphen; - } else { - h = hyphen; - } - //escape hyphen - if (".\\+*?[^]$(){}=!<>|:-".indexOf(urlhyphen) !== -1) { - u = "\\" + urlhyphen; - } else { - u = urlhyphen; - } - n = el.childNodes[i]; - while (!!n) { - if (n.nodeType === 3) { - n.data = n.data.replace(new RegExp(h, 'g'), ''); - n.data = n.data.replace(new RegExp(u, 'g'), ''); - } else if (n.nodeType === 1) { - removeHyphenationFromElement(n); - } - i += 1; - n = el.childNodes[i]; - } - } - - var copy = (function () { - var makeCopy = function () { - var oncopyHandler = function (e) { - e = e || window.event; - var shadow, - selection, - range, - rangeShadow, - restore, - target = e.target || e.srcElement, - currDoc = target.ownerDocument, - bdy = currDoc.getElementsByTagName('body')[0], - targetWindow = currDoc.defaultView || currDoc.parentWindow; - if (target.tagName && dontHyphenate[target.tagName.toLowerCase()]) { - //Safari needs this - return; - } - //create a hidden shadow element - shadow = currDoc.createElement('div'); - //Moving the element out of the screen doesn't work for IE9 (https://connect.microsoft.com/IE/feedback/details/663981/) - //shadow.style.overflow = 'hidden'; - //shadow.style.position = 'absolute'; - //shadow.style.top = '-5000px'; - //shadow.style.height = '1px'; - //doing this instead: - shadow.style.color = window.getComputedStyle - ? targetWindow.getComputedStyle(bdy, null).backgroundColor - : '#FFFFFF'; - shadow.style.fontSize = '0px'; - bdy.appendChild(shadow); - if (!!window.getSelection) { - //FF3, Webkit, IE9 - e.stopPropagation(); - selection = targetWindow.getSelection(); - range = selection.getRangeAt(0); - shadow.appendChild(range.cloneContents()); - removeHyphenationFromElement(shadow); - selection.selectAllChildren(shadow); - restore = function () { - shadow.parentNode.removeChild(shadow); - selection.removeAllRanges(); //IE9 needs that - selection.addRange(range); - }; - } else { - // IE<9 - e.cancelBubble = true; - selection = targetWindow.document.selection; - range = selection.createRange(); - shadow.innerHTML = range.htmlText; - removeHyphenationFromElement(shadow); - rangeShadow = bdy.createTextRange(); - rangeShadow.moveToElementText(shadow); - rangeShadow.select(); - restore = function () { - shadow.parentNode.removeChild(shadow); - if (range.text !== "") { - range.select(); - } - }; - } - zeroTimeOut(restore); - }, - removeOnCopy = function (el) { - var body = el.ownerDocument.getElementsByTagName('body')[0]; - if (!body) { - return; - } - el = el || body; - if (window.removeEventListener) { - el.removeEventListener("copy", oncopyHandler, true); - } else { - el.detachEvent("oncopy", oncopyHandler); - } - }, - registerOnCopy = function (el) { - var body = el.ownerDocument.getElementsByTagName('body')[0]; - if (!body) { - return; - } - el = el || body; - if (window.addEventListener) { - el.addEventListener("copy", oncopyHandler, true); - } else { - el.attachEvent("oncopy", oncopyHandler); - } - }; - return { - oncopyHandler: oncopyHandler, - removeOnCopy: removeOnCopy, - registerOnCopy: registerOnCopy - }; - }; - - return (safeCopy - ? makeCopy() - : false); - }()); - /** * @method Hyphenator~checkIfAllDone @@ -2665,16 +2683,16 @@ Hyphenator = (function (window) { } }); if (allDone) { - if (intermediateState === 'hidden' && unhide === 'progressive') { + if (intermediateState === "hidden" && unhide === "progressive") { elements.each(function (ellist) { var j = 0, l = ellist.length, el; while (j < l) { el = ellist[j].element; - el.className = el.className.replace(unhideClassRegExp, ''); - if (el.className === '') { - el.removeAttribute('class'); + el.className = el.className.replace(unhideClassRegExp, ""); + if (el.className === "") { + el.removeAttribute("class"); } j += 1; } @@ -2701,7 +2719,7 @@ Hyphenator = (function (window) { /** * @method Hyphenator~controlOrphans * @desc - * removes orphans depending on the 'orphanControl'-setting: + * removes orphans depending on the "orphanControl"-setting: * orphanControl === 1: do nothing * orphanControl === 2: prevent last word to be hyphenated * orphanControl === 3: prevent one word on a last line (inserts a nobreaking space) @@ -2719,15 +2737,15 @@ Hyphenator = (function (window) { if (orphanControl === 3 && leadingWhiteSpace === " ") { leadingWhiteSpace = String.fromCharCode(160); } - return leadingWhiteSpace + lastWord.replace(new RegExp(h + "|" + zeroWidthSpace, 'g'), '') + trailingWhiteSpace; + return leadingWhiteSpace + lastWord.replace(new RegExp(h + "|" + zeroWidthSpace, "g"), "") + trailingWhiteSpace; } /** * @method Hyphenator~hyphenateElement * @desc - * Takes the content of the given element and - if there's text - replaces the words - * by hyphenated words. If there's another element, the function is called recursively. - * When all words are hyphenated, the visibility of the element is set to 'visible'. + * Takes the content of the given element and - if there"s text - replaces the words + * by hyphenated words. If there"s another element, the function is called recursively. + * When all words are hyphenated, the visibility of the element is set to "visible". * @param {string} lang - The language-code of the element * @param {Element} elo - The element to hyphenate {@link Hyphenator~elements~ElementCollection~Element} * @access private @@ -2738,7 +2756,20 @@ Hyphenator = (function (window) { n, i, lo; - if (Hyphenator.languages.hasOwnProperty(lang) && Hyphenator.doHyphenation) { + if (lang === "urlstyled" && Hyphenator.doHyphenation) { + i = 0; + n = el.childNodes[i]; + while (!!n) { + if ( + n.nodeType === 3 //type 3 = #text + && (/\S/).test(n.data) + ) { //not just white space + n.data = hyphenateURL(n.data); + } + i += 1; + n = el.childNodes[i]; + } + } else if (Hyphenator.languages.hasOwnProperty(lang) && Hyphenator.doHyphenation) { lo = Hyphenator.languages[lang]; hyphenate = function (match, word, url, mail) { var r; @@ -2749,15 +2780,14 @@ Hyphenator = (function (window) { } return r; }; - if (safeCopy && (el.tagName.toLowerCase() !== 'body')) { - copy.registerOnCopy(el); - } i = 0; n = el.childNodes[i]; while (!!n) { - if (n.nodeType === 3 //type 3 = #text + if ( + n.nodeType === 3 //type 3 = #text && (/\S/).test(n.data) //not just white space - && n.data.length >= min) { //longer then min + && n.data.length >= min + ) { //longer then min n.data = n.data.replace(lo.genRegExp, hyphenate); if (orphanControl !== 1) { //prevent last word from being hyphenated @@ -2768,14 +2798,14 @@ Hyphenator = (function (window) { n = el.childNodes[i]; } } - if (intermediateState === 'hidden' && unhide === 'wait') { - el.className = el.className.replace(hideClassRegExp, ''); - if (el.className === '') { - el.removeAttribute('class'); + if (intermediateState === "hidden" && unhide === "wait") { + el.className = el.className.replace(hideClassRegExp, ""); + if (el.className === "") { + el.removeAttribute("class"); } } - if (intermediateState === 'hidden' && unhide === 'progressive') { - el.className = el.className.replace(hideClassRegExp, ' ' + unhideClass); + if (intermediateState === "hidden" && unhide === "progressive") { + el.className = el.className.replace(hideClassRegExp, " " + unhideClass); } elo.hyphenated = true; elements.counters[1] += 1; @@ -2788,7 +2818,7 @@ Hyphenator = (function (window) { * @method Hyphenator~hyphenateLanguageElements * @desc * Calls hyphenateElement() for all elements of the specified language. - * If the language is '*' then all elements are hyphenated. + * If the language is "*" then all elements are hyphenated. * This is done with a setTimout * to prevent a "long running Script"-alert when hyphenating large pages. * Therefore a tricky bind()-function was necessary. @@ -2804,7 +2834,7 @@ Hyphenator = (function (window) { }*/ var i = 0, l; - if (lang === '*') { + if (lang === "*") { elements.each(function (lang, ellist) { var j = 0, le = ellist.length; @@ -2838,9 +2868,6 @@ Hyphenator = (function (window) { l = ellist.length; while (i < l) { removeHyphenationFromElement(ellist[i].element); - if (safeCopy) { - copy.removeOnCopy(ellist[i].element); - } ellist[i].hyphenated = false; i += 1; } @@ -2858,7 +2885,7 @@ Hyphenator = (function (window) { var s; function makeStorage(s) { var store = s, - prefix = 'Hyphenator_' + Hyphenator.version + '_', + prefix = "Hyphenator_" + Hyphenator.version + "_", deferred = [], test = function (name) { var val = store.getItem(prefix + name); @@ -2882,25 +2909,27 @@ Hyphenator = (function (window) { }; } try { - if (storageType !== 'none' && + if ( + storageType !== "none" && window.JSON !== undefined && window.localStorage !== undefined && window.sessionStorage !== undefined && window.JSON.stringify !== undefined && - window.JSON.parse !== undefined) { + window.JSON.parse !== undefined + ) { switch (storageType) { - case 'session': + case "session": s = window.sessionStorage; break; - case 'local': + case "local": s = window.localStorage; break; default: s = undefined; } //check for private mode - s.setItem('storageTest', '1'); - s.removeItem('storageTest'); + s.setItem("storageTest", "1"); + s.removeItem("storageTest"); } } catch (ignore) { //FF throws an error if DOM.storage.enabled is set to false @@ -2924,39 +2953,39 @@ Hyphenator = (function (window) { return; } var settings = { - 'STORED': true, - 'classname': hyphenateClass, - 'urlclassname': urlHyphenateClass, - 'donthyphenateclassname': dontHyphenateClass, - 'minwordlength': min, - 'hyphenchar': hyphen, - 'urlhyphenchar': urlhyphen, - 'togglebox': toggleBox, - 'displaytogglebox': displayToggleBox, - 'remoteloading': enableRemoteLoading, - 'enablecache': enableCache, - 'enablereducedpatternset': enableReducedPatternSet, - 'onhyphenationdonecallback': onHyphenationDone, - 'onerrorhandler': onError, - 'onwarninghandler': onWarning, - 'intermediatestate': intermediateState, - 'selectorfunction': selectorFunction || mySelectorFunction, - 'safecopy': safeCopy, - 'doframes': doFrames, - 'storagetype': storageType, - 'orphancontrol': orphanControl, - 'dohyphenation': Hyphenator.doHyphenation, - 'persistentconfig': persistentConfig, - 'defaultlanguage': defaultLanguage, - 'useCSS3hyphenation': css3, - 'unhide': unhide, - 'onbeforewordhyphenation': onBeforeWordHyphenation, - 'onafterwordhyphenation': onAfterWordHyphenation, - 'leftmin': leftmin, - 'rightmin': rightmin, - 'compound': compound + "STORED": true, + "classname": hyphenateClass, + "urlclassname": urlHyphenateClass, + "donthyphenateclassname": dontHyphenateClass, + "minwordlength": min, + "hyphenchar": hyphen, + "urlhyphenchar": urlhyphen, + "togglebox": toggleBox, + "displaytogglebox": displayToggleBox, + "remoteloading": enableRemoteLoading, + "enablecache": enableCache, + "enablereducedpatternset": enableReducedPatternSet, + "onhyphenationdonecallback": onHyphenationDone, + "onerrorhandler": onError, + "onwarninghandler": onWarning, + "intermediatestate": intermediateState, + "selectorfunction": selectorFunction || mySelectorFunction, + "safecopy": safeCopy, + "doframes": doFrames, + "storagetype": storageType, + "orphancontrol": orphanControl, + "dohyphenation": Hyphenator.doHyphenation, + "persistentconfig": persistentConfig, + "defaultlanguage": defaultLanguage, + "useCSS3hyphenation": css3, + "unhide": unhide, + "onbeforewordhyphenation": onBeforeWordHyphenation, + "onafterwordhyphenation": onAfterWordHyphenation, + "leftmin": leftmin, + "rightmin": rightmin, + "compound": compound }; - storage.setItem('config', window.JSON.stringify(settings)); + storage.setItem("config", window.JSON.stringify(settings)); } /** @@ -2967,8 +2996,8 @@ Hyphenator = (function (window) { */ function restoreConfiguration() { var settings; - if (storage.test('config')) { - settings = window.JSON.parse(storage.getItem('config')); + if (storage.test("config")) { + settings = window.JSON.parse(storage.getItem("config")); Hyphenator.config(settings); } } @@ -2984,12 +3013,12 @@ Hyphenator = (function (window) { * minor release: new languages, improvements * @access public */ - var version = '5.2.0(devel)'; + var version = '5.3.0'; /** * @member {boolean} Hyphenator.doHyphenation * @desc - * If doHyphenation is set to false, hyphenateDocument() isn't called. + * If doHyphenation is set to false, hyphenateDocument() isn"t called. * All other actions are performed. * @default true */ @@ -3025,7 +3054,7 @@ Hyphenator = (function (window) { * @example * <script src = "Hyphenator.js" type = "text/javascript"></script>  * <script type = "text/javascript"> -  * Hyphenator.config({'minwordlength':4,'hyphenchar':'|'}); +  * Hyphenator.config({"minwordlength":4,"hyphenchar":"|"}); * Hyphenator.run();  * </script> */ @@ -3037,185 +3066,185 @@ Hyphenator = (function (window) { if (t === type) { r = true; } else { - onError(new Error('Config onError: ' + name + ' must be of type ' + type)); + onError(new Error("Config onError: " + name + " must be of type " + type)); r = false; } return r; }; - if (obj.hasOwnProperty('storagetype')) { - if (assert('storagetype', 'string')) { + if (obj.hasOwnProperty("storagetype")) { + if (assert("storagetype", "string")) { storageType = obj.storagetype; } if (!storage) { createStorage(); } } - if (!obj.hasOwnProperty('STORED') && storage && obj.hasOwnProperty('persistentconfig') && obj.persistentconfig === true) { + if (!obj.hasOwnProperty("STORED") && storage && obj.hasOwnProperty("persistentconfig") && obj.persistentconfig === true) { restoreConfiguration(); } forEachKey(obj, function (key) { switch (key) { - case 'STORED': + case "STORED": break; - case 'classname': - if (assert('classname', 'string')) { + case "classname": + if (assert("classname", "string")) { hyphenateClass = obj[key]; } break; - case 'urlclassname': - if (assert('urlclassname', 'string')) { + case "urlclassname": + if (assert("urlclassname", "string")) { urlHyphenateClass = obj[key]; } break; - case 'donthyphenateclassname': - if (assert('donthyphenateclassname', 'string')) { + case "donthyphenateclassname": + if (assert("donthyphenateclassname", "string")) { dontHyphenateClass = obj[key]; } break; - case 'minwordlength': - if (assert('minwordlength', 'number')) { + case "minwordlength": + if (assert("minwordlength", "number")) { min = obj[key]; } break; - case 'hyphenchar': - if (assert('hyphenchar', 'string')) { - if (obj.hyphenchar === '­') { + case "hyphenchar": + if (assert("hyphenchar", "string")) { + if (obj.hyphenchar === "­") { obj.hyphenchar = String.fromCharCode(173); } hyphen = obj[key]; } break; - case 'urlhyphenchar': - if (obj.hasOwnProperty('urlhyphenchar')) { - if (assert('urlhyphenchar', 'string')) { + case "urlhyphenchar": + if (obj.hasOwnProperty("urlhyphenchar")) { + if (assert("urlhyphenchar", "string")) { urlhyphen = obj[key]; } } break; - case 'togglebox': - if (assert('togglebox', 'function')) { + case "togglebox": + if (assert("togglebox", "function")) { toggleBox = obj[key]; } break; - case 'displaytogglebox': - if (assert('displaytogglebox', 'boolean')) { + case "displaytogglebox": + if (assert("displaytogglebox", "boolean")) { displayToggleBox = obj[key]; } break; - case 'remoteloading': - if (assert('remoteloading', 'boolean')) { + case "remoteloading": + if (assert("remoteloading", "boolean")) { enableRemoteLoading = obj[key]; } break; - case 'enablecache': - if (assert('enablecache', 'boolean')) { + case "enablecache": + if (assert("enablecache", "boolean")) { enableCache = obj[key]; } break; - case 'enablereducedpatternset': - if (assert('enablereducedpatternset', 'boolean')) { + case "enablereducedpatternset": + if (assert("enablereducedpatternset", "boolean")) { enableReducedPatternSet = obj[key]; } break; - case 'onhyphenationdonecallback': - if (assert('onhyphenationdonecallback', 'function')) { + case "onhyphenationdonecallback": + if (assert("onhyphenationdonecallback", "function")) { onHyphenationDone = obj[key]; } break; - case 'onerrorhandler': - if (assert('onerrorhandler', 'function')) { + case "onerrorhandler": + if (assert("onerrorhandler", "function")) { onError = obj[key]; } break; - case 'onwarninghandler': - if (assert('onwarninghandler', 'function')) { + case "onwarninghandler": + if (assert("onwarninghandler", "function")) { onWarning = obj[key]; } break; - case 'intermediatestate': - if (assert('intermediatestate', 'string')) { + case "intermediatestate": + if (assert("intermediatestate", "string")) { intermediateState = obj[key]; } break; - case 'selectorfunction': - if (assert('selectorfunction', 'function')) { + case "selectorfunction": + if (assert("selectorfunction", "function")) { selectorFunction = obj[key]; } break; - case 'safecopy': - if (assert('safecopy', 'boolean')) { + case "safecopy": + if (assert("safecopy", "boolean")) { safeCopy = obj[key]; } break; - case 'doframes': - if (assert('doframes', 'boolean')) { + case "doframes": + if (assert("doframes", "boolean")) { doFrames = obj[key]; } break; - case 'storagetype': - if (assert('storagetype', 'string')) { + case "storagetype": + if (assert("storagetype", "string")) { storageType = obj[key]; } break; - case 'orphancontrol': - if (assert('orphancontrol', 'number')) { + case "orphancontrol": + if (assert("orphancontrol", "number")) { orphanControl = obj[key]; } break; - case 'dohyphenation': - if (assert('dohyphenation', 'boolean')) { + case "dohyphenation": + if (assert("dohyphenation", "boolean")) { Hyphenator.doHyphenation = obj[key]; } break; - case 'persistentconfig': - if (assert('persistentconfig', 'boolean')) { + case "persistentconfig": + if (assert("persistentconfig", "boolean")) { persistentConfig = obj[key]; } break; - case 'defaultlanguage': - if (assert('defaultlanguage', 'string')) { + case "defaultlanguage": + if (assert("defaultlanguage", "string")) { defaultLanguage = obj[key]; } break; - case 'useCSS3hyphenation': - if (assert('useCSS3hyphenation', 'boolean')) { + case "useCSS3hyphenation": + if (assert("useCSS3hyphenation", "boolean")) { css3 = obj[key]; } break; - case 'unhide': - if (assert('unhide', 'string')) { + case "unhide": + if (assert("unhide", "string")) { unhide = obj[key]; } break; - case 'onbeforewordhyphenation': - if (assert('onbeforewordhyphenation', 'function')) { + case "onbeforewordhyphenation": + if (assert("onbeforewordhyphenation", "function")) { onBeforeWordHyphenation = obj[key]; } break; - case 'onafterwordhyphenation': - if (assert('onafterwordhyphenation', 'function')) { + case "onafterwordhyphenation": + if (assert("onafterwordhyphenation", "function")) { onAfterWordHyphenation = obj[key]; } break; - case 'leftmin': - if (assert('leftmin', 'number')) { + case "leftmin": + if (assert("leftmin", "number")) { leftmin = obj[key]; } break; - case 'rightmin': - if (assert('rightmin', 'number')) { + case "rightmin": + if (assert("rightmin", "number")) { rightmin = obj[key]; } break; - case 'compound': - if (assert('compound', 'string')) { + case "compound": + if (assert("compound", "string")) { compound = obj[key]; } break; default: - onError(new Error('Hyphenator.config: property ' + key + ' not known.')); + onError(new Error("Hyphenator.config: property " + key + " not known.")); } }); if (storage && persistentConfig) { @@ -3227,7 +3256,7 @@ Hyphenator = (function (window) { * @method Hyphenator.run * @desc * Bootstrap function that starts all hyphenation processes when called: - * Tries to create storage if required and calls {@link Hyphenator~runWhenLoaded} on 'window' handing over the callback 'process' + * Tries to create storage if required and calls {@link Hyphenator~runWhenLoaded} on "window" handing over the callback "process" * @access public * @example * <script src = "Hyphenator.js" type = "text/javascript"></script> @@ -3241,7 +3270,7 @@ Hyphenator = (function (window) { */ var process = function () { try { - if (contextWindow.document.getElementsByTagName('frameset').length > 0) { + if (contextWindow.document.getElementsByTagName("frameset").length > 0) { return; //we are in a frameset } autoSetMainLanguage(undefined); @@ -3271,13 +3300,13 @@ Hyphenator = (function (window) { * @access public * @example <script src = "Hyphenator.js" type = "text/javascript"></script>  * <script type = "text/javascript"> -  *   Hyphenator.addExceptions('de','ziem-lich, Wach-stube'); +  *   Hyphenator.addExceptions("de","ziem-lich, Wach-stube"); * Hyphenator.run();  * </script> */ function addExceptions(lang, words) { - if (lang === '') { - lang = 'global'; + if (lang === "") { + lang = "global"; } if (exceptions.hasOwnProperty(lang)) { exceptions[lang] += ", " + words; @@ -3292,14 +3321,14 @@ Hyphenator = (function (window) { * @desc * Hyphenates the target. The language patterns must be loaded. * If the target is a string, the hyphenated string is returned, - * if it's an object, the values are hyphenated directly and undefined (aka nothing) is returned + * if it"s an object, the values are hyphenated directly and undefined (aka nothing) is returned * @param {string|Object} target the target to be hyphenated * @param {string} lang the language of the target * @returns {string|undefined} * @example <script src = "Hyphenator.js" type = "text/javascript"></script> * <script src = "patterns/en.js" type = "text/javascript"></script>  * <script type = "text/javascript"> - * var t = Hyphenator.hyphenate('Hyphenation', 'en'); //Hy|phen|ation + * var t = Hyphenator.hyphenate("Hyphenation", "en"); //Hy|phen|ation * </script> */ function hyphenate(target, lang) { @@ -3318,16 +3347,18 @@ Hyphenator = (function (window) { } return r; }; - if (typeof target === 'object' && !(typeof target === 'string' || target.constructor === String)) { + if (typeof target === "object" && !(typeof target === "string" || target.constructor === String)) { i = 0; n = target.childNodes[i]; while (!!n) { - if (n.nodeType === 3 //type 3 = #text + if ( + n.nodeType === 3 //type 3 = #text && (/\S/).test(n.data) //not just white space - && n.data.length >= min) { //longer then min + && n.data.length >= min + ) { //longer then min n.data = n.data.replace(lo.genRegExp, turnout); } else if (n.nodeType === 1) { - if (n.lang !== '') { + if (n.lang !== "") { Hyphenator.hyphenate(n, n.lang); } else { Hyphenator.hyphenate(n, lang); @@ -3336,18 +3367,18 @@ Hyphenator = (function (window) { i += 1; n = target.childNodes[i]; } - } else if (typeof target === 'string' || target.constructor === String) { + } else if (typeof target === "string" || target.constructor === String) { return target.replace(lo.genRegExp, turnout); } } else { - onError(new Error('Language "' + lang + '" is not loaded.')); + onError(new Error("Language \"" + lang + "\" is not loaded.")); } } /** * @method Hyphenator.getRedPatternSet * @desc - * Returns the reduced pattern set: an object looking like: {'patk': pat} + * Returns the reduced pattern set: an object looking like: {"patk": pat} * @param {string} lang the language patterns are stored for * @returns {Object.} * @access public @@ -3365,7 +3396,7 @@ Hyphenator = (function (window) { function getConfigFromURI() { var loc = null, re = {}, - jsArray = contextWindow.document.getElementsByTagName('script'), + jsArray = contextWindow.document.getElementsByTagName("script"), i = 0, j = 0, l = jsArray.length, @@ -3373,29 +3404,31 @@ Hyphenator = (function (window) { gp, option; while (i < l) { - if (!!jsArray[i].getAttribute('src')) { - loc = jsArray[i].getAttribute('src'); + if (!!jsArray[i].getAttribute("src")) { + loc = jsArray[i].getAttribute("src"); } - if (loc && (loc.indexOf('Hyphenator.js?') !== -1)) { - s = loc.indexOf('Hyphenator.js?'); - gp = loc.substring(s + 14).split('&'); + if (loc && (loc.indexOf("Hyphenator.js?") !== -1)) { + s = loc.indexOf("Hyphenator.js?"); + gp = loc.substring(s + 14).split("&"); while (j < gp.length) { - option = gp[j].split('='); - if (option[0] !== 'bm') { - if (option[1] === 'true') { + option = gp[j].split("="); + if (option[0] !== "bm") { + if (option[1] === "true") { option[1] = true; - } else if (option[1] === 'false') { + } else if (option[1] === "false") { option[1] = false; } else if (isFinite(option[1])) { option[1] = parseInt(option[1], 10); } - if (option[0] === 'togglebox' || - option[0] === 'onhyphenationdonecallback' || - option[0] === 'onerrorhandler' || - option[0] === 'selectorfunction' || - option[0] === 'onbeforewordhyphenation' || - option[0] === 'onafterwordhyphenation') { - option[1] = new Function('', option[1]); + if ( + option[0] === "togglebox" || + option[0] === "onhyphenationdonecallback" || + option[0] === "onerrorhandler" || + option[0] === "selectorfunction" || + option[0] === "onbeforewordhyphenation" || + option[0] === "onafterwordhyphenation" + ) { + option[1] = new Function("", option[1]); } re[option[0]] = option[1]; } @@ -3417,9 +3450,12 @@ Hyphenator = (function (window) { function toggleHyphenation() { if (Hyphenator.doHyphenation) { if (!!css3hyphenateClassHandle) { - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, css3_h9n.property + ': none;'); + css3hyphenateClassHandle.setRule("." + css3hyphenateClass, css3_h9n.property + ": none;"); } removeHyphenationFromDocument(); + if (safeCopy) { + copy.removeOnCopy(); + } Hyphenator.doHyphenation = false; storeConfiguration(); if (displayToggleBox) { @@ -3427,10 +3463,13 @@ Hyphenator = (function (window) { } } else { if (!!css3hyphenateClassHandle) { - css3hyphenateClassHandle.setRule('.' + css3hyphenateClass, css3_h9n.property + ': auto;'); + css3hyphenateClassHandle.setRule("." + css3hyphenateClass, css3_h9n.property + ": auto;"); } Hyphenator.doHyphenation = true; - hyphenateLanguageElements('*'); + hyphenateLanguageElements("*"); + if (safeCopy) { + copy.reactivateOnCopy(); + } storeConfiguration(); if (displayToggleBox) { toggleBox(); @@ -3456,23 +3495,23 @@ Hyphenator = (function (window) { //Export properties/methods (for google closure compiler) /**** to be moved to external file -Hyphenator['languages'] = Hyphenator.languages; -Hyphenator['config'] = Hyphenator.config; -Hyphenator['run'] = Hyphenator.run; -Hyphenator['addExceptions'] = Hyphenator.addExceptions; -Hyphenator['hyphenate'] = Hyphenator.hyphenate; -Hyphenator['getRedPatternSet'] = Hyphenator.getRedPatternSet; -Hyphenator['isBookmarklet'] = Hyphenator.isBookmarklet; -Hyphenator['getConfigFromURI'] = Hyphenator.getConfigFromURI; -Hyphenator['toggleHyphenation'] = Hyphenator.toggleHyphenation; -window['Hyphenator'] = Hyphenator; +Hyphenator["languages"] = Hyphenator.languages; +Hyphenator["config"] = Hyphenator.config; +Hyphenator["run"] = Hyphenator.run; +Hyphenator["addExceptions"] = Hyphenator.addExceptions; +Hyphenator["hyphenate"] = Hyphenator.hyphenate; +Hyphenator["getRedPatternSet"] = Hyphenator.getRedPatternSet; +Hyphenator["isBookmarklet"] = Hyphenator.isBookmarklet; +Hyphenator["getConfigFromURI"] = Hyphenator.getConfigFromURI; +Hyphenator["toggleHyphenation"] = Hyphenator.toggleHyphenation; +window["Hyphenator"] = Hyphenator; */ /* * call Hyphenator if it is a Bookmarklet */ if (Hyphenator.isBookmarklet) { - Hyphenator.config({displaytogglebox: true, intermediatestate: 'visible', storagetype: 'local', doframes: true, useCSS3hyphenation: true}); + Hyphenator.config({displaytogglebox: true, intermediatestate: "visible", storagetype: "local", doframes: true, useCSS3hyphenation: true}); Hyphenator.config(Hyphenator.getConfigFromURI()); Hyphenator.run(); } diff --git a/src/main/webapp/bower_components/hyphenator/Hyphenator_Loader.js b/src/main/webapp/bower_components/hyphenator/Hyphenator_Loader.js index 697e0de389..2848cecea4 100644 --- a/src/main/webapp/bower_components/hyphenator/Hyphenator_Loader.js +++ b/src/main/webapp/bower_components/hyphenator/Hyphenator_Loader.js @@ -1,5 +1,5 @@ -/** @license Hyphenator_Loader 5.2.0(devel) - client side hyphenation for webbrowsers - * Copyright (C) 2015 Mathias Nater, Zürich (mathiasnater at gmail dot com) +/** @license Hyphenator_Loader 5.3.0 - client side hyphenation for webbrowsers + * Copyright (C) 2017 Mathias Nater, Zürich (mathiasnater at gmail dot com) * https://github.com/mnater/Hyphenator * * Released under the MIT license @@ -11,7 +11,7 @@ * @description Checks if there's CSS-hyphenation available for the given languages and * loads and runs Hyphenator if there's no CSS-hyphenation * @author Mathias Nater, mathias@mnn.ch - * @version 5.2.0(devel) + * @version 5.3.0 * @namespace Holds all methods and properties */ diff --git a/src/main/webapp/bower_components/hyphenator/bower.json b/src/main/webapp/bower_components/hyphenator/bower.json index cf4515e77e..a04d0a777b 100644 --- a/src/main/webapp/bower_components/hyphenator/bower.json +++ b/src/main/webapp/bower_components/hyphenator/bower.json @@ -1,9 +1,8 @@ { "name": "hyphenator", - "version": "5.1.0", + "version": "5.3.0", "main": "Hyphenator.js", "ignore": [ - "favicon.ico", - "Hyphenator_observable.js" + "favicon.ico" ] } diff --git a/src/main/webapp/bower_components/hyphenator/package.json b/src/main/webapp/bower_components/hyphenator/package.json index 9ed496cb97..0f9750232c 100644 --- a/src/main/webapp/bower_components/hyphenator/package.json +++ b/src/main/webapp/bower_components/hyphenator/package.json @@ -1,6 +1,6 @@ { "name": "hyphenator.js", - "version": "5.1.0", + "version": "5.3.0", "description": "Client-side hyphenation of HTML-Documents", "repository": { "type": "git", diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/index.html b/src/main/webapp/bower_components/hyphenator/testsuite/index.html index 7176289099..713de99ab9 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/index.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/index.html @@ -201,7 +201,8 @@

    The Hyphenator Testsuite

    {exec: true, path: 'test124.html'}, {exec: true, path: 'test125.html'}, {exec: true, path: 'test126.html'}, - {exec: true, path: 'test127.html'} + {exec: true, path: 'test127.html'}, + {exec: true, path: 'test128.html'} ], testframe = document.getElementById('testframe'), currentTest = 1, total = 'passed'; diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test120.html b/src/main/webapp/bower_components/hyphenator/testsuite/test120.html index cd04cb2c99..d36917b5c9 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test120.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test120.html @@ -38,7 +38,6 @@ } else { msg.result = 'failed'; } - console.log(msg.result); parent.postMessage(JSON.stringify(msg), window.location.href); } }); diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test124.html b/src/main/webapp/bower_components/hyphenator/testsuite/test124.html index e80233f311..49434d58e4 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test124.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test124.html @@ -75,8 +75,10 @@ if (container.innerHTML == ref2) { msg.result = "passed"; } - parent.postMessage(JSON.stringify(msg), window.location.href); + } else { + msg.result = "visual"; } + parent.postMessage(JSON.stringify(msg), window.location.href); }, 1000); }; diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test125.html b/src/main/webapp/bower_components/hyphenator/testsuite/test125.html index 560315e334..f91901529f 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test125.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test125.html @@ -43,7 +43,6 @@ } else { msg.result = 'failed'; } - console.log(msg) parent.postMessage(JSON.stringify(msg), window.location.href); } }); diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test127.html b/src/main/webapp/bower_components/hyphenator/testsuite/test127.html index 3233073bb6..136a4f78b9 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test127.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test127.html @@ -55,7 +55,7 @@ -

    <<- index | <- Prev | Next ->

    +

    <<- index | <- Prev | Next ->

    Test 127

    Call togglehyphenation w/o toggleBox

    diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test128.html b/src/main/webapp/bower_components/hyphenator/testsuite/test128.html index 724b2e2b95..4b220434d8 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test128.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test128.html @@ -1,5 +1,5 @@ - + Hyphenator.js – Test 128 @@ -10,58 +10,47 @@ margin-right:25%; } #test { - background-color: #ffd6d6; + background-color: #ffd6d6; } #ref { - background-color: #d6ffd6; - } - .width-10 { - width: 10%; - -ms-hyphenate-limit-zone: 1px; + background-color: #d6ffd6; } -

    <<- index | <- Prev | Next ->

    +

    <<- index | <- Prev | Next ->

    Test 128

    -

    Test for issue 302

    +

    Test oncopy behaviour.

    -
      -
    • -
      Ver­zend­huis­kre­diet
      -
      Door­lo­pend kre­diet
      -
    • -
    • -
      Ver­zend­huis­kre­diet
      -
    • -
    • -
      Door­lo­pend kre­diet
      -
    • -
    - +
    + Copy the following text: +

    An alert saying 'copied' should pop up.

    +

    http://www.domainname.tld/path/to/file.ext

    +
    +

    http://www.domainname.tld/path/to/file.ext

    + \ No newline at end of file diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test13.html b/src/main/webapp/bower_components/hyphenator/testsuite/test13.html index c6824c0cc1..99d2f030dd 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test13.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test13.html @@ -66,6 +66,9 @@

    Test 13

    http://www.domain.com/?adid=b2plbm5pbmdzLjY1NDM1LjU0MDNAbmluZXNoYXJwLmFwbGl0cmFrLmNvbQ
    http://www.einsehrlangerdomainname.com/
    http://www.domain.longtld/
    + http://www.domain.co.uk/
    + http://www.domain.co.uk
    + http://www.domain.co.uk/file.html

    @@ -84,6 +87,9 @@

    Test 13

    http://•www.•domain.•com/?•adi•d=b2p•lbm5•pbmd•zLjY•1NDM•1LjU•0MDN•Abml•uZXN•oYXJ•wLmF•wbGl•0cmF•rLmN•vbQ
    http://•www.•ein•sehr•lang•erdo•main•name.•com/
    http://•www.•domain.•longtld/
    + http://•www.•domain.•co.•uk/
    + http://•www.•domain.•co.•uk
    + http://•www.•domain.•co.•uk/•file.•html

    diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test35.html b/src/main/webapp/bower_components/hyphenator/testsuite/test35.html index 598a5190a1..e645309aa9 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test35.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test35.html @@ -11,51 +11,51 @@ margin-right:25%; } h2 + p { - background-color: #ffd6d6; + background-color: #ffd6d6; } h2 + p + p { - background-color: #d6ffd6; + background-color: #d6ffd6; } -

    <<- index | <- Prev | Next ->

    +

    <<- index | <- Prev | Next ->

    Test 35

    Check support for other languages.

    -

    Armenian

    +

    Armenian

    Հայերենն ունի վեց ձայնավոր, մեկ կիսաձայն և երեսուն բաղաձայն հնչյուններ

    -

    Հա|յե|րենն ունի վեց ձայնա|վոր, մեկ կի|սա|ձայն և ե|րե|սուն բա|ղա|ձայն հնչյուններ

    -

    Belarusian

    +

    Հա|յե|րենն ունի վեց ձայնա|վոր, մեկ կի|սա|ձայն և ե|րե|սուն բա|ղա|ձայն հնչյուններ

    +

    Belarusian

    БЕЛАРУ́СКАЯ МО́ВА, мова беларусаў, уваходзіць у сям’ю індаеўрапейскіх моў, яе славянскай групы і ўсходнеславянскіх моваў падгрупы, на якой размаўляюць у Беларусі і па ўсім свеце, галоўным чынам у Расіі, Украіне, Польшчы.

    -

    БЕ|ЛА|РУ́СКАЯ МО́ВА, мо|ва бе|ла|ру|саў, ува|хо|дзіць у сям’ю інда|еў|ра|пей|скіх моў, яе сла|вянскай гру|пы і ўсхо|дне|сла|вянскіх мо|ваў па|д|гру|пы, на якой ра|з|маў|ля|юць у Бе|ла|ру|сі і па ўсім све|це, га|лоў|ным чы|нам у Ра|сіі, Укра|іне, По|ль|шчы.

    +

    БЕ|ЛА|РУ́СКАЯ МО́ВА, мо|ва бе|ла|ру|саў, ува|хо|дзіць у сям’ю інда|еў|ра|пей|скіх моў, яе сла|вянскай гру|пы і ўсхо|дне|сла|вянскіх мо|ваў па|д|гру|пы, на якой ра|з|маў|ля|юць у Бе|ла|ру|сі і па ўсім све|це, га|лоў|ным чы|нам у Ра|сіі, Укра|іне, По|ль|шчы.

    Russian

    Типогра́фика — графическое оформление печатного текста посредством набора и вёрстки с использованием норм и правил, специфических для данного языка.

    Ти|по|гра́фи|ка — гра|фи|че|ское оформ|ле|ние пе|чат|но|го тек|ста по|сред|ством на|бо|ра и вёрст|ки с ис|поль|зо|ва|ни|ем норм и пра|вил, спе|ци|фи|че|ских для дан|но|го язы|ка.

    diff --git a/src/main/webapp/bower_components/hyphenator/testsuite/test81.html b/src/main/webapp/bower_components/hyphenator/testsuite/test81.html index 6392b8c363..93055b07b6 100644 --- a/src/main/webapp/bower_components/hyphenator/testsuite/test81.html +++ b/src/main/webapp/bower_components/hyphenator/testsuite/test81.html @@ -34,7 +34,6 @@ } else { msg.result = 'failed'; } - console.log(msg); parent.postMessage(JSON.stringify(msg), window.location.href); } }); diff --git a/src/main/webapp/bower_components/js-xlsx/.bower.json b/src/main/webapp/bower_components/js-xlsx/.bower.json index fe3c801b15..d3648011a0 100644 --- a/src/main/webapp/bower_components/js-xlsx/.bower.json +++ b/src/main/webapp/bower_components/js-xlsx/.bower.json @@ -19,14 +19,14 @@ "js-xls", "js-xlsx" ], - "version": "0.11.5", - "_release": "0.11.5", + "version": "0.11.6", + "_release": "0.11.6", "_resolution": { "type": "version", - "tag": "v0.11.5", - "commit": "af3df44633ec803990a976eb417a3f366597b952" + "tag": "v0.11.6", + "commit": "f968dfe4ed5c267a16aa004066ccba0c446ab23b" }, "_source": "https://github.com/SheetJS/js-xlsx.git", - "_target": "^0.11.5", + "_target": "^0.11.6", "_originalSource": "js-xlsx" } \ No newline at end of file diff --git a/src/main/webapp/bower_components/js-xlsx/CHANGELOG.md b/src/main/webapp/bower_components/js-xlsx/CHANGELOG.md index dd875f18b7..80784a7f8e 100644 --- a/src/main/webapp/bower_components/js-xlsx/CHANGELOG.md +++ b/src/main/webapp/bower_components/js-xlsx/CHANGELOG.md @@ -4,6 +4,10 @@ This log is intended to keep track of backwards-incompatible changes, including but not limited to API changes and file location changes. Minor behavioral changes may not be included if they are not expected to break existing code. +## 0.11.6 (2017-10-16) + +* Semicolon-delimited files are detected + ## 0.11.5 (2017-09-30) * Bower main script shifted to full version diff --git a/src/main/webapp/bower_components/js-xlsx/Makefile b/src/main/webapp/bower_components/js-xlsx/Makefile index 706cfb8c09..f1e351a871 100644 --- a/src/main/webapp/bower_components/js-xlsx/Makefile +++ b/src/main/webapp/bower_components/js-xlsx/Makefile @@ -213,7 +213,7 @@ book: readme graph ## Update summary for documentation " > misc/docs/README.md DEMOMDS=$(sort $(wildcard demos/*/README.md)) -MDLINT=$(DEMODS) $(READEPS) demos/README.md +MDLINT=$(DEMOMDS) $(READEPS) demos/README.md .PHONY: mdlint mdlint: $(MDLINT) ## Check markdown documents alex $^ diff --git a/src/main/webapp/bower_components/js-xlsx/README.md b/src/main/webapp/bower_components/js-xlsx/README.md index 2c7937e6c0..48815f3877 100644 --- a/src/main/webapp/bower_components/js-xlsx/README.md +++ b/src/main/webapp/bower_components/js-xlsx/README.md @@ -78,6 +78,8 @@ enhancements, additional features by request, and dedicated support. * [Sheet Objects](#sheet-objects) + [Worksheet Object](#worksheet-object) + [Chartsheet Object](#chartsheet-object) + + [Macrosheet Object](#macrosheet-object) + + [Dialogsheet Object](#dialogsheet-object) * [Workbook Object](#workbook-object) + [Workbook File Properties](#workbook-file-properties) * [Workbook-Level Attributes](#workbook-level-attributes) @@ -91,6 +93,7 @@ enhancements, additional features by request, and dedicated support. + [Hyperlinks](#hyperlinks) + [Cell Comments](#cell-comments) + [Sheet Visibility](#sheet-visibility) + + [VBA and Macros](#vba-and-macros) - [Parsing Options](#parsing-options) * [Input Type](#input-type) * [Guessing File Type](#guessing-file-type) @@ -124,6 +127,7 @@ enhancements, additional features by request, and dedicated support. + [Lotus Formatted Text (PRN)](#lotus-formatted-text-prn) + [Data Interchange Format (DIF)](#data-interchange-format-dif) + [HTML](#html) + + [Rich Text Format (RTF)](#rich-text-format-rtf) - [Testing](#testing) * [Node](#node) * [Browser](#browser) @@ -983,6 +987,16 @@ Chartsheets are represented as standard sheets. They are distinguished with the The underlying data and `!ref` refer to the cached data in the chartsheet. The first row of the chartsheet is the underlying header. +#### Macrosheet Object + +Macrosheets are represented as standard sheets. They are distinguished with the +`!type` property set to `"macro"`. + +#### Dialogsheet Object + +Dialogsheets are represented as standard sheets. They are distinguished with the +`!type` property set to `"dialog"`. + ### Workbook Object `workbook.SheetNames` is an ordered list of the sheets in the workbook @@ -1421,6 +1435,37 @@ if a sheet is visible is to check if the `Hidden` property is logical truth: ``` +#### VBA and Macros + +VBA Macros are stored in a special data blob that is exposed in the `vbaraw` +property of the workbook object when the `bookVBA` option is `true`. They are +supported in `XLSM`, `XLSB`, and `BIFF8 XLS` formats. The `XLSM` and `XLSB` +writers automatically insert the data blobs if it is present in the workbook. + +
    + Macrosheets (click to show) + +Older versions of Excel also supported a non-VBA "macrosheet" sheet type that +stored automation commands. These are exposed in objects with the `!type` +property set to `"macro"`. + +
    + +
    + Detecting macros in workbooks (click to show) + +The `vbaraw` field will only be set if macros are present, so testing is simple: + +```js +function wb_has_macro(wb/*:workbook*/)/*:boolean*/ { + if(!!wb.vbaraw) return true; + const sheets = wb.SheetNames.map((n) => wb.Sheets[n]); + return sheets.some((ws) => !!ws && ws['!type']=='macro'); +} +``` + +
    + ## Parsing Options The exported `read` and `readFile` functions accept an options argument: @@ -1459,7 +1504,9 @@ The exported `read` and `readFile` functions accept an options argument: - `sheetRows-1` rows will be generated when looking at the JSON object output (since the header row is counted as a row when parsing the data) - `bookVBA` merely exposes the raw VBA CFB object. It does not parse the data. - XLSM and XLSB store the VBA CFB object in `xl/vbaProject.bin`. + XLSM and XLSB store the VBA CFB object in `xl/vbaProject.bin`. BIFF8 XLS mixes + the VBA entries alongside the core Workbook entry, so the library generates a + new XLSB-compatible blob from the XLS CFB container. - Currently only XOR encryption is supported. Unsupported error will be thrown for files employing other encryption methods. - WTF is mainly for development. By default, the parser will suppress read @@ -1518,8 +1565,9 @@ Plain text format guessing follows the priority order: | XML | starts with `<` | | RTF | starts with `{\rt` | | DSV | starts with `/sep=.$/`, separator is the specified character | -| CSV | more unquoted `","` characters than `"\t"` chars in the first 1024 | -| TSV | one of the first 1024 characters is a tab char `"\t"` | +| DSV | more unquoted `";"` chars than `"\t"` or `","` in the first 1024 | +| TSV | more unquoted `"\t"` chars than `","` chars in the first 1024 | +| CSV | one of the first 1024 characters is a comma `","` | | PRN | (default) | - HTML tags include: `html`, `table`, `head`, `meta`, `script`, `style`, `div` @@ -1582,6 +1630,7 @@ output formats. The specific file type is controlled with `bookType` option: | `xlsm` | `.xlsm` | ZIP | multi | Excel 2007+ Macro XML Format | | `xlsb` | `.xlsb` | ZIP | multi | Excel 2007+ Binary Format | | `biff8` | `.xls` | CFB | multi | Excel 97-2004 Workbook Format | +| `biff5` | `.xls` | CFB | multi | Excel 5.0/95 Workbook Format | | `biff2` | `.xls` | none | single | Excel 2.0 Worksheet Format | | `xlml` | `.xls` | none | multi | Excel 2003-2004 (SpreadsheetML) | | `ods` | `.ods` | ZIP | multi | OpenDocument Spreadsheet | @@ -1591,6 +1640,7 @@ output formats. The specific file type is controlled with `bookType` option: | `sylk` | `.sylk` | none | single | Symbolic Link (SYLK) | | `html` | `.html` | none | single | HTML Document | | `dif` | `.dif` | none | single | Data Interchange Format (DIF) | +| `rtf` | `.rtf` | none | single | Rich Text Format (RTF) | | `prn` | `.prn` | none | single | Lotus Formatted Text | - `compression` only applies to formats with ZIP containers. @@ -1909,7 +1959,7 @@ Despite the library name `xlsx`, it supports numerous spreadsheet file formats: | Excel 2007+ Binary Format (XLSB BIFF12) | :o: | :o: | | Excel 2003-2004 XML Format (XML "SpreadsheetML") | :o: | :o: | | Excel 97-2004 (XLS BIFF8) | :o: | :o: | -| Excel 5.0/95 (XLS BIFF5) | :o: | | +| Excel 5.0/95 (XLS BIFF5) | :o: | :o: | | Excel 4.0 (XLS/XLW BIFF4) | :o: | | | Excel 3.0 (XLS BIFF3) | :o: | | | Excel 2.0/2.1 (XLS BIFF2) | :o: | :o: | @@ -1928,6 +1978,7 @@ Despite the library name `xlsx`, it supports numerous spreadsheet file formats: | Quattro Pro Spreadsheet (WQ1/WQ2/WB1/WB2/WB3/QPW) | :o: | | | **Other Common Spreadsheet Output Formats** |:-----:|:-----:| | HTML Tables | :o: | :o: | +| Rich Text Format tables (RTF) | | :o: | ### Excel 2007+ XML (XLSX/XLSM) @@ -2151,6 +2202,17 @@ the metadata the output is valid HTML, although it does accept bare `&` symbols. +#### Rich Text Format (RTF) + +
    + (click to show) + +Excel RTF worksheets are stored in clipboard when copying cells or ranges from a +worksheet. The supported codes are a subset of the Word RTF support. + +
    + + ## Testing ### Node @@ -2394,6 +2456,7 @@ granted by the Apache 2.0 License are reserved by the Original Author. - `MS-XLSB`: Excel (.xlsb) Binary File Format - `MS-XLSX`: Excel (.xlsx) Extensions to the Office Open XML SpreadsheetML File Format - `XLS`: Microsoft Office Excel 97-2007 Binary File Format Specification + - `RTF`: Rich Text Format diff --git a/src/main/webapp/bower_components/js-xlsx/demos/altjs/com/sheetjs/JSHelper.java b/src/main/webapp/bower_components/js-xlsx/demos/altjs/com/sheetjs/JSHelper.java index c5807bafa5..100b13bd54 100644 --- a/src/main/webapp/bower_components/js-xlsx/demos/altjs/com/sheetjs/JSHelper.java +++ b/src/main/webapp/bower_components/js-xlsx/demos/altjs/com/sheetjs/JSHelper.java @@ -34,7 +34,7 @@ static Object[] get_array(String path, Object base) throws ObjectNotFoundExcepti NativeArray arr = (NativeArray)get_object(path, base); Object[] out = new Object[(int)arr.getLength()]; int idx; - for(Object o : arr.getIds()) out[idx = (Integer)o] = arr.get(idx, arr); + for(Object o : arr.getIds()) out[idx = (Integer)o] = arr.get(idx, arr); return out; } @@ -42,10 +42,10 @@ static String[] get_string_array(String path, Object base) throws ObjectNotFound NativeArray arr = (NativeArray)get_object(path, base); String[] out = new String[(int)arr.getLength()]; int idx; - for(Object o : arr.getIds()) out[idx = (Integer)o] = arr.get(idx, arr).toString(); + for(Object o : arr.getIds()) out[idx = (Integer)o] = arr.get(idx, arr).toString(); return out; } - + public static void close() { Context.exit(); } } diff --git a/src/main/webapp/bower_components/js-xlsx/demos/angular/index.html b/src/main/webapp/bower_components/js-xlsx/demos/angular/index.html index 07f34cba2f..111524ee3a 100644 --- a/src/main/webapp/bower_components/js-xlsx/demos/angular/index.html +++ b/src/main/webapp/bower_components/js-xlsx/demos/angular/index.html @@ -11,7 +11,7 @@ - + diff --git a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.js b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.js index 5fe3ba9523..5f234d94d9 100644 --- a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.js +++ b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.js @@ -1,15 +1,15 @@ /* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ -var DO_NOT_EXPORT_CODEPAGE=true;var DO_NOT_EXPORT_JSZIP=true;(function(e){if("object"==typeof exports&&"undefined"!=typeof module&&"undefined"==typeof DO_NOT_EXPORT_JSZIP)module.exports=e();else if("function"==typeof define&&define.amd){JSZip=e();define([],e)}else{var r;"undefined"!=typeof window?r=window:"undefined"!=typeof global?r=global:"undefined"!=typeof $&&$.global?r=$.global:"undefined"!=typeof self&&(r=self),r.JSZip=e()}})(function(){var e,r,t;return function a(e,r,t){function n(s,o){if(!r[s]){if(!e[s]){var l=typeof require=="function"&&require;if(!o&&l)return l(s,!0);if(i)return i(s,!0);throw new Error("Cannot find module '"+s+"'")}var f=r[s]={exports:{}};e[s][0].call(f.exports,function(r){var t=e[s][1][r];return n(t?t:r)},f,f.exports,a,e,r,t)}return r[s].exports}var i=typeof require=="function"&&require;for(var s=0;s>2;l=(n&3)<<4|i>>4;f=(i&15)<<2|s>>6;c=s&63;if(isNaN(i)){f=c=64}else if(isNaN(s)){c=64}t=t+a.charAt(o)+a.charAt(l)+a.charAt(f)+a.charAt(c)}return t};t.decode=function(e,r){var t="";var n,i,s;var o,l,f,c;var u=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(u>4;i=(l&15)<<4|f>>2;s=(f&3)<<6|c;t=t+String.fromCharCode(n);if(f!=64){t=t+String.fromCharCode(i)}if(c!=64){t=t+String.fromCharCode(s)}}return t}},{}],2:[function(e,r,t){"use strict";function a(){this.compressedSize=0;this.uncompressedSize=0;this.crc32=0;this.compressionMethod=null;this.compressedContent=null}a.prototype={getContent:function(){return null},getCompressedContent:function(){return null}};r.exports=a},{}],3:[function(e,r,t){"use strict";t.STORE={magic:"\0\0",compress:function(e){return e},uncompress:function(e){return e},compressInputType:null,uncompressInputType:null};t.DEFLATE=e("./flate")},{"./flate":8}],4:[function(e,r,t){"use strict";var a=e("./utils");var n=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];r.exports=function i(e,r){if(typeof e==="undefined"||!e.length){return 0}var t=a.getTypeOf(e)!=="string";if(typeof r=="undefined"){r=0}var i=0;var s=0;var o=0;r=r^-1;for(var l=0,f=e.length;l>>8^i}return r^-1}},{"./utils":21}],5:[function(e,r,t){"use strict";var a=e("./utils");function n(e){this.data=null;this.length=0;this.index=0}n.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;t--){r=(r<<8)+this.byteAt(t)}this.index+=e;return r},readString:function(e){return a.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1)}};r.exports=n},{"./utils":21}],6:[function(e,r,t){"use strict";t.base64=false;t.binary=false;t.dir=false;t.createFolders=false;t.date=null;t.compression=null;t.comment=null},{}],7:[function(e,r,t){"use strict";var a=e("./utils");t.string2binary=function(e){return a.string2binary(e)};t.string2Uint8Array=function(e){return a.transformTo("uint8array",e)};t.uint8Array2String=function(e){return a.transformTo("string",e)};t.string2Blob=function(e){var r=a.transformTo("arraybuffer",e);return a.arrayBuffer2Blob(r)};t.arrayBuffer2Blob=function(e){return a.arrayBuffer2Blob(e)};t.transformTo=function(e,r){return a.transformTo(e,r)};t.getTypeOf=function(e){return a.getTypeOf(e)};t.checkSupport=function(e){return a.checkSupport(e)};t.MAX_VALUE_16BITS=a.MAX_VALUE_16BITS;t.MAX_VALUE_32BITS=a.MAX_VALUE_32BITS;t.pretty=function(e){return a.pretty(e)};t.findCompression=function(e){return a.findCompression(e)};t.isRegExp=function(e){return a.isRegExp(e)}},{"./utils":21}],8:[function(e,r,t){"use strict";var a=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Uint32Array!=="undefined";var n=e("pako");t.uncompressInputType=a?"uint8array":"array";t.compressInputType=a?"uint8array":"array";t.magic="\b\0";t.compress=function(e){return n.deflateRaw(e)};t.uncompress=function(e){return n.inflateRaw(e)}},{pako:24}],9:[function(e,r,t){"use strict";var a=e("./base64");function n(e,r){if(!(this instanceof n))return new n(e,r);this.files={};this.comment=null;this.root="";if(e){this.load(e,r)}this.clone=function(){var e=new n;for(var r in this){if(typeof this[r]!=="function"){e[r]=this[r]}}return e}}n.prototype=e("./object");n.prototype.load=e("./load");n.support=e("./support");n.defaults=e("./defaults");n.utils=e("./deprecatedPublicUtils");n.base64={encode:function(e){return a.encode(e)},decode:function(e){return a.decode(e)}};n.compressions=e("./compressions");r.exports=n},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(e,r,t){"use strict";var a=e("./base64");var n=e("./zipEntries");r.exports=function(e,r){var t,i,s,o;r=r||{};if(r.base64){e=a.decode(e)}i=new n(e,r);t=i.files;for(s=0;s>>8}return t};var k=function(){var e={},r,t;for(r=0;r0?e.substring(0,r):""};var C=function(e,r){if(e.slice(-1)!="/"){e+="/"}r=typeof r!=="undefined"?r:false;if(!this.files[e]){w.call(this,e,null,{dir:true,createFolders:r})}return this.files[e]};var _=function(e,r){var t=new c,a;if(e._data instanceof c){t.uncompressedSize=e._data.uncompressedSize;t.crc32=e._data.crc32;if(t.uncompressedSize===0||e.dir){r=f["STORE"];t.compressedContent="";t.crc32=0}else if(e._data.compressionMethod===r.magic){t.compressedContent=e._data.getCompressedContent()}else{a=e._data.getContent();t.compressedContent=r.compress(n.transformTo(r.compressInputType,a))}}else{a=b(e);if(!a||a.length===0||e.dir){r=f["STORE"];a=""}t.uncompressedSize=a.length;t.crc32=i(a);t.compressedContent=r.compress(n.transformTo(r.compressInputType,a))}t.compressedSize=t.compressedContent.length;t.compressionMethod=r.magic;return t};var T=function(e,r,t,a){var o=t.compressedContent,l=n.transformTo("string",h.utf8encode(r.name)),f=r.comment||"",c=n.transformTo("string",h.utf8encode(f)),u=l.length!==r.name.length,d=c.length!==f.length,v=r.options,p,b,m="",g="",k="",S,w;if(r._initialMetadata.dir!==r.dir){S=r.dir}else{S=v.dir}if(r._initialMetadata.date!==r.date){w=r.date}else{w=v.date}p=w.getHours();p=p<<6;p=p|w.getMinutes();p=p<<5;p=p|w.getSeconds()/2;b=w.getFullYear()-1980;b=b<<4;b=b|w.getMonth()+1;b=b<<5;b=b|w.getDate();if(u){g=E(1,1)+E(i(l),4)+l;m+="up"+E(g.length,2)+g}if(d){k=E(1,1)+E(this.crc32(c),4)+c;m+="uc"+E(k.length,2)+k}var B="";B+="\n\0";B+=u||d?"\0\b":"\0\0";B+=t.compressionMethod;B+=E(p,2);B+=E(b,2);B+=E(t.crc32,4);B+=E(t.compressedSize,4);B+=E(t.uncompressedSize,4);B+=E(l.length,2);B+=E(m.length,2);var C=s.LOCAL_FILE_HEADER+B+l+m;var _=s.CENTRAL_FILE_HEADER+"\0"+B+E(c.length,2)+"\0\0"+"\0\0"+(S===true?"\0\0\0":"\0\0\0\0")+E(a,4)+l+m+c;return{fileRecord:C,dirRecord:_,compressedObject:t}};var x={load:function(e,r){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(e){var r=[],t,a,n,i;for(t in this.files){if(!this.files.hasOwnProperty(t)){continue}n=this.files[t];i=new g(n.name,n._data,k(n.options));a=t.slice(this.root.length,t.length);if(t.slice(0,this.root.length)===this.root&&e(a,i)){r.push(i)}}return r},file:function(e,r,t){if(arguments.length===1){if(n.isRegExp(e)){var a=e;return this.filter(function(e,r){return!r.dir&&a.test(e)})}else{return this.filter(function(r,t){return!t.dir&&r===e})[0]||null}}else{e=this.root+e;w.call(this,e,r,t)}return this},folder:function(e){if(!e){return this}if(n.isRegExp(e)){return this.filter(function(r,t){return t.dir&&e.test(r)})}var r=this.root+e;var t=C.call(this,r);var a=this.clone();a.root=t.name;return a},remove:function(e){e=this.root+e;var r=this.files[e];if(!r){if(e.slice(-1)!="/"){e+="/"}r=this.files[e]}if(r&&!r.dir){delete this.files[e]}else{var t=this.filter(function(r,t){return t.name.slice(0,e.length)===e});for(var a=0;a=0;--i){if(this.data[i]===r&&this.data[i+1]===t&&this.data[i+2]===a&&this.data[i+3]===n){return i}}return-1};n.prototype.readData=function(e){this.checkOffset(e);if(e===0){return new Uint8Array(0)}var r=this.data.subarray(this.index,this.index+e);this.index+=e;return r};r.exports=n},{"./dataReader":5}],19:[function(e,r,t){"use strict";var a=e("./utils");var n=function(e){this.data=new Uint8Array(e);this.index=0};n.prototype={append:function(e){if(e.length!==0){e=a.transformTo("uint8array",e);this.data.set(e,this.index);this.index+=e.length}},finalize:function(){return this.data}};r.exports=n},{"./utils":21}],20:[function(e,r,t){"use strict";var a=e("./utils");var n=e("./support");var i=e("./nodeBuffer");var s=new Array(256);for(var o=0;o<256;o++){s[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1}s[254]=s[254]=1;var l=function(e){var r,t,a,i,s,o=e.length,l=0;for(i=0;i>>6;r[s++]=128|t&63}else if(t<65536){r[s++]=224|t>>>12;r[s++]=128|t>>>6&63;r[s++]=128|t&63}else{r[s++]=240|t>>>18;r[s++]=128|t>>>12&63;r[s++]=128|t>>>6&63;r[s++]=128|t&63}}return r};var f=function(e,r){var t;r=r||e.length;if(r>e.length){r=e.length}t=r-1;while(t>=0&&(e[t]&192)===128){t--}if(t<0){return r}if(t===0){return r}return t+s[e[t]]>r?t:r};var c=function(e){var r,t,n,i,o;var l=e.length;var f=new Array(l*2);for(n=0,t=0;t4){f[n++]=65533;t+=o-1;continue}i&=o===2?31:o===3?15:7;while(o>1&&t1){f[n++]=65533;continue}if(i<65536){f[n++]=i}else{i-=65536;f[n++]=55296|i>>10&1023;f[n++]=56320|i&1023}}if(f.length!==n){if(f.subarray){f=f.subarray(0,n)}else{f.length=n}}return a.applyFromCharCode(f)};t.utf8encode=function u(e){if(n.nodebuffer){return i(e,"utf-8")}return l(e)};t.utf8decode=function h(e){if(n.nodebuffer){return a.transformTo("nodebuffer",e).toString("utf-8")}e=a.transformTo(n.uint8array?"uint8array":"array",e);var r=[],t=0,i=e.length,s=65536;while(t1){try{if(s==="array"||s==="nodebuffer"){a.push(String.fromCharCode.apply(null,e.slice(o,Math.min(o+r,n))))}else{a.push(String.fromCharCode.apply(null,e.subarray(o,Math.min(o+r,n))))}o+=r}catch(f){r=Math.floor(r/2)}}return a.join("")}t.applyFromCharCode=l;function f(e,r){for(var t=0;t1){throw new Error("Multi-volumes zip are not supported")}},readLocalFiles:function(){var e,r;for(e=0;e0){r.windowBits=-r.windowBits}else if(r.gzip&&r.windowBits>0&&r.windowBits<16){r.windowBits+=16}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new o;this.strm.avail_out=0;var t=a.deflateInit2(this.strm,r.level,r.method,r.windowBits,r.memLevel,r.strategy);if(t!==c){throw new Error(s[t])}if(r.header){a.deflateSetHeader(this.strm,r.header)}};p.prototype.push=function(e,r){var t=this.strm;var s=this.options.chunkSize;var o,h;if(this.ended){return false}h=r===~~r?r:r===true?f:l;if(typeof e==="string"){t.input=i.string2buf(e)}else{t.input=e}t.next_in=0;t.avail_in=t.input.length;do{if(t.avail_out===0){t.output=new n.Buf8(s);t.next_out=0;t.avail_out=s}o=a.deflate(t,h);if(o!==u&&o!==c){this.onEnd(o);this.ended=true;return false}if(t.avail_out===0||t.avail_in===0&&h===f){if(this.options.to==="string"){this.onData(i.buf2binstring(n.shrinkBuf(t.output,t.next_out)))}else{this.onData(n.shrinkBuf(t.output,t.next_out))}}}while((t.avail_in>0||t.avail_out===0)&&o!==u);if(h===f){o=a.deflateEnd(this.strm);this.onEnd(o);this.ended=true;return o===c}return true};p.prototype.onData=function(e){this.chunks.push(e)};p.prototype.onEnd=function(e){if(e===c){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=n.flattenChunks(this.chunks)}}this.chunks=[];this.err=e;this.msg=this.strm.msg};function b(e,r){var t=new p(r);t.push(e,true);if(t.err){throw t.msg}return t.result}function m(e,r){r=r||{};r.raw=true;return b(e,r)}function g(e,r){r=r||{};r.gzip=true;return b(e,r)}t.Deflate=p;t.deflate=b;t.deflateRaw=m;t.gzip=g},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(e,r,t){"use strict";var a=e("./zlib/inflate.js");var n=e("./utils/common");var i=e("./utils/strings");var s=e("./zlib/constants");var o=e("./zlib/messages");var l=e("./zlib/zstream");var f=e("./zlib/gzheader");var c=function(e){this.options=n.assign({chunkSize:16384,windowBits:0,to:""},e||{});var r=this.options;if(r.raw&&r.windowBits>=0&&r.windowBits<16){r.windowBits=-r.windowBits;if(r.windowBits===0){r.windowBits=-15}}if(r.windowBits>=0&&r.windowBits<16&&!(e&&e.windowBits)){r.windowBits+=32}if(r.windowBits>15&&r.windowBits<48){if((r.windowBits&15)===0){r.windowBits|=15}}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new l;this.strm.avail_out=0;var t=a.inflateInit2(this.strm,r.windowBits);if(t!==s.Z_OK){throw new Error(o[t])}this.header=new f;a.inflateGetHeader(this.strm,this.header)};c.prototype.push=function(e,r){var t=this.strm;var o=this.options.chunkSize;var l,f;var c,u,h;if(this.ended){return false}f=r===~~r?r:r===true?s.Z_FINISH:s.Z_NO_FLUSH;if(typeof e==="string"){t.input=i.binstring2buf(e)}else{t.input=e}t.next_in=0;t.avail_in=t.input.length;do{if(t.avail_out===0){t.output=new n.Buf8(o);t.next_out=0;t.avail_out=o}l=a.inflate(t,s.Z_NO_FLUSH);if(l!==s.Z_STREAM_END&&l!==s.Z_OK){this.onEnd(l);this.ended=true;return false}if(t.next_out){if(t.avail_out===0||l===s.Z_STREAM_END||t.avail_in===0&&f===s.Z_FINISH){if(this.options.to==="string"){c=i.utf8border(t.output,t.next_out);u=t.next_out-c;h=i.buf2string(t.output,c);t.next_out=u;t.avail_out=o-u;if(u){n.arraySet(t.output,t.output,c,u,0)}this.onData(h)}else{this.onData(n.shrinkBuf(t.output,t.next_out))}}}}while(t.avail_in>0&&l!==s.Z_STREAM_END);if(l===s.Z_STREAM_END){f=s.Z_FINISH}if(f===s.Z_FINISH){l=a.inflateEnd(this.strm);this.onEnd(l);this.ended=true;return l===s.Z_OK}return true};c.prototype.onData=function(e){this.chunks.push(e)};c.prototype.onEnd=function(e){if(e===s.Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=n.flattenChunks(this.chunks)}}this.chunks=[];this.err=e;this.msg=this.strm.msg};function u(e,r){var t=new c(r);t.push(e,true);if(t.err){throw t.msg}return t.result}function h(e,r){r=r||{};r.raw=true;return u(e,r)}t.Inflate=c;t.inflate=u;t.inflateRaw=h;t.ungzip=u},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(e,r,t){"use strict";var a=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";t.assign=function(e){var r=Array.prototype.slice.call(arguments,1);while(r.length){var t=r.shift();if(!t){continue}if(typeof t!=="object"){throw new TypeError(t+"must be non-object")}for(var a in t){if(t.hasOwnProperty(a)){e[a]=t[a]}}}return e};t.shrinkBuf=function(e,r){if(e.length===r){return e}if(e.subarray){return e.subarray(0,r)}e.length=r;return e};var n={arraySet:function(e,r,t,a,n){if(r.subarray&&e.subarray){e.set(r.subarray(t,t+a),n);return}for(var i=0;i=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1}o[254]=o[254]=1;t.string2buf=function(e){var r,t,n,i,s,o=e.length,l=0;for(i=0;i>>6;r[s++]=128|t&63}else if(t<65536){r[s++]=224|t>>>12;r[s++]=128|t>>>6&63;r[s++]=128|t&63}else{r[s++]=240|t>>>18;r[s++]=128|t>>>12&63;r[s++]=128|t>>>6&63;r[s++]=128|t&63}}return r};function f(e,r){if(r<65537){if(e.subarray&&i||!e.subarray&&n){return String.fromCharCode.apply(null,a.shrinkBuf(e,r))}}var t="";for(var s=0;s4){l[a++]=65533;t+=i-1;continue}n&=i===2?31:i===3?15:7;while(i>1&&t1){l[a++]=65533;continue}if(n<65536){l[a++]=n}else{n-=65536;l[a++]=55296|n>>10&1023;l[a++]=56320|n&1023}}return f(l,a)};t.utf8border=function(e,r){var t;r=r||e.length;if(r>e.length){r=e.length}t=r-1;while(t>=0&&(e[t]&192)===128){t--}if(t<0){return r}if(t===0){return r}return t+o[e[t]]>r?t:r}},{"./common":27}],29:[function(e,r,t){"use strict";function a(e,r,t,a){var n=e&65535|0,i=e>>>16&65535|0,s=0;while(t!==0){s=t>2e3?2e3:t;t-=s;do{n=n+r[a++]|0;i=i+n|0}while(--s);n%=65521;i%=65521}return n|i<<16|0}r.exports=a},{}],30:[function(e,r,t){r.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(e,r,t){"use strict";function a(){var e,r=[];for(var t=0;t<256;t++){e=t;for(var a=0;a<8;a++){e=e&1?3988292384^e>>>1:e>>>1}r[t]=e}return r}var n=a();function i(e,r,t,a){var i=n,s=a+t;e=e^-1;for(var o=a;o>>8^i[(e^r[o])&255]}return e^-1}r.exports=i},{}],32:[function(e,r,t){"use strict";var a=e("../utils/common");var n=e("./trees");var i=e("./adler32");var s=e("./crc32");var o=e("./messages");var l=0;var f=1;var c=3;var u=4;var h=5;var d=0;var v=1;var p=-2;var b=-3;var m=-5;var g=-1;var E=1;var k=2;var S=3;var w=4;var B=0;var C=2;var _=8;var T=9;var x=15;var I=8;var A=29;var y=256;var R=y+1+A;var D=30;var O=19;var F=2*R+1;var P=15;var N=3;var L=258;var M=L+N+1;var U=32;var H=42;var W=69;var z=73;var V=91;var X=103;var G=113;var j=666;var K=1;var Y=2;var $=3;var Z=4;var Q=3;function J(e,r){e.msg=o[r];return r}function q(e){return(e<<1)-(e>4?9:0)}function ee(e){var r=e.length;while(--r>=0){e[r]=0}}function re(e){var r=e.state;var t=r.pending;if(t>e.avail_out){t=e.avail_out}if(t===0){return}a.arraySet(e.output,r.pending_buf,r.pending_out,t,e.next_out);e.next_out+=t;r.pending_out+=t;e.total_out+=t;e.avail_out-=t;r.pending-=t;if(r.pending===0){r.pending_out=0}}function te(e,r){n._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,r);e.block_start=e.strstart;re(e.strm)}function ae(e,r){e.pending_buf[e.pending++]=r}function ne(e,r){e.pending_buf[e.pending++]=r>>>8&255;e.pending_buf[e.pending++]=r&255}function ie(e,r,t,n){var o=e.avail_in;if(o>n){o=n}if(o===0){return 0}e.avail_in-=o;a.arraySet(r,e.input,e.next_in,o,t);if(e.state.wrap===1){e.adler=i(e.adler,r,o,t)}else if(e.state.wrap===2){e.adler=s(e.adler,r,o,t)}e.next_in+=o;e.total_in+=o;return o}function se(e,r){var t=e.max_chain_length;var a=e.strstart;var n;var i;var s=e.prev_length;var o=e.nice_match;var l=e.strstart>e.w_size-M?e.strstart-(e.w_size-M):0;var f=e.window;var c=e.w_mask;var u=e.prev;var h=e.strstart+L;var d=f[a+s-1];var v=f[a+s];if(e.prev_length>=e.good_match){t>>=2}if(o>e.lookahead){o=e.lookahead}do{n=r;if(f[n+s]!==v||f[n+s-1]!==d||f[n]!==f[a]||f[++n]!==f[a+1]){continue}a+=2;n++;do{}while(f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&as){e.match_start=r;s=i;if(i>=o){break}d=f[a+s-1];v=f[a+s]}}while((r=u[r&c])>l&&--t!==0);if(s<=e.lookahead){return s}return e.lookahead}function oe(e){var r=e.w_size;var t,n,i,s,o;do{s=e.window_size-e.lookahead-e.strstart;if(e.strstart>=r+(r-M)){a.arraySet(e.window,e.window,r,r,0);e.match_start-=r;e.strstart-=r;e.block_start-=r;n=e.hash_size;t=n;do{i=e.head[--t];e.head[t]=i>=r?i-r:0}while(--n);n=r;t=n;do{i=e.prev[--t];e.prev[t]=i>=r?i-r:0}while(--n);s+=r}if(e.strm.avail_in===0){break}n=ie(e.strm,e.window,e.strstart+e.lookahead,s);e.lookahead+=n;if(e.lookahead+e.insert>=N){o=e.strstart-e.insert;e.ins_h=e.window[o];e.ins_h=(e.ins_h<e.pending_buf_size-5){t=e.pending_buf_size-5}for(;;){if(e.lookahead<=1){oe(e);if(e.lookahead===0&&r===l){return K}if(e.lookahead===0){break}}e.strstart+=e.lookahead;e.lookahead=0;var a=e.block_start+t;if(e.strstart===0||e.strstart>=a){e.lookahead=e.strstart-a;e.strstart=a;te(e,false);if(e.strm.avail_out===0){return K}}if(e.strstart-e.block_start>=e.w_size-M){te(e,false);if(e.strm.avail_out===0){return K}}}e.insert=0;if(r===u){te(e,true);if(e.strm.avail_out===0){return $}return Z}if(e.strstart>e.block_start){te(e,false);if(e.strm.avail_out===0){return K}}return K}function fe(e,r){var t;var a;for(;;){if(e.lookahead=N){e.ins_h=(e.ins_h<=N){a=n._tr_tally(e,e.strstart-e.match_start,e.match_length-N);e.lookahead-=e.match_length;if(e.match_length<=e.max_lazy_match&&e.lookahead>=N){e.match_length--;do{e.strstart++;e.ins_h=(e.ins_h<=N){e.ins_h=(e.ins_h<4096)){e.match_length=N-1}}if(e.prev_length>=N&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-N;a=n._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-N);e.lookahead-=e.prev_length-1;e.prev_length-=2;do{if(++e.strstart<=i){e.ins_h=(e.ins_h<=N&&e.strstart>0){i=e.strstart-1;a=o[i];if(a===o[++i]&&a===o[++i]&&a===o[++i]){s=e.strstart+L;do{}while(a===o[++i]&&a===o[++i]&&a===o[++i]&&a===o[++i]&&a===o[++i]&&a===o[++i]&&a===o[++i]&&a===o[++i]&&ie.lookahead){e.match_length=e.lookahead}}}if(e.match_length>=N){t=n._tr_tally(e,1,e.match_length-N);e.lookahead-=e.match_length;e.strstart+=e.match_length;e.match_length=0}else{t=n._tr_tally(e,0,e.window[e.strstart]);e.lookahead--;e.strstart++}if(t){te(e,false);if(e.strm.avail_out===0){return K}}}e.insert=0;if(r===u){te(e,true);if(e.strm.avail_out===0){return $}return Z}if(e.last_lit){te(e,false);if(e.strm.avail_out===0){return K}}return Y}function he(e,r){var t;for(;;){if(e.lookahead===0){oe(e);if(e.lookahead===0){if(r===l){return K}break}}e.match_length=0;t=n._tr_tally(e,0,e.window[e.strstart]);e.lookahead--;e.strstart++;if(t){te(e,false);if(e.strm.avail_out===0){return K}}}e.insert=0;if(r===u){te(e,true);if(e.strm.avail_out===0){return $}return Z}if(e.last_lit){te(e,false);if(e.strm.avail_out===0){return K}}return Y}var de=function(e,r,t,a,n){this.good_length=e;this.max_lazy=r;this.nice_length=t;this.max_chain=a;this.func=n};var ve;ve=[new de(0,0,0,0,le),new de(4,4,8,4,fe),new de(4,5,16,8,fe),new de(4,6,32,32,fe),new de(4,4,16,16,ce),new de(8,16,32,32,ce),new de(8,16,128,128,ce),new de(8,32,128,256,ce),new de(32,128,258,1024,ce),new de(32,258,258,4096,ce)];function pe(e){e.window_size=2*e.w_size;ee(e.head);e.max_lazy_match=ve[e.level].max_lazy;e.good_match=ve[e.level].good_length;e.nice_match=ve[e.level].nice_length;e.max_chain_length=ve[e.level].max_chain;e.strstart=0;e.block_start=0;e.lookahead=0;e.insert=0;e.match_length=e.prev_length=N-1;e.match_available=0;e.ins_h=0}function be(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=_;this.last_flush=-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new a.Buf16(F*2);this.dyn_dtree=new a.Buf16((2*D+1)*2);this.bl_tree=new a.Buf16((2*O+1)*2);ee(this.dyn_ltree);ee(this.dyn_dtree);ee(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new a.Buf16(P+1);this.heap=new a.Buf16(2*R+1);ee(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new a.Buf16(2*R+1);ee(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0;this.bi_buf=0;this.bi_valid=0}function me(e){var r;if(!e||!e.state){return J(e,p)}e.total_in=e.total_out=0;e.data_type=C;r=e.state;r.pending=0;r.pending_out=0;if(r.wrap<0){r.wrap=-r.wrap}r.status=r.wrap?H:G;e.adler=r.wrap===2?0:1;r.last_flush=l;n._tr_init(r);return d}function ge(e){var r=me(e);if(r===d){pe(e.state)}return r}function Ee(e,r){if(!e||!e.state){return p}if(e.state.wrap!==2){return p}e.state.gzhead=r;return d}function ke(e,r,t,n,i,s){if(!e){return p}var o=1;if(r===g){r=6}if(n<0){o=0;n=-n}else if(n>15){o=2;n-=16}if(i<1||i>T||t!==_||n<8||n>15||r<0||r>9||s<0||s>w){return J(e,p)}if(n===8){n=9}var l=new be;e.state=l;l.strm=e;l.wrap=o;l.gzhead=null;l.w_bits=n;l.w_size=1<>1;l.l_buf=(1+2)*l.lit_bufsize;l.level=r;l.strategy=s;l.method=t;return ge(e)}function Se(e,r){return ke(e,r,_,x,I,B)}function we(e,r){var t,a;var i,o;if(!e||!e.state||r>h||r<0){return e?J(e,p):p}a=e.state;if(!e.output||!e.input&&e.avail_in!==0||a.status===j&&r!==u){return J(e,e.avail_out===0?m:p)}a.strm=e;t=a.last_flush;a.last_flush=r;if(a.status===H){if(a.wrap===2){e.adler=0;ae(a,31);ae(a,139);ae(a,8);if(!a.gzhead){ae(a,0);ae(a,0);ae(a,0);ae(a,0);ae(a,0);ae(a,a.level===9?2:a.strategy>=k||a.level<2?4:0);ae(a,Q);a.status=G}else{ae(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(!a.gzhead.extra?0:4)+(!a.gzhead.name?0:8)+(!a.gzhead.comment?0:16));ae(a,a.gzhead.time&255);ae(a,a.gzhead.time>>8&255);ae(a,a.gzhead.time>>16&255);ae(a,a.gzhead.time>>24&255);ae(a,a.level===9?2:a.strategy>=k||a.level<2?4:0);ae(a,a.gzhead.os&255);if(a.gzhead.extra&&a.gzhead.extra.length){ae(a,a.gzhead.extra.length&255);ae(a,a.gzhead.extra.length>>8&255)}if(a.gzhead.hcrc){e.adler=s(e.adler,a.pending_buf,a.pending,0)}a.gzindex=0;a.status=W}}else{var b=_+(a.w_bits-8<<4)<<8;var g=-1;if(a.strategy>=k||a.level<2){g=0}else if(a.level<6){g=1}else if(a.level===6){g=2}else{g=3}b|=g<<6;if(a.strstart!==0){b|=U}b+=31-b%31;a.status=G;ne(a,b);if(a.strstart!==0){ne(a,e.adler>>>16);ne(a,e.adler&65535)}e.adler=1}}if(a.status===W){if(a.gzhead.extra){i=a.pending;while(a.gzindex<(a.gzhead.extra.length&65535)){if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}re(e);i=a.pending;if(a.pending===a.pending_buf_size){break}}ae(a,a.gzhead.extra[a.gzindex]&255);a.gzindex++}if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}if(a.gzindex===a.gzhead.extra.length){a.gzindex=0;a.status=z}}else{a.status=z}}if(a.status===z){if(a.gzhead.name){i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}re(e);i=a.pending;if(a.pending===a.pending_buf_size){o=1;break}}if(a.gzindexi){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}if(o===0){a.gzindex=0;a.status=V}}else{a.status=V}}if(a.status===V){if(a.gzhead.comment){i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}re(e);i=a.pending;if(a.pending===a.pending_buf_size){o=1;break}}if(a.gzindexi){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}if(o===0){a.status=X}}else{a.status=X}}if(a.status===X){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size){re(e)}if(a.pending+2<=a.pending_buf_size){ae(a,e.adler&255);ae(a,e.adler>>8&255);e.adler=0;a.status=G}}else{a.status=G}}if(a.pending!==0){re(e);if(e.avail_out===0){a.last_flush=-1;return d}}else if(e.avail_in===0&&q(r)<=q(t)&&r!==u){return J(e,m)}if(a.status===j&&e.avail_in!==0){return J(e,m)}if(e.avail_in!==0||a.lookahead!==0||r!==l&&a.status!==j){var E=a.strategy===k?he(a,r):a.strategy===S?ue(a,r):ve[a.level].func(a,r);if(E===$||E===Z){a.status=j}if(E===K||E===$){if(e.avail_out===0){a.last_flush=-1}return d}if(E===Y){if(r===f){n._tr_align(a)}else if(r!==h){n._tr_stored_block(a,0,0,false);if(r===c){ee(a.head);if(a.lookahead===0){a.strstart=0;a.block_start=0;a.insert=0}}}re(e);if(e.avail_out===0){a.last_flush=-1;return d}}}if(r!==u){return d}if(a.wrap<=0){return v}if(a.wrap===2){ae(a,e.adler&255);ae(a,e.adler>>8&255);ae(a,e.adler>>16&255);ae(a,e.adler>>24&255);ae(a,e.total_in&255);ae(a,e.total_in>>8&255);ae(a,e.total_in>>16&255);ae(a,e.total_in>>24&255)}else{ne(a,e.adler>>>16);ne(a,e.adler&65535)}re(e);if(a.wrap>0){a.wrap=-a.wrap}return a.pending!==0?d:v}function Be(e){var r;if(!e||!e.state){return p}r=e.state.status;if(r!==H&&r!==W&&r!==z&&r!==V&&r!==X&&r!==G&&r!==j){return J(e,p)}e.state=null;return r===G?J(e,b):d}t.deflateInit=Se;t.deflateInit2=ke;t.deflateReset=ge;t.deflateResetKeep=me;t.deflateSetHeader=Ee;t.deflate=we;t.deflateEnd=Be;t.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(e,r,t){"use strict";function a(){this.text=0;this.time=0;this.xflags=0;this.os=0;this.extra=null;this.extra_len=0;this.name="";this.comment="";this.hcrc=0;this.done=false}r.exports=a},{}],34:[function(e,r,t){"use strict";var a=30;var n=12;r.exports=function i(e,r){var t;var i;var s;var o;var l;var f;var c;var u;var h;var d;var v;var p;var b;var m;var g;var E;var k;var S;var w;var B;var C;var _;var T;var x,I;t=e.state;i=e.next_in;x=e.input;s=i+(e.avail_in-5);o=e.next_out;I=e.output;l=o-(r-e.avail_out);f=o+(e.avail_out-257);c=t.dmax;u=t.wsize;h=t.whave;d=t.wnext;v=t.window;p=t.hold;b=t.bits;m=t.lencode;g=t.distcode;E=(1<>>24;p>>>=w;b-=w;w=S>>>16&255;if(w===0){I[o++]=S&65535}else if(w&16){B=S&65535;w&=15;if(w){if(b>>=w;b-=w}if(b<15){p+=x[i++]<>>24;p>>>=w;b-=w;w=S>>>16&255;if(w&16){C=S&65535;w&=15;if(bc){e.msg="invalid distance too far back";t.mode=a;break e}p>>>=w;b-=w;w=o-l;if(C>w){w=C-w;if(w>h){if(t.sane){e.msg="invalid distance too far back";t.mode=a;break e}}_=0;T=v;if(d===0){_+=u-w;if(w2){I[o++]=T[_++];I[o++]=T[_++];I[o++]=T[_++];B-=3}if(B){I[o++]=T[_++];if(B>1){I[o++]=T[_++]}}}else{_=o-C;do{I[o++]=I[_++];I[o++]=I[_++];I[o++]=I[_++];B-=3}while(B>2);if(B){I[o++]=I[_++];if(B>1){I[o++]=I[_++]}}}}else if((w&64)===0){S=g[(S&65535)+(p&(1<>3;i-=B;b-=B<<3;p&=(1<>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function ie(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new a.Buf16(320);this.work=new a.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function se(e){var r;if(!e||!e.state){return m}r=e.state;e.total_in=e.total_out=r.total=0;e.msg="";if(r.wrap){e.adler=r.wrap&1}r.mode=w;r.last=0;r.havedict=0;r.dmax=32768;r.head=null;r.hold=0;r.bits=0;r.lencode=r.lendyn=new a.Buf32(ee);r.distcode=r.distdyn=new a.Buf32(re);r.sane=1;r.back=-1;return v}function oe(e){var r;if(!e||!e.state){return m}r=e.state;r.wsize=0;r.whave=0;r.wnext=0;return se(e)}function le(e,r){var t;var a;if(!e||!e.state){return m}a=e.state;if(r<0){t=0;r=-r}else{t=(r>>4)+1;if(r<48){r&=15}}if(r&&(r<8||r>15)){return m}if(a.window!==null&&a.wbits!==r){a.window=null}a.wrap=t;a.wbits=r;return oe(e)}function fe(e,r){var t;var a;if(!e){return m}a=new ie;e.state=a;a.window=null;t=le(e,r);if(t!==v){e.state=null}return t}function ce(e){return fe(e,ae)}var ue=true;var he,de;function ve(e){if(ue){var r;he=new a.Buf32(512);de=new a.Buf32(32);r=0;while(r<144){e.lens[r++]=8}while(r<256){e.lens[r++]=9}while(r<280){e.lens[r++]=7}while(r<288){e.lens[r++]=8}o(f,e.lens,0,288,he,0,e.work,{bits:9});r=0;while(r<32){e.lens[r++]=5}o(c,e.lens,0,32,de,0,e.work,{bits:5});ue=false}e.lencode=he;e.lenbits=9;e.distcode=de;e.distbits=5}function pe(e,r,t,n){var i;var s=e.state;if(s.window===null){s.wsize=1<=s.wsize){a.arraySet(s.window,r,t-s.wsize,s.wsize,0);s.wnext=0;s.whave=s.wsize}else{i=s.wsize-s.wnext;if(i>n){i=n}a.arraySet(s.window,r,t-n,i,s.wnext);n-=i;if(n){a.arraySet(s.window,r,t-n,n,0);s.wnext=n;s.whave=s.wsize}else{s.wnext+=i;if(s.wnext===s.wsize){s.wnext=0}if(s.whave>>8&255;t.check=i(t.check,_e,2,0);oe=0;le=0;t.mode=B;break}t.flags=0;if(t.head){t.head.done=false}if(!(t.wrap&1)||(((oe&255)<<8)+(oe>>8))%31){e.msg="incorrect header check";t.mode=Q;break}if((oe&15)!==S){e.msg="unknown compression method";t.mode=Q;break}oe>>>=4;le-=4;Be=(oe&15)+8;if(t.wbits===0){t.wbits=Be}else if(Be>t.wbits){e.msg="invalid window size";t.mode=Q;break}t.dmax=1<>8&1}if(t.flags&512){_e[0]=oe&255;_e[1]=oe>>>8&255;t.check=i(t.check,_e,2,0)}oe=0;le=0;t.mode=C;case C:while(le<32){if(ie===0){break e}ie--;oe+=ee[te++]<>>8&255;_e[2]=oe>>>16&255;_e[3]=oe>>>24&255;t.check=i(t.check,_e,4,0)}oe=0;le=0;t.mode=_;case _:while(le<16){if(ie===0){break e}ie--;oe+=ee[te++]<>8}if(t.flags&512){_e[0]=oe&255;_e[1]=oe>>>8&255;t.check=i(t.check,_e,2,0)}oe=0;le=0;t.mode=T;case T:if(t.flags&1024){while(le<16){if(ie===0){break e}ie--;oe+=ee[te++]<>>8&255;t.check=i(t.check,_e,2,0)}oe=0;le=0}else if(t.head){t.head.extra=null}t.mode=x;case x:if(t.flags&1024){ue=t.length;if(ue>ie){ue=ie}if(ue){if(t.head){Be=t.head.extra_len-t.length;if(!t.head.extra){t.head.extra=new Array(t.head.extra_len)}a.arraySet(t.head.extra,ee,te,ue,Be)}if(t.flags&512){t.check=i(t.check,ee,ue,te)}ie-=ue;te+=ue;t.length-=ue}if(t.length){break e}}t.length=0;t.mode=I;case I:if(t.flags&2048){if(ie===0){break e}ue=0;do{Be=ee[te+ue++];if(t.head&&Be&&t.length<65536){t.head.name+=String.fromCharCode(Be)}}while(Be&&ue>9&1;t.head.done=true}e.adler=t.check=0;t.mode=O;break;case R:while(le<32){if(ie===0){break e}ie--;oe+=ee[te++]<>>=le&7;le-=le&7;t.mode=Y;break}while(le<3){if(ie===0){break e}ie--;oe+=ee[te++]<>>=1;le-=1;switch(oe&3){case 0:t.mode=P;break;case 1:ve(t);t.mode=W;if(r===d){oe>>>=2;le-=2;break e}break;case 2:t.mode=M;break;case 3:e.msg="invalid block type";t.mode=Q;}oe>>>=2;le-=2;break;case P: -oe>>>=le&7;le-=le&7;while(le<32){if(ie===0){break e}ie--;oe+=ee[te++]<>>16^65535)){e.msg="invalid stored block lengths";t.mode=Q;break}t.length=oe&65535;oe=0;le=0;t.mode=N;if(r===d){break e};case N:t.mode=L;case L:ue=t.length;if(ue){if(ue>ie){ue=ie}if(ue>se){ue=se}if(ue===0){break e}a.arraySet(re,ee,te,ue,ae);ie-=ue;te+=ue;se-=ue;ae+=ue;t.length-=ue;break}t.mode=O;break;case M:while(le<14){if(ie===0){break e}ie--;oe+=ee[te++]<>>=5;le-=5;t.ndist=(oe&31)+1;oe>>>=5;le-=5;t.ncode=(oe&15)+4;oe>>>=4;le-=4;if(t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols";t.mode=Q;break}t.have=0;t.mode=U;case U:while(t.have>>=3;le-=3}while(t.have<19){t.lens[Ie[t.have++]]=0}t.lencode=t.lendyn;t.lenbits=7;Te={bits:t.lenbits};Ce=o(l,t.lens,0,19,t.lencode,0,t.work,Te);t.lenbits=Te.bits;if(Ce){e.msg="invalid code lengths set";t.mode=Q;break}t.have=0;t.mode=H;case H:while(t.have>>24;ge=be>>>16&255;Ee=be&65535;if(me<=le){break}if(ie===0){break e}ie--;oe+=ee[te++]<>>=me;le-=me;t.lens[t.have++]=Ee}else{if(Ee===16){xe=me+2;while(le>>=me;le-=me;if(t.have===0){e.msg="invalid bit length repeat";t.mode=Q;break}Be=t.lens[t.have-1];ue=3+(oe&3);oe>>>=2;le-=2}else if(Ee===17){xe=me+3;while(le>>=me;le-=me;Be=0;ue=3+(oe&7);oe>>>=3;le-=3}else{xe=me+7;while(le>>=me;le-=me;Be=0;ue=11+(oe&127);oe>>>=7;le-=7}if(t.have+ue>t.nlen+t.ndist){e.msg="invalid bit length repeat";t.mode=Q;break}while(ue--){t.lens[t.have++]=Be}}}if(t.mode===Q){break}if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block";t.mode=Q;break}t.lenbits=9;Te={bits:t.lenbits};Ce=o(f,t.lens,0,t.nlen,t.lencode,0,t.work,Te);t.lenbits=Te.bits;if(Ce){e.msg="invalid literal/lengths set";t.mode=Q;break}t.distbits=6;t.distcode=t.distdyn;Te={bits:t.distbits};Ce=o(c,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,Te);t.distbits=Te.bits;if(Ce){e.msg="invalid distances set";t.mode=Q;break}t.mode=W;if(r===d){break e};case W:t.mode=z;case z:if(ie>=6&&se>=258){e.next_out=ae;e.avail_out=se;e.next_in=te;e.avail_in=ie;t.hold=oe;t.bits=le;s(e,ce);ae=e.next_out;re=e.output;se=e.avail_out;te=e.next_in;ee=e.input;ie=e.avail_in;oe=t.hold;le=t.bits;if(t.mode===O){t.back=-1}break}t.back=0;for(;;){be=t.lencode[oe&(1<>>24;ge=be>>>16&255;Ee=be&65535;if(me<=le){break}if(ie===0){break e}ie--;oe+=ee[te++]<>ke)];me=be>>>24;ge=be>>>16&255;Ee=be&65535;if(ke+me<=le){break}if(ie===0){break e}ie--;oe+=ee[te++]<>>=ke;le-=ke;t.back+=ke}oe>>>=me;le-=me;t.back+=me;t.length=Ee;if(ge===0){t.mode=K;break}if(ge&32){t.back=-1;t.mode=O;break}if(ge&64){e.msg="invalid literal/length code";t.mode=Q;break}t.extra=ge&15;t.mode=V;case V:if(t.extra){xe=t.extra;while(le>>=t.extra;le-=t.extra;t.back+=t.extra}t.was=t.length;t.mode=X;case X:for(;;){be=t.distcode[oe&(1<>>24;ge=be>>>16&255;Ee=be&65535;if(me<=le){break}if(ie===0){break e}ie--;oe+=ee[te++]<>ke)];me=be>>>24;ge=be>>>16&255;Ee=be&65535;if(ke+me<=le){break}if(ie===0){break e}ie--;oe+=ee[te++]<>>=ke;le-=ke;t.back+=ke}oe>>>=me;le-=me;t.back+=me;if(ge&64){e.msg="invalid distance code";t.mode=Q;break}t.offset=Ee;t.extra=ge&15;t.mode=G;case G:if(t.extra){xe=t.extra;while(le>>=t.extra;le-=t.extra;t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back";t.mode=Q;break}t.mode=j;case j:if(se===0){break e}ue=ce-se;if(t.offset>ue){ue=t.offset-ue;if(ue>t.whave){if(t.sane){e.msg="invalid distance too far back";t.mode=Q;break}}if(ue>t.wnext){ue-=t.wnext;he=t.wsize-ue}else{he=t.wnext-ue}if(ue>t.length){ue=t.length}de=t.window}else{de=re;he=ae-t.offset;ue=t.length}if(ue>se){ue=se}se-=ue;t.length-=ue;do{re[ae++]=de[he++]}while(--ue);if(t.length===0){t.mode=z}break;case K:if(se===0){break e}re[ae++]=t.length;se--;t.mode=z;break;case Y:if(t.wrap){while(le<32){if(ie===0){break e}ie--;oe|=ee[te++]<=1;C--){if(U[C]!==0){break}}if(_>C){_=C}if(C===0){b[m++]=1<<24|64<<16|0;b[m++]=1<<24|64<<16|0;E.bits=1;return 0}for(B=1;B0&&(e===o||C!==1)){return-1}H[1]=0;for(S=1;Si||e===f&&A>s){return 1}var j=0;for(;;){j++;V=S-x;if(g[w]M){X=W[z+g[w]];G=N[L+g[w]]}else{X=32+64;G=0}R=1<>x)+D]=V<<24|X<<16|G|0}while(D!==0);R=1<>=1}if(R!==0){y&=R-1;y+=R}else{y=0}w++;if(--U[S]===0){if(S===C){break}S=r[t+g[w]]}if(S>_&&(y&F)!==O){if(x===0){x=_}P+=B;T=S-x;I=1<i||e===f&&A>s){return 1}O=y&F;b[O]=_<<24|T<<16|P-m|0}}if(y!==0){b[P+y]=S-x<<24|64<<16|0}E.bits=_;return 0}},{"../utils/common":27}],37:[function(e,r,t){"use strict";r.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(e,r,t){"use strict";var a=e("../utils/common");var n=4;var i=0;var s=1;var o=2;function l(e){var r=e.length;while(--r>=0){e[r]=0}}var f=0;var c=1;var u=2;var h=3;var d=258;var v=29;var p=256;var b=p+1+v;var m=30;var g=19;var E=2*b+1;var k=15;var S=16;var w=7;var B=256;var C=16;var _=17;var T=18;var x=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var I=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var A=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var y=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var R=512;var D=new Array((b+2)*2);l(D);var O=new Array(m*2);l(O);var F=new Array(R);l(F);var P=new Array(d-h+1);l(P);var N=new Array(v);l(N);var L=new Array(m);l(L);var M=function(e,r,t,a,n){this.static_tree=e;this.extra_bits=r;this.extra_base=t;this.elems=a;this.max_length=n;this.has_stree=e&&e.length};var U;var H;var W;var z=function(e,r){this.dyn_tree=e;this.max_code=0;this.stat_desc=r};function V(e){return e<256?F[e]:F[256+(e>>>7)]}function X(e,r){e.pending_buf[e.pending++]=r&255;e.pending_buf[e.pending++]=r>>>8&255}function G(e,r,t){if(e.bi_valid>S-t){e.bi_buf|=r<>S-e.bi_valid;e.bi_valid+=t-S}else{e.bi_buf|=r<>>=1;t<<=1}while(--r>0);return t>>>1}function Y(e){if(e.bi_valid===16){X(e,e.bi_buf);e.bi_buf=0;e.bi_valid=0}else if(e.bi_valid>=8){e.pending_buf[e.pending++]=e.bi_buf&255;e.bi_buf>>=8;e.bi_valid-=8}}function $(e,r){var t=r.dyn_tree;var a=r.max_code;var n=r.stat_desc.static_tree;var i=r.stat_desc.has_stree;var s=r.stat_desc.extra_bits;var o=r.stat_desc.extra_base;var l=r.stat_desc.max_length;var f;var c,u;var h;var d;var v;var p=0;for(h=0;h<=k;h++){e.bl_count[h]=0}t[e.heap[e.heap_max]*2+1]=0;for(f=e.heap_max+1;fl){h=l;p++}t[c*2+1]=h;if(c>a){continue}e.bl_count[h]++;d=0;if(c>=o){d=s[c-o]}v=t[c*2];e.opt_len+=v*(h+d);if(i){e.static_len+=v*(n[c*2+1]+d)}}if(p===0){return}do{h=l-1;while(e.bl_count[h]===0){h--}e.bl_count[h]--;e.bl_count[h+1]+=2;e.bl_count[l]--;p-=2}while(p>0);for(h=l;h!==0;h--){c=e.bl_count[h];while(c!==0){u=e.heap[--f];if(u>a){continue}if(t[u*2+1]!==h){e.opt_len+=(h-t[u*2+1])*t[u*2];t[u*2+1]=h}c--}}}function Z(e,r,t){var a=new Array(k+1);var n=0;var i;var s;for(i=1;i<=k;i++){a[i]=n=n+t[i-1]<<1}for(s=0;s<=r;s++){var o=e[s*2+1];if(o===0){continue}e[s*2]=K(a[o]++,o)}}function Q(){var e;var r;var t;var a;var n;var i=new Array(k+1);t=0;for(a=0;a>=7;for(;a8){X(e,e.bi_buf)}else if(e.bi_valid>0){e.pending_buf[e.pending++]=e.bi_buf}e.bi_buf=0;e.bi_valid=0}function ee(e,r,t,n){q(e);if(n){X(e,t);X(e,~t)}a.arraySet(e.pending_buf,e.window,r,t,e.pending);e.pending+=t}function re(e,r,t,a){var n=r*2;var i=t*2;return e[n]>1;s>=1;s--){te(e,t,s)}f=i;do{s=e.heap[1];e.heap[1]=e.heap[e.heap_len--];te(e,t,1);o=e.heap[1];e.heap[--e.heap_max]=s;e.heap[--e.heap_max]=o;t[f*2]=t[s*2]+t[o*2];e.depth[f]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1;t[s*2+1]=t[o*2+1]=f;e.heap[1]=f++;te(e,t,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1];$(e,r);Z(t,l,e.bl_count)}function ie(e,r,t){var a;var n=-1;var i;var s=r[0*2+1];var o=0;var l=7;var f=4;if(s===0){l=138;f=3}r[(t+1)*2+1]=65535;for(a=0;a<=t;a++){i=s;s=r[(a+1)*2+1];if(++o=3;r--){if(e.bl_tree[y[r]*2+1]!==0){break}}e.opt_len+=3*(r+1)+5+5+4;return r}function le(e,r,t,a){var n;G(e,r-257,5);G(e,t-1,5);G(e,a-4,4);for(n=0;n>>=1){if(r&1&&e.dyn_ltree[t*2]!==0){return i}}if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0){return s}for(t=32;t0){if(e.strm.data_type===o){e.strm.data_type=fe(e)}ne(e,e.l_desc);ne(e,e.d_desc);l=oe(e);i=e.opt_len+3+7>>>3;s=e.static_len+3+7>>>3;if(s<=i){i=s}}else{i=s=t+5}if(t+4<=i&&r!==-1){he(e,r,t,a)}else if(e.strategy===n||s===i){G(e,(c<<1)+(a?1:0),3);ae(e,D,O)}else{G(e,(u<<1)+(a?1:0),3);le(e,e.l_desc.max_code+1,e.d_desc.max_code+1,l+1);ae(e,e.dyn_ltree,e.dyn_dtree)}J(e);if(a){q(e)}}function pe(e,r,t){e.pending_buf[e.d_buf+e.last_lit*2]=r>>>8&255;e.pending_buf[e.d_buf+e.last_lit*2+1]=r&255;e.pending_buf[e.l_buf+e.last_lit]=t&255;e.last_lit++;if(r===0){e.dyn_ltree[t*2]++}else{e.matches++;r--;e.dyn_ltree[(P[t]+p+1)*2]++;e.dyn_dtree[V(r)*2]++}return e.last_lit===e.lit_bufsize-1}t._tr_init=ue;t._tr_stored_block=he;t._tr_flush_block=ve;t._tr_tally=pe;t._tr_align=de},{"../utils/common":27}],39:[function(e,r,t){"use strict";function a(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}r.exports=a},{}]},{},[9])(9)});var XLSX={};(function e(r){r.version="0.11.5";var t=1200;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")global.cptable=undefined}function a(){n(1200)}var n=function(e){t=e};function i(e){var r=[];for(var t=0,a=e.length;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return r.join("")}function o(e){var r=[];for(var t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join("")}var l=function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);if(r==255&&t==254)return s(e.substr(2));if(r==254&&t==255)return o(e.substr(2));if(r==65279)return e.substr(1);return e};var f=function Op(e){return String.fromCharCode(e)};if(typeof cptable!=="undefined"){n=function(e){t=e};l=function(e){if(e.charCodeAt(0)===255&&e.charCodeAt(1)===254){return cptable.utils.decode(1200,i(e.substr(2)))}return e};f=function Fp(e){if(t===1200)return String.fromCharCode(e);return cptable.utils.decode(t,[e&255,e>>8])[0]}}var c=null;var u=true;var h=function Pp(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(r){var t="";var a,n,i,s,o,l,f;for(var c=0;c>2;o=(a&3)<<4|n>>4;l=(n&15)<<2|i>>6;f=i&63;if(isNaN(n)){l=f=64}else if(isNaN(i)){f=64}t+=e.charAt(s)+e.charAt(o)+e.charAt(l)+e.charAt(f)}return t},decode:function r(t){var a="";var n,i,s;var o,l,f,c;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var u=0;u>4;i=(l&15)<<4|f>>2;s=(f&3)<<6|c;a+=String.fromCharCode(n);if(f!=64){a+=String.fromCharCode(i)}if(c!=64){a+=String.fromCharCode(s)}}return a}}}();var d=typeof Buffer!=="undefined"&&typeof process!=="undefined"&&typeof process.versions!=="undefined"&&process.versions.node;function v(e){return new(d?Buffer:Array)(e)}function p(e){if(d)return new Buffer(e,"binary");return e.split("").map(function(e){return e.charCodeAt(0)&255})}var b=function(e){return[].concat.apply([],e)};var m=/\u0000/g,g=/[\u0001-\u0006]/;var E={};var k=function Np(e){e.version="0.10.0";function r(e){var r="",t=e.length-1;while(t>=0)r+=e.charAt(t--);return r}function t(e,r){var t="";while(t.length=r?a:t("0",r-a.length)+a}function n(e,r){var a=""+e;return a.length>=r?a:t(" ",r-a.length)+a}function i(e,r){var a=""+e;return a.length>=r?a:a+t(" ",r-a.length)}function s(e,r){var a=""+Math.round(e);return a.length>=r?a:t("0",r-a.length)+a}function o(e,r){var a=""+e;return a.length>=r?a:t("0",r-a.length)+a}var l=Math.pow(2,32);function f(e,r){if(e>l||e<-l)return s(e,r);var t=Math.round(e);return o(t,r)}function c(e,r){r=r||0;return e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var h=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function d(e){e[0]="General";e[1]="0";e[2]="0.00";e[3]="#,##0";e[4]="#,##0.00";e[9]="0%";e[10]="0.00%";e[11]="0.00E+00";e[12]="# ?/?";e[13]="# ??/??";e[14]="m/d/yy";e[15]="d-mmm-yy";e[16]="d-mmm";e[17]="mmm-yy";e[18]="h:mm AM/PM";e[19]="h:mm:ss AM/PM";e[20]="h:mm";e[21]="h:mm:ss";e[22]="m/d/yy h:mm";e[37]="#,##0 ;(#,##0)";e[38]="#,##0 ;[Red](#,##0)";e[39]="#,##0.00;(#,##0.00)";e[40]="#,##0.00;[Red](#,##0.00)";e[45]="mm:ss";e[46]="[h]:mm:ss";e[47]="mmss.0";e[48]="##0.0E+0";e[49]="@";e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "';e[65535]="General"}var v={};d(v);function p(e,r,t){var a=e<0?-1:1;var n=e*a;var i=0,s=1,o=0;var l=1,f=0,c=0;var u=Math.floor(n);while(fr){if(f>r){c=l;o=i}else{c=f;o=s}}if(!t)return[0,a*o,c];var h=Math.floor(a*o/c);return[h,a*o-h*c,c]}function b(e,r,t){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),i=0;var s=[];var o={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(o.u)<1e-6)o.u=0;if(r&&r.date1904)a+=1462;if(o.u>.9999){o.u=0;if(++n==86400){o.T=n=0;++a;++o.D}}if(a===60){s=t?[1317,10,29]:[1900,2,29];i=3}else if(a===0){s=t?[1317,8,29]:[1900,1,0];i=6}else{if(a>60)--a;var l=new Date(1900,0,1);l.setDate(l.getDate()+a-1);s=[l.getFullYear(),l.getMonth()+1,l.getDate()];i=l.getDay();if(a<60)i=(i+6)%7;if(t)i=C(l,s)}o.y=s[0];o.m=s[1];o.d=s[2];o.S=n%60;n=Math.floor(n/60);o.M=n%60;n=Math.floor(n/60);o.H=n;o.q=i;return o}e.parse_date_code=b;var m=new Date(1899,11,31,0,0,0);var g=m.getTime();var E=new Date(1900,2,1,0,0,0);function k(e,r){var t=e.getTime();if(r)t-=1461*24*60*60*1e3;else if(e>=E)t+=24*60*60*1e3;return(t-(g+(e.getTimezoneOffset()-m.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function S(e){return e.toString(10)}e._general_int=S;var w=function M(){var e=/\.(\d*[1-9])0+$/,r=/\.0*$/,t=/\.(\d*[1-9])0+/,a=/\.0*[Ee]/,n=/(E[+-])(\d)$/;function i(e){var r=e<0?12:11;var t=l(e.toFixed(12));if(t.length<=r)return t;t=e.toPrecision(10);if(t.length<=r)return t;return e.toExponential(5)}function s(r){var t=r.toFixed(11).replace(e,".$1");if(t.length>(r<0?12:11))t=r.toPrecision(6);return t}function o(e){for(var r=0;r!=e.length;++r)if((e.charCodeAt(r)|32)===101)return e.replace(t,".$1").replace(a,"E").replace("e","E").replace(n,"$10$2");return e}function l(t){return t.indexOf(".")>-1?t.replace(r,"").replace(e,".$1"):t}return function f(e){var r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),t;if(r>=-4&&r<=-1)t=e.toPrecision(10+r);else if(Math.abs(r)<=9)t=i(e);else if(r===10)t=e.toFixed(10).substr(0,12);else t=s(e);return l(o(t))}}();e._general_num=w;function B(e,r){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?S(e):w(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return N(14,k(e,r&&r.date1904),r);}throw new Error("unsupported value in General format: "+e)}e._general=B;function C(){return 0}function _(e,r,t,n){var i="",s=0,o=0,l=t.y,f,c=0;switch(e){case 98:l=t.y+543;case 121:switch(r.length){case 1:;case 2:f=l%100;c=2;break;default:f=l%1e4;c=4;break;}break;case 109:switch(r.length){case 1:;case 2:f=t.m;c=r.length;break;case 3:return h[t.m-1][1];case 5:return h[t.m-1][0];default:return h[t.m-1][2];}break;case 100:switch(r.length){case 1:;case 2:f=t.d;c=r.length;break;case 3:return u[t.q][0];default:return u[t.q][1];}break;case 104:switch(r.length){case 1:;case 2:f=1+(t.H+11)%12;c=r.length;break;default:throw"bad hour format: "+r;}break;case 72:switch(r.length){case 1:;case 2:f=t.H;c=r.length;break;default:throw"bad hour format: "+r;}break;case 77:switch(r.length){case 1:;case 2:f=t.M;c=r.length;break;default:throw"bad minute format: "+r;}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;if(t.u===0&&(r=="s"||r=="ss"))return a(t.S,r.length);if(n>=2)o=n===3?1e3:100;else o=n===1?10:1;s=Math.round(o*(t.S+t.u));if(s>=60*o)s=0;if(r==="s")return s===0?"0":""+s/o;i=a(s,2+n);if(r==="ss")return i.substr(0,2);return"."+i.substr(2,r.length-1);case 90:switch(r){case"[h]":;case"[hh]":f=t.D*24+t.H;break;case"[m]":;case"[mm]":f=(t.D*24+t.H)*60+t.M;break;case"[s]":;case"[ss]":f=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+r;}c=r.length===3?1:2;break;case 101:f=l;c=1;}if(c>0)return a(f,c);else return""}function T(e){var r=3;if(e.length<=r)return e;var t=e.length%r,a=e.substr(0,t);for(;t!=e.length;t+=r)a+=(a.length>0?",":"")+e.substr(t,r);return a}var x=function U(){var e=/%/g;function s(r,a,n){var i=a.replace(e,""),s=a.length-i.length;return x(r,i,n*Math.pow(10,2*s))+t("%",s)}function o(e,r,t){var a=r.length-1;while(r.charCodeAt(a-1)===44)--a;return x(e,r.substr(0,a),t/Math.pow(10,3*(r.length-a)))}function l(e,r){var t;var a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";else if(r<0)return"-"+l(e,-r);var n=e.indexOf(".");if(n===-1)n=e.indexOf("E");var i=Math.floor(Math.log(r)*Math.LOG10E)%n;if(i<0)i+=n;t=(r/Math.pow(10,i)).toPrecision(a+1+(n+i)%n);if(t.indexOf("e")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);if(t.indexOf(".")===-1)t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+i);else t+="E+"+(s-i);while(t.substr(0,2)==="0."){t=t.charAt(0)+t.substr(2,n)+"."+t.substr(2+n);t=t.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(e,r,t,a){return r+t+a.substr(0,(n+i)%n)+"."+a.substr(i)+"E"})}else t=r.toExponential(a);if(e.match(/E\+00$/)&&t.match(/e[+-]\d$/))t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1);if(e.match(/E\-/)&&t.match(/e\+/))t=t.replace(/e\+/,"e");return t.replace("e","E")}var c=/# (\?+)( ?)\/( ?)(\d+)/;function u(e,r,i){var s=parseInt(e[4],10),o=Math.round(r*s),l=Math.floor(o/s);var f=o-l*s,c=s;return i+(l===0?"":""+l)+" "+(f===0?t(" ",e[1].length+1+e[4].length):n(f,e[1].length)+e[2]+"/"+e[3]+a(c,e[4].length))}function h(e,r,a){return a+(r===0?"":""+r)+t(" ",e[1].length+2+e[4].length)}var d=/^#*0*\.([0#]+)/;var v=/\).*[0#]/;var b=/\(###\) ###\\?-####/;function m(e){var r="",t;for(var a=0;a!=e.length;++a)switch(t=e.charCodeAt(a)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t);}return r}function g(e,r){var t=Math.pow(10,r);return""+Math.round(e*t)/t}function E(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 0}return Math.round((e-Math.floor(e))*Math.pow(10,r))}function k(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 1}return 0}function S(e){if(e<2147483647&&e>-2147483648)return""+(e>=0?e|0:e-1|0);return""+Math.floor(e)}function w(e,h,B){if(e.charCodeAt(0)===40&&!h.match(v)){var C=h.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(B>=0)return w("n",C,B);return"("+w("n",C,-B)+")"}if(h.charCodeAt(h.length-1)===44)return o(e,h,B);if(h.indexOf("%")!==-1)return s(e,h,B);if(h.indexOf("E")!==-1)return l(h,B);if(h.charCodeAt(0)===36)return"$"+w(e,h.substr(h.charAt(1)==" "?2:1),B);var _;var I,A,y,R=Math.abs(B),D=B<0?"-":"";if(h.match(/^00+$/))return D+f(R,h.length);if(h.match(/^[#?]+$/)){_=f(B,0);if(_==="0")_="";return _.length>h.length?_:m(h.substr(0,h.length-_.length))+_}if(I=h.match(c))return u(I,R,D);if(h.match(/^#+0+$/))return D+f(R,h.length-h.indexOf("0"));if(I=h.match(d)){_=g(B,I[1].length).replace(/^([^\.]+)$/,"$1."+m(I[1])).replace(/\.$/,"."+m(I[1])).replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(I[1]).length-r.length)});return h.indexOf("0.")!==-1?_:_.replace(/^0\./,".")}h=h.replace(/^#+([0.])/,"$1");if(I=h.match(/^(0*)\.(#*)$/)){return D+g(R,I[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,I[1].length?"0.":".")}if(I=h.match(/^#{1,3},##0(\.?)$/))return D+T(f(R,0));if(I=h.match(/^#,##0\.([#0]*0)$/)){return B<0?"-"+w(e,h,-B):T(""+(Math.floor(B)+k(B,I[1].length)))+"."+a(E(B,I[1].length),I[1].length)}if(I=h.match(/^#,#*,#0/))return w(e,h.replace(/^#,#*,/,""),B);if(I=h.match(/^([0#]+)(\\?-([0#]+))+$/)){_=r(w(e,h.replace(/[\\-]/g,""),B));A=0;return r(r(h.replace(/\\/g,"")).replace(/[0#]/g,function(e){return A<_.length?_.charAt(A++):e==="0"?"0":""}))}if(h.match(b)){_=w(e,"##########",B);return"("+_.substr(0,3)+") "+_.substr(3,3)+"-"+_.substr(6)}var O="";if(I=h.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)){A=Math.min(I[4].length,7);y=p(R,Math.pow(10,A)-1,false);_=""+D;O=x("n",I[1],y[1]);if(O.charAt(O.length-1)==" ")O=O.substr(0,O.length-1)+"0";_+=O+I[2]+"/"+I[3];O=i(y[2],A);if(O.length=0)return I("n",l,o);return"("+I("n",l,-o)+")"}if(s.charCodeAt(s.length-1)===44)return B(e,s,o);if(s.indexOf("%")!==-1)return C(e,s,o);if(s.indexOf("E")!==-1)return _(s,o);if(s.charCodeAt(0)===36)return"$"+I(e,s.substr(s.charAt(1)==" "?2:1),o);var f;var u,g,E,k=Math.abs(o),S=o<0?"-":"";if(s.match(/^00+$/))return S+a(k,s.length);if(s.match(/^[#?]+$/)){f=""+o;if(o===0)f="";return f.length>s.length?f:m(s.substr(0,s.length-f.length))+f}if(u=s.match(c))return h(u,k,S);if(s.match(/^#+0+$/))return S+a(k,s.length-s.indexOf("0"));if(u=s.match(d)){f=(""+o).replace(/^([^\.]+)$/,"$1."+m(u[1])).replace(/\.$/,"."+m(u[1]));f=f.replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(u[1]).length-r.length)});return s.indexOf("0.")!==-1?f:f.replace(/^0\./,".")}s=s.replace(/^#+([0.])/,"$1");if(u=s.match(/^(0*)\.(#*)$/)){return S+(""+k).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,u[1].length?"0.":".")}if(u=s.match(/^#{1,3},##0(\.?)$/))return S+T(""+k);if(u=s.match(/^#,##0\.([#0]*0)$/)){return o<0?"-"+I(e,s,-o):T(""+o)+"."+t("0",u[1].length)}if(u=s.match(/^#,#*,#0/))return I(e,s.replace(/^#,#*,/,""),o);if(u=s.match(/^([0#]+)(\\?-([0#]+))+$/)){f=r(I(e,s.replace(/[\\-]/g,""),o));g=0;return r(r(s.replace(/\\/g,"")).replace(/[0#]/g,function(e){return g-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r-1){}break;case" ":++r;break;default:++r;break;}}return false}e.is_date=y;function R(e,r,t,a){var n=[],i="",s=0,o="",l="t",f,u,h;var d="H";while(s=12?"P":"A";m.t="T";d="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(f!=null)m.v=f.H>=12?"PM":"AM";m.t="T";s+=5;d="h"}else{m.t="t";++s}if(f==null&&m.t==="T")return"";n[n.length]=m;l=o;break;case"[":i=o;while(e.charAt(s++)!=="]"&&s-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!y(e))n[n.length]={t:"t",v:i}}break;case".":if(f!=null){i=o;while(++s-1||o=="\\"&&e.charAt(s+1)=="-"&&s-1)i+=o;n[n.length]={t:"n",v:i};break;case"?":i=o;while(e.charAt(++s)===o)i+=o;n[n.length]={t:o,v:i};l=o;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":o,v:o};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=o;while(s-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:o,v:o};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(o)===-1)throw new Error("unrecognized character "+o+" in "+e);n[n.length]={t:"t",v:o};++s;break;}}var g=0,E=0,k;for(s=n.length-1,l="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=d;l="h";if(g<1)g=1;break;case"s":if(k=n[s].v.match(/\.0+$/))E=Math.max(E,k[0].length-1);if(g<3)g=3;case"d":;case"y":;case"M":;case"e":l=n[s].t;break;case"m":if(l==="s"){n[s].t="M";if(g<2)g=2}break;case"X":break;case"Z":if(g<1&&n[s].v.match(/[Hh]/))g=1;if(g<2&&n[s].v.match(/[Mm]/))g=2;if(g<3&&n[s].v.match(/[Ss]/))g=3;}}switch(g){case 0:break;case 1:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}if(f.M>=60){f.M=0;++f.H}break;case 2:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}break;}var S="",w;for(s=0;s0){if(S.charCodeAt(0)==40){T=r<0&&S.charCodeAt(0)===45?-r:r;I=x("(",S,T)}else{T=r<0&&a>1?-r:r;I=x("n",S,T);if(T<0&&n[0]&&n[0].t=="t"){I=I.substr(1);n[0].v="-"+n[0].v}}w=I.length-1;var R=n.length;for(s=0;s-1){R=s;break}var D=n.length;if(R===n.length&&I.indexOf("E")===-1){for(s=n.length-1;s>=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;if(w>=n[s].v.length-1){w-=n[s].v.length;n[s].v=I.substr(w+1,n[s].v.length)}else if(w<0)n[s].v="";else{n[s].v=I.substr(0,w+1);w=-1}n[s].t="t";D=s}if(w>=0&&D=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;u=n[s].v.indexOf(".")>-1&&s===R?n[s].v.indexOf(".")-1:n[s].v.length-1;C=n[s].v.substr(u+1);for(;u>=0;--u){if(w>=0&&(n[s].v.charAt(u)==="0"||n[s].v.charAt(u)==="#"))C=I.charAt(w--)+C}n[s].v=C;n[s].t="t";D=s}if(w>=0&&D-1&&s===R?n[s].v.indexOf(".")+1:0;C=n[s].v.substr(0,u);for(;u-1){T=a>1&&r<0&&s>0&&n[s-1].v==="-"?-r:r;n[s].v=x(n[s].t,n[s].v,T);n[s].t="t"}var O="";for(s=0;s!==n.length;++s)if(n[s]!=null)O+=n[s].v;return O}e._eval=R;var D=/\[[=<>]/;var O=/\[([=<>]*)(-?\d+\.?\d*)\]/;function F(e,r){if(r==null)return false;var t=parseFloat(r[2]);switch(r[1]){case"=":if(e==t)return true;break;case">":if(e>t)return true;break;case"<":if(e":if(e!=t)return true;break;case">=":if(e>=t)return true;break;case"<=":if(e<=t)return true;break;}return false}function P(e,r){var t=I(e);var a=t.length,n=t[a-1].indexOf("@");if(a<4&&n>-1)--a;if(t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if(typeof r!=="number")return[4,t.length===4||n>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=n>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=n>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=n>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"];break;case 4:break;}var i=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf("[")===-1&&t[1].indexOf("[")===-1)return[a,i];if(t[0].match(D)!=null||t[1].match(D)!=null){var s=t[0].match(O);var o=t[1].match(O);return F(r,s)?[a,t[0]]:F(r,o)?[a,t[1]]:[a,t[s!=null&&o!=null?2:1]]}return[a,i]}function N(e,r,t){if(t==null)t={};var a="";switch(typeof e){case"string":if(e=="m/d/yy"&&t.dateNF)a=t.dateNF;else a=e;break;case"number":if(e==14&&t.dateNF)a=t.dateNF;else a=(t.table!=null?t.table:v)[e];break;}if(c(a,0))return B(r,t);if(r instanceof Date)r=k(r,t.date1904);var n=P(a,r);if(c(n[1]))return B(r,t);if(r===true)r="TRUE";else if(r===false)r="FALSE";else if(r===""||r==null)return"";return R(n[1],r,t,n[0])}function L(e,r){if(typeof r!="number"){r=+r||-1;for(var t=0;t<392;++t){if(v[t]==undefined){if(r<0)r=t;continue}if(v[t]==e){r=t;break}}if(r<0)r=391}v[r]=e;return r}e.load=L;e._table=v;e.get_table=function H(){return v};e.load_table=function W(e){for(var r=0;r!=392;++r)if(e[r]!==undefined)L(e[r],r)};e.init_table=d;e.format=N};k(E);var S={"General Number":"General","General Date":E._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":E._table[15],"Short Date":E._table[14],"Long Time":E._table[19],"Medium Time":E._table[18],"Short Time":E._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:E._table[2],Standard:E._table[4],Percent:E._table[10],Scientific:E._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var w=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function B(e){var r=typeof e=="number"?E._table[e]:e;r=r.replace(w,"(\\d+)");return new RegExp("^"+r+"$")}function C(e,r,t){var a=-1,n=-1,i=-1,s=-1,o=-1,l=-1;(r.match(w)||[]).forEach(function(e,r){var f=parseInt(t[r+1],10);switch(e.toLowerCase().charAt(0)){case"y":a=f;break;case"d":i=f;break;case"h":s=f;break;case"s":l=f;break;case"m":if(s>=0)o=f;else n=f;break;}});if(l>=0&&o==-1&&n>=0){o=n;n=-1}var f=(""+(a>=0?a:(new Date).getFullYear())).slice(-4)+"-"+("00"+(n>=1?n:1)).slice(-2)+"-"+("00"+(i>=1?i:1)).slice(-2);if(f.length==7)f="0"+f;if(f.length==8)f="20"+f;var c=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2);if(s==-1&&o==-1&&l==-1)return f;if(a==-1&&n==-1&&i==-1)return c;return f+"T"+c}var _=true;var T=function Lp(){var e={};e.version="0.13.1";function r(e,r){var t=e.split("/"),a=r.split("/");for(var n=0,i=0,s=Math.min(t.length,a.length);n0&&v!==A)C[v].name="!MiniFAT";C[b[0]].name="!FAT";C.fat_addrs=b;C.ssz=a;var _={},T=[],x=[],I=[],y={};d(h,C,B,T,n,_,x);l(x,y,I,T);T.shift();var R={FileIndex:x,FullPaths:I,FullPathDir:y};if(r&&r.raw)R.raw={header:E,sectors:B};return R}function i(e){e.chk(y,"Header Signature: ");e.chk(D,"CLSID: ");var r=e._R(2,"u");return[e._R(2,"u"),r]}function s(e,r){var t=9;e.l+=2;switch(t=e._R(2)){case 9:if(r!=3)throw new Error("Sector Shift: Expected 9 saw "+t);break;case 12:if(r!=4)throw new Error("Sector Shift: Expected 12 saw "+t);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+t);}e.chk("0600","Mini Sector Shift: ");e.chk("000000000000","Reserved: ")}function o(e,r){var t=Math.ceil(e.length/r)-1;var a=[];for(var n=1;n>>2)-1;if(!s)return;for(var l=0;l=0;){n[l]=true;i[i.length]=l;s.push(e[l]);var c=t[Math.floor(l*4/a)];f=l*4&o;if(a<4+f)throw new Error("FAT boundary crossed: "+l+" 4 "+a);if(!e[c])break;l=pr(e[c],f)}return{nodes:i,data:je([s])}}function u(e,r,t,a){var n=e.length,i=[];var s=[],o=[],l=[];var f=a-1,c=0,u=0,h=0,d=0;for(c=0;c=n)h-=n;if(s[h])continue;l=[];for(u=h;u>=0;){s[u]=true;o[o.length]=u;l.push(e[u]);var v=t[Math.floor(u*4/a)];d=u*4&f;if(a<4+d)throw new Error("FAT boundary crossed: "+u+" 4 "+a);if(!e[v])break;u=pr(e[v],d)}i[h]={nodes:o,data:je([l])}}return i}function d(e,r,t,a,n,i,s){var o=0,l=a.length?2:0;var f=r[e].data;var u=0,h=0,d;for(;u0&&o!==A)r[o].name="!StreamData"}else if(b.size>=4096){b.storage="fat";if(r[b.start]===undefined)r[b.start]=c(t,b.start,r.fat_addrs,r.ssz);r[b.start].name=b.name;b.content=r[b.start].data.slice(0,b.size);Cr(b.content,0)}else{b.storage="minifat";if(o!==A&&b.start!==A&&r[o]){b.content=r[o].data.slice(b.start*I,b.start*I+b.size);Cr(b.content,0)}}i[d]=b;s.push(b)}}function v(e,r){return new Date((vr(e,r+4)/1e7*Math.pow(2,32)+vr(e,r)/1e7-11644473600)*1e3)}var E;function k(e,r){if(E==null)E=require("fs");return n(E.readFileSync(e),r)}function S(e,r){switch(r&&r.type||"base64"){case"file":return k(e,r);case"base64":return n(p(h.decode(e)),r);case"binary":return n(p(e),r);}return n(e,r)}function w(e,r){var t=r||{},a=t.root||"Root Entry";if(!e.FullPaths)e.FullPaths=[];if(!e.FileIndex)e.FileIndex=[];if(e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");if(e.FullPaths.length===0){e.FullPaths[0]=a+"/";e.FileIndex[0]={name:a,type:5}}if(t.CLSID)e.FileIndex[0].clsid=t.CLSID;B(e)}function B(e){var r="Sh33tJ5";if(T.find(e,"/"+r))return;var t=Ir(4);t[0]=55;t[1]=t[3]=50;t[2]=54;e.FileIndex.push({name:r,type:2,content:t,size:4,L:69,R:69,C:69});e.FullPaths.push(e.FullPaths[0]+r);C(e)}function C(e,n){w(e);var i=false,s=false;for(var o=e.FullPaths.length-1;o>=0;--o){var l=e.FileIndex[o];switch(l.type){case 0:if(s)i=true;else{e.FileIndex.pop();e.FullPaths.pop()}break;case 1:;case 2:;case 5:s=true;if(isNaN(l.R*l.L*l.C))i=true;if(l.R>-1&&l.L>-1&&l.R==l.L)i=true;break;default:i=true;break;}}if(!i&&!n)return;var f=new Date(1987,1,19),c=0;var u=[];for(o=0;o1?1:-1;d.size=0;d.type=5}else if(v.slice(-1)=="/"){for(c=o+1;c=u.length?-1:c;for(c=o+1;c=u.length?-1:c;d.type=1}else{if(t(e.FullPaths[o+1]||"")==t(v))d.R=o+1;d.type=2}}}function _(e,r){C(e);var t=function(e){var r=0,t=0;for(var a=0;a>6;else t+=i+511>>9}var s=e.FullPaths.length+3>>2;var o=r+7>>3;var l=r+127>>7;var f=o+t+s+l;var c=f+127>>7;var u=c<=109?0:Math.ceil((c-109)/127);while(f+c+u+127>>7>c)u=++c<=109?0:Math.ceil((c-109)/127);var h=[1,u,c,l,s,t,r,0];e.FileIndex[0].size=r<<6;h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3);return h}(e);var a=Ir(t[7]<<9);var n=0,i=0;{for(n=0;n<8;++n)a._W(1,R[n]);for(n=0;n<8;++n)a._W(2,0);a._W(2,62);a._W(2,3);a._W(2,65534);a._W(2,9);a._W(2,6);for(n=0;n<3;++n)a._W(2,0);a._W(4,0);a._W(4,t[2]);a._W(4,t[0]+t[1]+t[2]+t[3]-1);a._W(4,0);a._W(4,1<<12);a._W(4,t[3]?t[0]+t[1]+t[2]-1:A);a._W(4,t[3]);a._W(-4,t[1]?t[0]-1:A);a._W(4,t[1]);for(n=0;n<109;++n)a._W(-4,n>9)}s(t[6]+7>>3);while(a.l&511)a._W(-4,O.ENDOFCHAIN);i=n=0;for(o=0;o=4096)continue;f.start=i;s(l+63>>6)}while(a.l&511)a._W(-4,O.ENDOFCHAIN);for(n=0;n=4096){a.l=f.start+1<<9;for(o=0;o0&&f.size<4096){for(o=0;o3)a=true;switch(n[i].substr(n[i].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+n[i].substr(n[i].length-1));case"D":t*=24;case"H":t*=60;case"M":if(!a)throw new Error("Unsupported ISO Duration Field: M");else t*=60;case"S":break;}r+=t*parseInt(n[i],10)}return r}var M=new Date("2017-02-19T19:06:09.000Z");if(isNaN(M.getFullYear()))M=new Date("2/19/17");var U=M.getFullYear()==2017;function H(e,r){var t=new Date(e);if(U){if(r>0)t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3);else if(r<0)t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3);return t}if(e instanceof Date)return e;if(M.getFullYear()==1917&&!isNaN(t.getFullYear())){var a=t.getFullYear();if(e.indexOf(""+a)>-1)return t;t.setFullYear(t.getFullYear()+100);return t}var n=e.match(/\d+/g)||["2017","2","19","0","0","0"];var i=new Date(+n[0],+n[1]-1,+n[2],+n[3]||0,+n[4]||0,+n[5]||0);if(e.indexOf("Z")>-1)i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3);return i}function W(e){var r="";for(var t=0;t!=e.length;++t)r+=String.fromCharCode(e[t]);return r}function z(e){var r=[];for(var t=0;t!=e.length;++t)r.push(e.charCodeAt(t));return r}function V(e){if(typeof JSON!="undefined"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;var r={};for(var t in e)if(e.hasOwnProperty(t))r[t]=V(e[t]);return r}function X(e,r){var t="";while(t.length8099)return t;if((n>0||i>1)&&a!=101)return r;if(e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/))return r;if(e.match(/[^-0-9:,\/\\]/))return t;return r}var K="abacaba".split(/(:?b)/i).length==5;function Y(e,r,t){if(K||typeof r=="string")return e.split(r);var a=e.split(r),n=[a[0]];for(var i=1;i\/]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;var le=/<[\/\?]?[a-zA-Z0-9:]+(?:\s+[^"\s?>\/]+=(?:"[^"]*"|'[^']*'|[^'">\s]+))*\s?[\/\?]?>/g;if(!se.match(le))le=/<[^>]*>/g;var fe=/<\w*:/,ce=/<(\/?)\w+:/;function ue(e,r){var t={};var a=0,n=0;for(;a!==e.length;++a)if((n=e.charCodeAt(a))===32||n===10||n===13)break;if(!r)t[0]=e.substr(0,a);if(a===e.length)return t;var i=e.match(oe),s=0,o="",l=0,f="",c="",u=1;if(i)for(l=0;l!=i.length;++l){c=i[l];for(n=0;n!=c.length;++n)if(c.charCodeAt(n)===61)break;f=c.substr(0,n);u=(a=c.charCodeAt(n+1))==34||a==39?1:0;o=c.substring(n+1+u,c.length-u);for(s=0;s!=f.length;++s)if(f.charCodeAt(s)===58)break;if(s===f.length){if(f.indexOf("_")>0)f=f.substr(0,f.indexOf("_"));t[f]=o}else{var h=(s===5&&f.substr(0,5)==="xmlns"?"xmlns":"")+f.substr(s+1);if(t[h]&&f.substr(s-3,3)=="ext")continue;t[h]=o}}return t}function he(e){return e.replace(ce,"<$1")}var de={""":'"',"'":"'",">":">","<":"<","&":"&"};var ve=y(de);var pe=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/g,r=/_x([\da-fA-F]{4})_/g;return function t(a){var n=a+"",i=n.indexOf("-1?16:10))||e}).replace(r,function(e,r){return String.fromCharCode(parseInt(r,16))});var s=n.indexOf("]]>");return t(n.slice(0,i))+n.slice(i+9,s)+t(n.slice(s+3))}}();var be=/[&<>'"]/g,me=/[\u0000-\u0008\u000b-\u001f]/g;function ge(e,r){var t=e+"";return t.replace(be,function(e){return ve[e]}).replace(me,function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"})}function Ee(e){return ge(e).replace(/ /g,"_x0020_")}var ke=/[\u0000-\u001f]/g;function Se(e){var r=e+"";return r.replace(be,function(e){return ve[e]}).replace(ke,function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"})}var we=function(){var e=/&#(\d+);/g;function r(e,r){return String.fromCharCode(parseInt(r,10))}return function t(a){return a.replace(e,r)}}();var Be=function(){return function e(r){return r.replace(/(\r\n|[\r\n])/g," ")}}();function Ce(e,r){switch(e){case 1:;case true:;case"1":;case"true":;case"TRUE":return true;default:return false;}}var _e=function Mp(e){var r="",t=0,a=0,n=0,i=0,s=0,o=0;while(t191&&a<224){s=(a&31)<<6;s|=n&63;r+=String.fromCharCode(s);continue}i=e.charCodeAt(t++);if(a<240){r+=String.fromCharCode((a&15)<<12|(n&63)<<6|i&63);continue}s=e.charCodeAt(t++);o=((a&7)<<18|(n&63)<<12|(i&63)<<6|s&63)-65536;r+=String.fromCharCode(55296+(o>>>10&1023));r+=String.fromCharCode(56320+(o&1023))}return r};var Te=function(e){var r=[],t=0,a=0,n=0;while(t>6)));r.push(String.fromCharCode(128+(a&63)));break;case a>=55296&&a<57344:a-=55296;n=e.charCodeAt(t++)-56320+(a<<10);r.push(String.fromCharCode(240+(n>>18&7)));r.push(String.fromCharCode(144+(n>>12&63)));r.push(String.fromCharCode(128+(n>>6&63)));r.push(String.fromCharCode(128+(n&63)));break;default:r.push(String.fromCharCode(224+(a>>12)));r.push(String.fromCharCode(128+(a>>6&63)));r.push(String.fromCharCode(128+(a&63)));}}return r.join("")};if(d){var xe=function Up(e){var r=new Buffer(2*e.length),t,a,n=1,i=0,s=0,o;for(a=0;a>>10&1023);t=56320+(t&1023)}if(s!==0){r[i++]=s&255;r[i++]=s>>>8;s=0}r[i++]=t%256;r[i++]=t>>>8}return r.slice(0,i).toString("ucs2")};var Ie="foo bar baz☃🍣";if(_e(Ie)==xe(Ie))_e=xe;var Ae=function Hp(e){return Buffer(e,"binary").toString("utf8")};if(_e(Ie)==Ae(Ie))_e=Ae;Te=function(e){return new Buffer(e,"utf8").toString("binary")}}var ye=function(){var e={};return function r(t,a){var n=t+"|"+(a||"");if(e[n])return e[n];return e[n]=new RegExp("<(?:\\w+:)?"+t+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",a||"")}}();function Re(e){return e.trim().replace(/\s+/g," ").replace(/<\s*[bB][rR]\s*\/?/g,"\n").replace(/<[^>]*>/g,"").replace(/ /g," ")}var De=function(){var e={};return function r(t){if(e[t]!==undefined)return e[t];return e[t]=new RegExp("<(?:vt:)?"+t+">([\\s\\S]*?)","g")}}();var Oe=/<\/?(?:vt:)?variant>/g,Fe=/<(?:vt:)([^>]*)>([\s\S]*)"+r+""; -}function Me(e){return I(e).map(function(r){return" "+r+'="'+e[r]+'"'}).join("")}function Ue(e,r,t){return"<"+e+(x(t)?Me(t):"")+(x(r)?(r.match(Ne)?' xml:space="preserve"':"")+">"+r+""}function He(e,r){try{return e.toISOString().replace(/\.\d*/,"")}catch(t){if(r)throw t}return""}function We(e){switch(typeof e){case"string":return Ue("vt:lpwstr",e);case"number":return Ue((e|0)==e?"vt:i4":"vt:r8",String(e));case"boolean":return Ue("vt:bool",e?"true":"false");}if(e instanceof Date)return Ue("vt:filetime",He(e));throw new Error("Unable to serialize "+e)}var ze={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};ze.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];var Ve={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function Xe(e,r){var t=1-2*(e[r+7]>>>7);var a=((e[r+7]&127)<<4)+(e[r+6]>>>4&15);var n=e[r+6]&15;for(var i=5;i>=0;--i)n=n*256+e[r+i];if(a==2047)return n==0?t*Infinity:NaN;if(a==0)a=-1022;else{a-=1023;n+=Math.pow(2,52)}return t*Math.pow(2,a-52)*n}function Ge(e,r,t){var a=(r<0||1/r==-Infinity?1:0)<<7,n=0,i=0;var s=a?-r:r;if(!isFinite(s)){n=2047;i=isNaN(r)?26985:0}else if(s==0)n=i=0;else{n=Math.floor(Math.log(s)/Math.LN2);i=s*Math.pow(2,52-n);if(n<=-1023&&(!isFinite(i)||i>4|a}var je=function(e){var r=[];for(var t=0;t0?Je(e,r+4,r+4+t-1):""};var rr=er;var tr=function(e,r){var t=2*vr(e,r);return t>0?Je(e,r+4,r+4+t-1):""};var ar=tr;var nr,ir;nr=ir=function Wp(e,r){var t=vr(e,r);return t>0?Ye(e,r+4,r+4+t):""};var sr=function(e,r){var t=vr(e,r);return t>0?Je(e,r+4,r+4+t):""};var or=sr;var lr,fr;lr=fr=function(e,r){return Xe(e,r)};var cr=function zp(e){return Array.isArray(e)};if(d){Ye=function(e,r,t){if(!Buffer.isBuffer(e))return $e(e,r,t);return e.toString("utf16le",r,t)};Ze=function(e,r,t){return Buffer.isBuffer(e)?e.toString("hex",r,r+t):Qe(e,r,t)};er=function Vp(e,r){if(!Buffer.isBuffer(e))return rr(e,r);var t=e.readUInt32LE(r);return t>0?e.toString("utf8",r+4,r+4+t-1):""};tr=function Xp(e,r){if(!Buffer.isBuffer(e))return ar(e,r);var t=2*e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t-1)};nr=function Gp(e,r){if(!Buffer.isBuffer(e))return ir(e,r);var t=e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t)};sr=function jp(e,r){if(!Buffer.isBuffer(e))return or(e,r);var t=e.readUInt32LE(r);return e.toString("utf8",r+4,r+4+t)};Je=function Kp(e,r,t){return Buffer.isBuffer(e)?e.toString("utf8",r,t):Je(e,r,t)};je=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):Ke(e)};b=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)};lr=function Yp(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return fr(e,r)};cr=function $p(e){return Buffer.isBuffer(e)||Array.isArray(e)}}if(typeof cptable!=="undefined"){Ye=function(e,r,t){return cptable.utils.decode(1200,e.slice(r,t))};Je=function(e,r,t){return cptable.utils.decode(65001,e.slice(r,t))};er=function(e,r){var a=vr(e,r);return a>0?cptable.utils.decode(t,e.slice(r+4,r+4+a-1)):""};tr=function(e,r){var t=2*vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};nr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t)):""};sr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(65001,e.slice(r+4,r+4+t)):""}}var ur=function(e,r){return e[r]};var hr=function(e,r){return e[r+1]*(1<<8)+e[r]};var dr=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var vr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var pr=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var br=function(e){return(e.match(/../g)||[]).map(function(e){return parseInt(e,16)})};var mr=typeof Buffer!=="undefined"?function(e){return Buffer.isBuffer(e)?new Buffer(e,"hex"):br(e)}:br;function gr(e,r){var a="",n,i,s=[],o,l,c,u;switch(r){case"dbcs":u=this.l;if(d&&Buffer.isBuffer(this))a=this.slice(this.l,this.l+2*e).toString("utf16le");else for(c=0;c!=e;++c){a+=String.fromCharCode(hr(this,u));u+=2}e*=2;break;case"utf8":a=Je(this,this.l,this.l+e);break;case"utf16le":e*=2;a=Ye(this,this.l,this.l+e);break;case"wstr":if(typeof cptable!=="undefined")a=cptable.utils.decode(t,this.slice(this.l,this.l+2*e));else return gr.call(this,e,"dbcs");e=2*e;break;case"lpstr":a=er(this,this.l);e=5+a.length;break;case"lpwstr":a=tr(this,this.l);e=5+a.length;if(a[a.length-1]=="\0")e+=2;break;case"lpp4":e=4+vr(this,this.l);a=nr(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+vr(this,this.l);a=sr(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;a="";while((o=ur(this,this.l+e++))!==0)s.push(f(o));a=s.join("");break;case"_wstr":e=0;a="";while((o=hr(this,this.l+e))!==0){s.push(f(o));e+=2}e+=2;a=s.join("");break;case"dbcs-cont":a="";u=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(u)!==-1){o=ur(this,u);this.l=u+1;l=gr.call(this,e-c,o?"dbcs-cont":"sbcs-cont");return s.join("")+l}s.push(f(hr(this,u)));u+=2}a=s.join("");e*=2;break;case"sbcs-cont":a="";u=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(u)!==-1){o=ur(this,u);this.l=u+1;l=gr.call(this,e-c,o?"dbcs-cont":"sbcs-cont");return s.join("")+l}s.push(f(ur(this,u)));u+=1}a=s.join("");break;default:switch(e){case 1:n=ur(this,this.l);this.l++;return n;case 2:n=(r==="i"?dr:hr)(this,this.l);this.l+=2;return n;case 4:if(r==="i"||(this[this.l+3]&128)===0){n=pr(this,this.l);this.l+=4;return n}else{i=vr(this,this.l);this.l+=4}return i;case 8:if(r==="f"){i=lr(this,this.l);this.l+=8;return i};case 16:a=Ze(this,this.l,e);break;};}this.l+=e;return a}var Er=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var kr=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var Sr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function wr(e,r,t){var a=0,n=0;if(t==="dbcs"){for(n=0;n!=r.length;++n)Sr(this,r.charCodeAt(n),this.l+2*n);a=2*r.length}else if(t==="sbcs"){for(n=0;n!=r.length;++n)this[this.l+n]=r.charCodeAt(n)&255;a=r.length}else if(t==="hex"){for(;n>8}while(this.l>>=8;this[this.l+1]=r&255;break;case 3:a=3;this[this.l]=r&255;r>>>=8;this[this.l+1]=r&255;r>>>=8;this[this.l+2]=r&255;break;case 4:a=4;Er(this,r,this.l);break;case 8:a=8;if(t==="f"){Ge(this,r,this.l);break};case 16:break;case-4:a=4;kr(this,r,this.l);break;}this.l+=a;return this}function Br(e,r){var t=Ze(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function Cr(e,r){e.l=r;e._R=gr;e.chk=Br;e._W=wr}function _r(e,r){e.l+=r}function Tr(e,r){if(typeof console!="undefined")console.log(e.slice(e.l,e.l+r));e.l+=r}function xr(e,r){e.l+=r}function Ir(e){var r=v(e);Cr(r,0);return r}function Ar(e,r,t){if(!e)return;var a,n,i;Cr(e,e.l||0);var s=e.length,o=0,l=0;while(e.la.l)a=a.slice(0,a.l);if(a.length>0)e.push(a);a=null};var i=function c(e){if(a&&e=128?1:0)+1+a;if(a>=128)++i;if(a>=16384)++i;if(a>=2097152)++i;var s=e.next(i);if(n<=127)s._W(1,n);else{s._W(1,(n&127)+128);s._W(1,n>>7)}for(var o=0;o!=4;++o){if(a>=128){s._W(1,(a&127)+128);a>>=7}else{s._W(1,a);break}}if(a>0&&cr(t))e.push(t)}function Dr(e,r,t){var a=V(e);if(r.s){if(a.cRel)a.c+=r.s.c;if(a.rRel)a.r+=r.s.r}else{a.c+=r.c;a.r+=r.r}if(!t||t.biff<12){while(a.c>=256)a.c-=256;while(a.r>=65536)a.r-=65536}return a}function Or(e,r,t){var a=V(e);a.s=Dr(a.s,r.s,t);a.e=Dr(a.e,r.s,t);return a}function Fr(e){var r=Yr(e);if(e.cRel===0)r=Xr(r);if(e.rRel===0)r=Hr(r);return r}function Pr(e,r){if(e.s.r==0&&!e.s.rRel){if(e.e.r==(r.biff>=12?1048575:65535)&&!e.e.rRel){return(e.s.cRel?"":"$")+Vr(e.s.c)+":"+(e.e.cRel?"":"$")+Vr(e.e.c)}}if(e.s.c==0&&!e.s.cRel){if(e.e.c==(r.biff>=12?65535:255)&&!e.e.cRel){return(e.s.rRel?"":"$")+Ur(e.s.r)+":"+(e.e.rRel?"":"$")+Ur(e.e.r)}}return Fr(e.s)+":"+Fr(e.e)}var Nr={};var Lr=function(e,r){var t;if(typeof r!=="undefined")t=r;else if(typeof require!=="undefined"){try{t=undefined}catch(a){t=null}}e.rc4=function(e,r){var t=new Array(256);var a=0,n=0,i=0,s=0;for(n=0;n!=256;++n)t[n]=n;for(n=0;n!=256;++n){i=i+t[n]+e[n%e.length].charCodeAt(0)&255;s=t[n];t[n]=t[i];t[i]=s}n=i=0;var o=Buffer(r.length);for(a=0;a!=r.length;++a){n=n+1&255;i=(i+t[n])%256;s=t[n];t[n]=t[i];t[i]=s;o[a]=r[a]^t[t[n]+t[i]&255]}return o};e.md5=function(e){if(!t)throw new Error("Unsupported crypto");return t.createHash("md5").update(e).digest("hex")}};Lr(Nr,typeof crypto!=="undefined"?crypto:undefined);function Mr(e){return parseInt(Wr(e),10)-1}function Ur(e){return""+(e+1)}function Hr(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function Wr(e){return e.replace(/\$(\d+)$/,"$1")}function zr(e){var r=Gr(e),t=0,a=0;for(;a!==r.length;++a)t=26*t+r.charCodeAt(a)-64;return t-1}function Vr(e){var r="";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function Xr(e){return e.replace(/^([A-Z])/,"$$$1")}function Gr(e){return e.replace(/^\$([A-Z])/,"$1")}function jr(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Kr(e){var r=jr(e);return{c:zr(r[0]),r:Mr(r[1])}}function Yr(e){return Vr(e.c)+Ur(e.r)}function $r(e){return Xr(Hr(e))}function Zr(e){return Gr(Wr(e))}function Qr(e){var r=e.split(":").map(Kr);return{s:r[0],e:r[r.length-1]}}function Jr(e,r){if(typeof r==="undefined"||typeof r==="number"){return Jr(e.s,e.e)}if(typeof e!=="string")e=Yr(e);if(typeof r!=="string")r=Yr(r);return e==r?e:e+":"+r}function qr(e){var r={s:{c:0,r:0},e:{c:0,r:0}};var t=0,a=0,n=0;var i=e.length;for(t=0;a26)break;t=26*t+n}r.s.c=--t;for(t=0;a9)break;t=10*t+n}r.s.r=--t;if(a===i||e.charCodeAt(++a)===58){r.e.c=r.s.c;r.e.r=r.s.r;return r}for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-64)<1||n>26)break;t=26*t+n}r.e.c=--t;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-48)<0||n>9)break;t=10*t+n}r.e.r=--t;return r}function et(e,r){var t=e.t=="d"&&r instanceof Date;if(e.z!=null)try{return e.w=E.format(e.z,t?P(r):r)}catch(a){}try{return e.w=E.format((e.XF||{}).numFmtId||(t?14:0),t?P(r):r)}catch(a){return""+r}}function rt(e,r,t){if(e==null||e.t==null||e.t=="z")return"";if(e.w!==undefined)return e.w;if(e.t=="d"&&!e.z&&t&&t.dateNF)e.z=t.dateNF;if(r==undefined)return et(e,e.v);return et(e,r)}function tt(e,r){var t=r&&r.sheet?r.sheet:"Sheet1";var a={};a[t]=e;return{SheetNames:[t],Sheets:a}}function at(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=t.dense?[]:{};var n={s:{c:1e7,r:1e7},e:{c:0,r:0}};for(var i=0;i!=e.length;++i){for(var s=0;s!=e[i].length;++s){if(typeof e[i][s]==="undefined")continue;var o={v:e[i][s]};if(Array.isArray(o.v)){o.f=e[i][s][1];o.v=o.v[0]}if(n.s.r>i)n.s.r=i;if(n.s.c>s)n.s.c=s;if(n.e.r0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}function ot(e,r){return{ich:e._R(2),ifnt:e._R(2)}}function lt(e,r){if(!r)r=Ir(4);r._W(2,e.ich||0);r._W(2,e.ifnt||0);return r}function ft(e,r){var t=e.l;var a=e._R(1);var n=it(e);var i=[];var s={t:n,h:n};if((a&1)!==0){var o=e._R(4);for(var l=0;l!=o;++l)i.push(ot(e));s.r=i}else s.r=[{ich:0,ifnt:0}];e.l=t+r;return s}function ct(e,r){var t=false;if(r==null){t=true;r=Ir(15+4*e.t.length)}r._W(1,0);st(e.t,r);return t?r.slice(0,r.l):r}var ut=ft;function ht(e,r){var t=false;if(r==null){t=true;r=Ir(23+4*e.t.length)}r._W(1,1);st(e.t,r);r._W(4,1);lt({ich:0,ifnt:0},r);return t?r.slice(0,r.l):r}function dt(e){var r=e._R(4);var t=e._R(2);t+=e._R(1)<<16;var a=e._R(1);return{c:r,iStyleRef:t}}function vt(e,r){if(r==null)r=Ir(8);r._W(-4,e.c);r._W(3,e.iStyleRef||e.s);r._W(1,0);return r}var pt=it;var bt=st;function mt(e){var r=e._R(4);return r===0||r===4294967295?"":e._R(r,"dbcs")}function gt(e,r){var t=false;if(r==null){t=true;r=Ir(127)}r._W(4,e.length>0?e.length:4294967295);if(e.length>0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}var Et=it;var kt=st;var St=mt;var wt=gt;function Bt(e){var r=e.slice(e.l,e.l+4);var t=r[0]&1,a=r[0]&2;e.l+=4;r[0]&=252;var n=a===0?lr([0,0,0,0,r[0],r[1],r[2],r[3]],0):pr(r,0)>>2;return t?n/100:n}function Ct(e,r){if(r==null)r=Ir(4);var t=0,a=0,n=e*100;if(e==(e|0)&&e>=-(1<<29)&&e<1<<29){a=1}else if(n==(n|0)&&n>=-(1<<29)&&n<1<<29){a=1;t=1}if(a)r._W(-4,((t?n:e)<<2)+(t+2));else throw new Error("unsupported RkNumber "+e)}function _t(e){var r={s:{},e:{}};r.s.r=e._R(4);r.e.r=e._R(4);r.s.c=e._R(4);r.e.c=e._R(4);return r}function Tt(e,r){if(!r)r=Ir(16);r._W(4,e.s.r);r._W(4,e.e.r);r._W(4,e.s.c);r._W(4,e.e.c);return r}var xt=_t;var It=Tt;function At(e,r){return e._R(8,"f")}function yt(e,r){return(r||Ir(8))._W(8,e,"f")}var Rt={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var Dt=R(Rt);function Ot(e,r){var t={};var a=e._R(1);var n=a&1;var i=a>>>1;var s=e._R(1);var o=e._R(2,"i");var l=e._R(1);var f=e._R(1);var c=e._R(1);var u=e._R(1);switch(i){case 0:t.auto=1;break;case 1:t.index=s;var h=ta[s];if(h)t.rgb=uo(h);break;case 2:t.rgb=uo([l,f,c]);break;case 3:t.theme=s;break;}if(o!=0)t.tint=o>0?o/32767:o/32768;return t}function Ft(e,r){if(!r)r=Ir(8);if(!e||e.auto){r._W(4,0);r._W(4,0);return r}if(e.index){r._W(1,2);r._W(1,e.index)}else if(e.theme){r._W(1,6);r._W(1,e.theme)}else{r._W(1,5);r._W(1,0)}var t=e.tint||0;if(t>0)t*=32767;else if(t<0)t*=32768;r._W(2,t);if(!e.rgb){r._W(2,0);r._W(1,0);r._W(1,0)}else{var a=e.rgb||"FFFFFF";r._W(1,parseInt(a.substr(0,2),16));r._W(1,parseInt(a.substr(2,2),16));r._W(1,parseInt(a.substr(4,2),16));r._W(1,255)}return r}function Pt(e,r,t){var a=e._R(1);e.l++;var n={fItalic:a&2,fStrikeout:a&8,fOutline:a&16,fShadow:a&32,fCondense:a&64,fExtend:a&128};return n}function Nt(e,r){if(!r)r=Ir(2);var t=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);r._W(1,t);r._W(1,0);return r}{var Lt=2;var Mt=3;var Ut=11;var Ht=12;var Wt=19;var zt=21;var Vt=30;var Xt=64;var Gt=71;var jt=4096;var Kt=80;var Yt=81;var $t=[Kt,Yt]}var Zt={1:{n:"CodePage",t:Lt},2:{n:"Category",t:Kt},3:{n:"PresentationFormat",t:Kt},4:{n:"ByteCount",t:Mt},5:{n:"LineCount",t:Mt},6:{n:"ParagraphCount",t:Mt},7:{n:"SlideCount",t:Mt},8:{n:"NoteCount",t:Mt},9:{n:"HiddenCount",t:Mt},10:{n:"MultimediaClipCount",t:Mt},11:{n:"Scale",t:Ut},12:{n:"HeadingPair",t:jt|Ht},13:{n:"DocParts",t:jt|Vt},14:{n:"Manager",t:Kt},15:{n:"Company",t:Kt},16:{n:"LinksDirty",t:Ut},17:{n:"CharacterCount",t:Mt},19:{n:"SharedDoc",t:Ut},22:{n:"HLinksChanged",t:Ut},23:{n:"AppVersion",t:Mt,p:"version"},26:{n:"ContentType",t:Kt},27:{n:"ContentStatus",t:Kt},28:{n:"Language",t:Kt},29:{n:"Version",t:Kt},255:{}};var Qt={1:{n:"CodePage",t:Lt},2:{n:"Title",t:Kt},3:{n:"Subject",t:Kt},4:{n:"Author",t:Kt},5:{n:"Keywords",t:Kt},6:{n:"Comments",t:Kt},7:{n:"Template",t:Kt},8:{n:"LastAuthor",t:Kt},9:{n:"RevNumber",t:Kt},10:{n:"EditTime",t:Xt},11:{n:"LastPrinted",t:Xt},12:{n:"CreatedDate",t:Xt},13:{n:"ModifiedDate",t:Xt},14:{n:"PageCount",t:Mt},15:{n:"WordCount",t:Mt},16:{n:"CharCount",t:Mt},17:{n:"Thumbnail",t:Gt},18:{n:"ApplicationName",t:Vt},19:{n:"DocumentSecurity",t:Mt},255:{}};var Jt={2147483648:{n:"Locale",t:Wt},2147483651:{n:"Behavior",t:Wt},1919054434:{}};(function(){for(var e in Jt)if(Jt.hasOwnProperty(e))Zt[e]=Qt[e]=Jt[e]})();var qt={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var ea=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function ra(e){return e.map(function(e){return[e>>16&255,e>>8&255,e&255]})}var ta=ra([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var aa={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"};var na=function(){var e={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};I(e).forEach(function(r){if(!e[r].xlsm)e[r].xlsm=e[r].xlsx});I(e).forEach(function(r){I(e[r]).forEach(function(t){aa[e[r][t]]=r})});return e}();var ia=D(aa);ze.CT="http://schemas.openxmlformats.org/package/2006/content-types";function sa(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""}}function oa(e,r){var t=sa();if(!e||!e.match)return t;var a={};(e.match(le)||[]).forEach(function(e){var r=ue(e);switch(r[0].replace(fe,"<")){case"0?t.calcchains[0]:"";t.sst=t.strs.length>0?t.strs[0]:"";t.style=t.styles.length>0?t.styles[0]:"";t.defaults=a;delete t.calcchains;return t}var la=Ue("Types",null,{xmlns:ze.CT,"xmlns:xsd":ze.xsd,"xmlns:xsi":ze.xsi});var fa=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",ia.rels[0]]].map(function(e){return Ue("Default",null,{Extension:e[0],ContentType:e[1]})});function ca(e,r){var t=[],a;t[t.length]=se;t[t.length]=la;t=t.concat(fa);var n=function(n){if(e[n]&&e[n].length>0){a=e[n][0];t[t.length]=Ue("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:na[n][r.bookType||"xlsx"]})}};var i=function(a){(e[a]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:na[a][r.bookType||"xlsx"]})})};var s=function(r){(e[r]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:ia[r][0]})})};n("workbooks");i("sheets");i("charts");s("themes");["strs","styles"].forEach(n);["coreprops","extprops","custprops"].forEach(s);s("vba");s("comments");s("drawings");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var ua={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function ha(e){var r=e.lastIndexOf("/");return e.substr(0,r+1)+"_rels/"+e.substr(r+1)+".rels"}function da(e,r){if(!e)return e;if(r.charAt(0)!=="/"){r="/"+r}var t={};var a={};(e.match(le)||[]).forEach(function(e){var n=ue(e);if(n[0]==="2){r[r.length]="";r[1]=r[1].replace("/>",">")}return r.join("")}function ba(e,r,t,a,n){if(!n)n={};if(!e["!id"])e["!id"]={};if(r<0)for(r=1;e["!id"]["rId"+r];++r){}n.Id="rId"+r;n.Type=a;n.Target=t;if(n.Type==ua.HLINK)n.TargetMode="External";if(e["!id"][n.Id])throw new Error("Cannot rewrite rId "+r);e["!id"][n.Id]=n;e[("/"+n.Target).replace("//","/")]=n;return r}var ma="application/vnd.oasis.opendocument.spreadsheet";function ga(e,r){var t=Kd(e);var a;var n;while(a=Yd.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=ue(a[0],false);if(n.path=="/"&&n.type!==ma)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function Ea(e,r){var t=[se];t.push('\n');t.push(' \n');for(var a=0;a\n');t.push("");return t.join("")}function ka(e,r,t){return[' \n',' \n'," \n"].join("")}function Sa(e,r){return[' \n',' \n'," \n"].join("")}function wa(e,r){var t=[se];t.push('\n');for(var a=0;a!=e.length;++a){t.push(ka(e[a][0],e[a][1]));t.push(Sa("",e[a][0]))}t.push(ka("","Document","pkg"));t.push("");return t.join("")}var Ba=function(){var e='Sheet'+"JS "+r.version+"";return function t(r,a){return e}}();var Ca=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];ze.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";ua.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var _a=function(){var e=new Array(Ca.length); -for(var r=0;r]*>([\\s\\S]*?)")}return e}();function Ta(e){var r={};e=_e(e);for(var t=0;t0)r[a[1]]=n[1];if(a[2]==="date"&&r[a[1]])r[a[1]]=H(r[a[1]])}return r}var xa=Ue("cp:coreProperties",null,{"xmlns:cp":ze.CORE_PROPS,"xmlns:dc":ze.dc,"xmlns:dcterms":ze.dcterms,"xmlns:dcmitype":ze.dcmitype,"xmlns:xsi":ze.xsi});function Ia(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;a[a.length]=t?Ue(e,r,t):Le(e,r)}function Aa(e,r){var t=r||{};var a=[se,xa],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)Ia("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:He(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)Ia("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:He(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=Ca.length;++i){var s=Ca[i];var o=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(o===true)o="1";else if(o===false)o="0";else if(typeof o=="number")o=String(o);if(o!=null)Ia(s[0],o,null,a,n)}if(a.length>2){a[a.length]="";a[1]=a[1].replace("/>",">")}return a.join("")}var ya=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];ze.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";ua.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function Ra(e,r,t){var a={};if(!r)r={};e=_e(e);ya.forEach(function(t){switch(t[2]){case"string":r[t[1]]=(e.match(ye(t[0]))||[])[1];break;case"bool":r[t[1]]=(e.match(ye(t[0]))||[])[1]==="true";break;case"raw":var n=e.match(new RegExp("<"+t[0]+"[^>]*>([\\s\\S]*?)"));if(n&&n.length>0)a[t[1]]=n[1];break;}});if(a.HeadingPairs&&a.TitlesOfParts){var n=Pe(a.HeadingPairs,t);var i=Pe(a.TitlesOfParts,t).map(function(e){return e.v});var s=0,o=0;if(i.length>0)for(var l=0;l!==n.length;l+=2){o=+n[l+1].v;switch(n[l].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Werkbladen":r.Worksheets=o;r.SheetNames=i.slice(s,s+o);break;case"Named Ranges":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":r.NamedRanges=o;r.DefinedNames=i.slice(s,s+o);break;case"Charts":;case"Diagramme":r.Chartsheets=o;r.ChartNames=i.slice(s,s+o);break;}s+=o}}return r}var Da=Ue("Properties",null,{xmlns:ze.EXT_PROPS,"xmlns:vt":ze.vt});function Oa(e,r){var t=[],a={},n=Ue;if(!e)e={};e.Application="SheetJS";t[t.length]=se;t[t.length]=Da;ya.forEach(function(r){if(e[r[1]]===undefined)return;var a;switch(r[2]){case"string":a=String(e[r[1]]);break;case"bool":a=e[r[1]]?"true":"false";break;}if(a!==undefined)t[t.length]=n(r[0],a)});t[t.length]=n("HeadingPairs",n("vt:vector",n("vt:variant","Worksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"}));t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map(function(e){return""+ge(e)+""}).join(""),{size:e.Worksheets,baseType:"lpstr"}));if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}ze.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";ua.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var Fa=/<[^>]+>[^<]*/g;function Pa(e,r){var t={},a="";var n=e.match(Fa);if(n)for(var i=0;i!=n.length;++i){var s=n[i],o=ue(s);switch(o[0]){case"":a=null;break;default:if(s.indexOf("");var f=l[0].substring(4),c=l[1];switch(f){case"lpstr":;case"bstr":;case"lpwstr":t[a]=pe(c);break;case"bool":t[a]=Ce(c,"");break;case"i1":;case"i2":;case"i4":;case"i8":;case"int":;case"uint":t[a]=parseInt(c,10);break;case"r4":;case"r8":;case"decimal":t[a]=parseFloat(c);break;case"filetime":;case"date":t[a]=H(c);break;case"cy":;case"error":t[a]=pe(c);break;default:if(f.slice(-1)=="/")break;if(r.WTF&&typeof console!=="undefined")console.warn("Unexpected",s,f,l);}}else if(s.substr(0,2)==="2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var Ma={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};var Ua=y(Ma);function Ha(e,r,t){r=Ua[r]||r;e[r]=t}function Wa(e,r){var t=[];I(Ma).map(function(e){for(var r=0;r'+i.join("")+""}function Va(e){var r=e._R(4),t=e._R(4);return new Date((t/1e7*Math.pow(2,32)+r/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function Xa(e,r,t){var a=e._R(0,"lpstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function Ga(e,r,t){var a=e._R(0,"lpwstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function ja(e,r,t){if(r===31)return Ga(e);return Xa(e,r,t)}function Ka(e,r,t){return ja(e,r,t===false?0:4)}function Ya(e,r){if(!r)throw new Error("VtUnalignedString must have positive length");return ja(e,r,0)}function $a(e){var r=e._R(4);var t=[];for(var a=0;a!=r;++a)t[a]=e._R(0,"lpstr");return t}function Za(e){return $a(e)}function Qa(e){var r=nn(e,Yt);var t=nn(e,Mt);return[r,t]}function Ja(e){var r=e._R(4);var t=[];for(var a=0;a!=r/2;++a)t.push(Qa(e));return t}function qa(e){return Ja(e)}function en(e,r){var t=e._R(4);var a={};for(var n=0;n!=t;++n){var i=e._R(4);var s=e._R(4);a[i]=e._R(s,r===1200?"utf16le":"utf8").replace(m,"").replace(g,"!")}if(e.l&3)e.l=e.l>>2+1<<2;return a}function rn(e){var r=e._R(4);var t=e.slice(e.l,e.l+r);if((r&3)>0)e.l+=4-(r&3)&3;return t}function tn(e){var r={};r.Size=e._R(4);e.l+=r.Size;return r}function an(e,r){}function nn(e,r,t){var a=e._R(2),n,i=t||{};e.l+=2;if(r!==Ht)if(a!==r&&$t.indexOf(r)===-1)throw new Error("Expected type "+r+" saw "+a);switch(r===Ht?a:r){case 2:n=e._R(2,"i");if(!i.raw)e.l+=2;return n;case 3:n=e._R(4,"i");return n;case 11:return e._R(4)!==0;case 19:n=e._R(4);return n;case 30:return Xa(e,a,4).replace(m,"");case 31:return Ga(e);case 64:return Va(e);case 65:return rn(e);case 71:return tn(e);case 80:return Ka(e,a,!i.raw).replace(m,"");case 81:return Ya(e,a).replace(m,"");case 4108:return qa(e);case 4126:return Za(e);default:throw new Error("TypedPropertyValue unrecognized type "+r+" "+a);}}function sn(e,r){var t=e.l;var a=e._R(4);var i=e._R(4);var s=[],o=0;var l=0;var f=-1,c={};for(o=0;o!=i;++o){var u=e._R(4);var h=e._R(4);s[o]=[u,h+t]}var d={};for(o=0;o!=i;++o){if(e.l!==s[o][1]){var v=true;if(o>0&&r)switch(r[s[o-1][0]].t){case 2:if(e.l+2===s[o][1]){e.l+=2;v=false}break;case 80:if(e.l<=s[o][1]){e.l=s[o][1];v=false}break;case 4108:if(e.l<=s[o][1]){e.l=s[o][1];v=false}break;}if(!r&&e.l<=s[o][1]){v=false;e.l=s[o][1]}if(v)throw new Error("Read Error: Expected address "+s[o][1]+" at "+e.l+" :"+o)}if(r){var p=r[s[o][0]];d[p.n]=nn(e,p.t,{raw:true});if(p.p==="version")d[p.n]=String(d[p.n]>>16)+"."+String(d[p.n]&65535);if(p.n=="CodePage")switch(d[p.n]){case 0:d[p.n]=1252;case 874:;case 932:;case 936:;case 949:;case 950:;case 1250:;case 1251:;case 1253:;case 1254:;case 1255:;case 1256:;case 1257:;case 1258:;case 1e4:;case 1200:;case 1201:;case 1252:;case 65e3:;case-536:;case 65001:;case-535:n(l=d[p.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[p.n]);}}else{if(s[o][0]===1){l=d.CodePage=nn(e,Lt);n(l);if(f!==-1){var b=e.l;e.l=s[f][1];c=en(e,l);e.l=b}}else if(s[o][0]===0){if(l===0){f=o;e.l=s[o+1][1];continue}c=en(e,l)}else{var m=c[s[o][0]];var g;switch(e[e.l]){case 65:e.l+=4;g=rn(e);break;case 30:e.l+=4;g=Ka(e,e[e.l-4]);break;case 31:e.l+=4;g=Ka(e,e[e.l-4]);break;case 3:e.l+=4;g=e._R(4,"i");break;case 19:e.l+=4;g=e._R(4);break;case 5:e.l+=4;g=e._R(8,"f");break;case 11:e.l+=4;g=un(e,4);break;case 64:e.l+=4;g=H(Va(e));break;default:throw new Error("unparsed value: "+e[e.l]);}d[m]=g}}}e.l=t+a;return d}function on(e,r){var t=e.content;if(!t)return{};Cr(t,0);var a,n,i,s,o=0;t.chk("feff","Byte Order: ");var l=t._R(2);var f=t._R(4);t.chk(T.utils.consts.HEADER_CLSID,"CLSID: ");a=t._R(4);if(a!==1&&a!==2)throw new Error("Unrecognized #Sets: "+a);n=t._R(16);s=t._R(4);if(a===1&&s!==t.l)throw new Error("Length mismatch: "+s+" !== "+t.l);else if(a===2){i=t._R(16);o=t._R(4)}var c=sn(t,r);var u={SystemIdentifier:f};for(var h in c)u[h]=c[h];u.FMTID=n;if(a===1)return u;if(t.l!==o)throw new Error("Length mismatch 2: "+t.l+" !== "+o);var d;try{d=sn(t,null)}catch(v){}for(h in d)u[h]=d[h];u.FMTID=[n,i];return u}function ln(e,r){e._R(r);return null}function fn(e,r){if(!r)r=Ir(e);for(var t=0;t=12?2:1);var i=1,s="sbcs-cont";var o=t;if(a&&a.biff>=8)t=1200;if(!a||a.biff==8){var l=e._R(1);if(l){i=2;s="dbcs-cont"}}else if(a.biff==12){i=2;s="wstr"}var f=n?e._R(n,s):"";t=o;return f}function En(e){var r=t;t=1200;var a=e._R(2),n=e._R(1);var i=n&1,s=n&4,o=n&8;var l=1+(n&1);var f=0,c;var u={};if(o)f=e._R(2);if(s)c=e._R(4);var h=n&1?"dbcs-cont":"sbcs-cont";var d=a===0?"":e._R(a,h);if(o)e.l+=4*f;if(s)e.l+=c;u.t=d;if(!o){u.raw=""+u.t+"";u.r=u.t}t=r;return u}function kn(e,r,t){var a;if(t){if(t.biff>=2&&t.biff<=5)return e._R(r,"sbcs-cont");if(t.biff>=12)return e._R(r,"dbcs-cont")}var n=e._R(1);if(n===0){a=e._R(r,"sbcs-cont")}else{a=e._R(r,"dbcs-cont")}return a}function Sn(e,r,t){var a=e._R(t&&t.biff==2?1:2);if(a===0){e.l++;return""}return kn(e,a,t)}function wn(e,r,t){if(t.biff>5)return Sn(e,r,t);var a=e._R(1);if(a===0){e.l++;return""}return e._R(a,"sbcs-cont")}function Bn(e,r,t){var a=e._R(1);e.l++;var n=e._R(2);e.l+=2;return[a,n]}function Cn(e){var r=e._R(4),t=e.l;var a=false;if(r>24){e.l+=r-24;if(e._R(16)==="795881f43b1d7f48af2c825dc4852763")a=true;e.l=t}var n=e._R((a?r-24:r)>>1,"utf16le").replace(m,"");if(a)e.l+=24;return n}function _n(e,r){var t=e._R(2);var a=e._R(4);var n=e._R(a,"cstr");var i=e._R(2);var s=e._R(2);var o=e._R(4);if(o===0)return n.replace(/\\/g,"/");var l=e._R(4);var f=e._R(2);var c=e._R(l>>1,"utf16le").replace(m,"");return c}function Tn(e,r){var t=e._R(16);r-=16;switch(t){case"e0c9ea79f9bace118c8200aa004ba90b":return Cn(e,r);case"0303000000000000c000000000000046":return _n(e,r);default:throw new Error("Unsupported Moniker "+t);}}function xn(e,r){var t=e._R(4);var a=e._R(t,"utf16le").replace(m,"");return a}function In(e,r){var t=e.l+r;var a=e._R(4);if(a!==2)throw new Error("Unrecognized streamVersion: "+a);var n=e._R(2);e.l+=2;var i,s,o,l,f,c,u;if(n&16)i=xn(e,t-e.l);if(n&128)s=xn(e,t-e.l);if((n&257)===257)o=xn(e,t-e.l);if((n&257)===1)l=Tn(e,t-e.l);if(n&8)f=xn(e,t-e.l);if(n&32)c=e._R(16);if(n&64)u=Va(e);e.l=t;var h=s||o||l;if(f)h+="#"+f;return{Target:h}}function An(e,r){var t=e._R(1),a=e._R(1),n=e._R(1),i=e._R(1);return[t,a,n,i]}function yn(e,r){var t=An(e,r);t[3]=0;return t}function Rn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);return{r:t,c:a,ixfe:n}}function Dn(e,r,t,a){if(!a)a=Ir(6);a._W(2,e);a._W(2,r);a._W(2,t||0);return a}function On(e){var r=e._R(2);var t=e._R(2);e.l+=8;return{type:r,flags:t}}function Fn(e,r,t){return r===0?"":wn(e,r,t)}function Pn(e,r,t){var a=t.biff>8?4:2;var n=e._R(a),i=e._R(a,"i"),s=e._R(a,"i");return[n,i,s]}function Nn(e,r){var t=e._R(2);var a=Bt(e);return[t,a]}function Ln(e,r,t){e.l+=4;r-=4;var a=e.l+r;var n=gn(e,r,t);var i=e._R(2);a-=e.l;if(i!==a)throw new Error("Malformed AddinUdf: padding = "+a+" != "+i);e.l+=i;return n}function Mn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);var i=e._R(2);return{s:{c:n,r:t},e:{c:i,r:a}}}function Un(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(1);var i=e._R(1);return{s:{c:n,r:t},e:{c:i,r:a}}}var Hn=Un;function Wn(e,r){e.l+=4;var t=e._R(2);var a=e._R(2);var n=e._R(2);e.l+=12;return[a,t,n]}function zn(e,r){var t={};e.l+=4;e.l+=16;t.fSharedNote=e._R(2);e.l+=4;return t}function Vn(e,r){var t={};e.l+=4;e.cf=e._R(2);return t}function Xn(e,r){e.l+=2;e.l+=e._R(2)}var Gn={0:Xn,4:Xn,5:Xn,6:Xn,7:Vn,8:Xn,9:Xn,10:Xn,11:Xn,12:Xn,13:zn,14:Xn,15:Xn,16:Xn,17:Xn,18:Xn,19:Xn,20:Xn,21:Wn};function jn(e,r,t){var a=e.l+r;var n=[];while(e.l=2){t.dt=e._R(2);e.l-=2}switch(t.BIFFVer){case 1536:;case 1280:;case 2:;case 7:break;default:if(r>6)throw new Error("Unexpected BIFF Ver "+t.BIFFVer);}e._R(r);return t}function Yn(e,r,t){var a=1536,n=16;switch(t.bookType){case"biff8":break;case"biff5":a=1280;n=8;break;case"biff4":a=4;n=6;break;case"biff3":a=3;n=6;break;case"biff2":a=2;n=4;break;default:throw new Error("unsupported BIFF version");}var i=Ir(n);i._W(2,a);i._W(2,r);if(n>4)i._W(2,29282);if(n>6)i._W(2,1997);if(n>8){i._W(2,49161);i._W(2,1);i._W(2,1798);i._W(2,0)}return i}function $n(e,r){if(r===0)return 1200;var t;if((t=e._R(2))!==1200){}return 1200}function Zn(e,r,t){if(t.enc){e.l+=r;return""}var a=e.l;var n=Sn(e,0,t);e._R(r+a-e.l);return n}function Qn(e,r){var t=Ir(112);t._W(r.biff==8?2:1,7);t._W(1,0);t._W(4,859007059);t._W(4,5458548);while(t.l>15);n&=32767}var i={Unsynced:a&1,DyZero:(a&2)>>1,ExAsc:(a&4)>>2,ExDsc:(a&8)>>3};return[i,n]}function si(e,r){var t=e._R(2),a=e._R(2),n=e._R(2),i=e._R(2);var s=e._R(2),o=e._R(2),l=e._R(2);var f=e._R(2),c=e._R(2);return{Pos:[t,a],Dim:[n,i],Flags:s,CurTab:o,FirstTab:l,Selected:f,TabRatio:c}}function oi(e){var r=Ir(18);r._W(2,0);r._W(2,0);r._W(2,29280);r._W(2,17600);r._W(2,56);r._W(2,0);r._W(2,0);r._W(2,1);r._W(2,500);return r}function li(e,r,t){var a={dyHeight:e._R(2),fl:e._R(2)};switch(t&&t.biff||8){case 2:break;case 3:;case 4:e.l+=2;break;default:e.l+=10;break;}a.name=gn(e,0,t);return a}function fi(e,r){var t=Rn(e);t.isst=e._R(4);return t}function ci(e,r,t){var a=e.l+r;var n=Rn(e,6);if(t.biff==2)e.l++;var i=Sn(e,a-e.l,t);n.val=i;return n}function ui(e,r,t,a){var n=Ir(6+3+2*t.length);Dn(e,r,0,n);n._W(2,t.length);n._W(1,1);n._W(2*t.length,t,"utf16le");return n}function hi(e,r,t){var a=e._R(2);var n=wn(e,0,t);return[a,n]}var di=wn;function vi(e,r,t){var a=e.l+r;var n=t.biff==8||!t.biff?4:2;var i=e._R(n),s=e._R(n);var o=e._R(2),l=e._R(2);e.l=a;return{s:{r:i,c:o},e:{r:s,c:l}}}function pi(e,r){var t=Ir(14);t._W(4,e.s.r);t._W(4,e.e.r+1);t._W(2,e.s.c);t._W(2,e.e.c+1);t._W(2,0);return t}function bi(e,r){var t=e._R(2),a=e._R(2);var n=Nn(e);return{r:t,c:a,ixfe:n[0],rknum:n[1]}}function mi(e,r){var t=e.l+r-2;var a=e._R(2),n=e._R(2);var i=[];while(e.l>26];if(!a.cellStyles)return n;n.alc=i&7;n.fWrap=i>>3&1;n.alcV=i>>4&7;n.fJustLast=i>>7&1;n.trot=i>>8&255;n.cIndent=i>>16&15;n.fShrinkToFit=i>>20&1;n.iReadOrder=i>>22&2;n.fAtrNum=i>>26&1;n.fAtrFnt=i>>27&1;n.fAtrAlc=i>>28&1;n.fAtrBdr=i>>29&1;n.fAtrPat=i>>30&1;n.fAtrProt=i>>31&1;n.dgLeft=s&15;n.dgRight=s>>4&15;n.dgTop=s>>8&15;n.dgBottom=s>>12&15;n.icvLeft=s>>16&127;n.icvRight=s>>23&127;n.grbitDiag=s>>30&3;n.icvTop=o&127;n.icvBottom=o>>7&127;n.icvDiag=o>>14&127;n.dgDiag=o>>21&15;n.icvFore=l&127;n.icvBack=l>>7&127;n.fsxButton=l>>14&1;return n}function ki(e,r,t){return Ei(e,r,0,t)}function Si(e,r,t){return Ei(e,r,1,t)}function wi(e,r,t){var a={};a.ifnt=e._R(2);a.numFmtId=e._R(2);a.flags=e._R(2);a.fStyle=a.flags>>2&1;r-=6;a.data=Ei(e,r,a.fStyle,t);return a}function Bi(e,r){e.l+=4;var t=[e._R(2),e._R(2)];if(t[0]!==0)t[0]--;if(t[1]!==0)t[1]--;if(t[0]>7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}function Ci(e){var r=Ir(8);r._W(4,0);r._W(2,e[0]?e[0]+1:0);r._W(2,e[1]?e[1]+1:0);return r}function _i(e,r,t){var a=Rn(e,6);if(t.biff==2)++e.l;var n=bn(e,2);a.val=n;a.t=n===true||n===false?"b":"e";return a}function Ti(e,r,t,a,n){var i=Ir(8);Dn(e,r,0,i);mn(t,n,i);return i}function xi(e,r){var t=Rn(e,6);var a=At(e,8);t.val=a;return t}function Ii(e,r,t,a){var n=Ir(14);Dn(e,r,0,n);yt(t,n);return n}var Ai=Fn;function yi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(2);t.sbcch=i;if(i==1025||i==14849)return[i,n];if(i<1||i>255)throw new Error("Unexpected SupBook type: "+i);var s=kn(e,i);var o=[];while(a>e.l)o.push(Sn(e));return[i,n,s,o]}function Ri(e,r,t){var a=e._R(2);var n;var i={fBuiltIn:a&1,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=Ln(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}var Di=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function Oi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var o=e._R(t&&t.biff==2?1:2);var l=0;if(!t||t.biff>=5){e.l+=2;l=e._R(2);e.l+=4}var f=kn(e,s,t);if(n&32)f=Di[f.charCodeAt(0)];var c=a-e.l;if(t&&t.biff==2)--c;var u=a==e.l||o==0?[]:Uc(e,c,t,o);return{chKey:i,Name:f,itab:l,rgce:u}}function Fi(e,r,t){if(t.biff<8)return Pi(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(Pn(e,t.biff>8?12:6,t));var s=[];return a}function Pi(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=gn(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function Ni(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=kn(e,a,t);var s=kn(e,n,t);return[i,s]}function Li(e,r,t){var a=Un(e,6);e.l++;var n=e._R(1);r-=8;return[Wc(e,r,t),n]}function Mi(e,r,t){var a=Hn(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,zc(e,r,t,a)]}function Ui(e,r){var t=e._R(4)!==0;var a=e._R(4)!==0;var n=e._R(4);return[t,a,n]}function Hi(e,r,t){if(t.biff<8)return;var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var o=wn(e,0,t);if(t.biff<8)e._R(1);return[{r:a,c:n},o,s,i]}function Wi(e,r,t){return Hi(e,r,t)}function zi(e,r){var t=[];var a=e._R(2);while(a--)t.push(Mn(e,r));return t}function Vi(e,r,t){if(t&&t.biff<8)return Gi(e,r,t);var a=Wn(e,22);var n=jn(e,r-22,a[1]);return{cmo:a,ft:n}}var Xi=[];Xi[8]=function(e,r,t){var a=e.l+r;e.l+=10;var n=e._R(2);e.l+=4;var i=e._R(2);e.l+=2;var s=e._R(2);e.l+=4;var o=e._R(1);e.l+=o;e.l=a;return{fmt:n}};function Gi(e,r,t){var a=e._R(4);var n=e._R(2);var i=e._R(2);var s=e._R(2);var o=e._R(2);var l=e._R(2);var f=e._R(2);var c=e._R(2);var u=e._R(2);var h=e._R(2);var d=e._R(2);var v=e._R(2);var p=e._R(2);e.l+=6;r-=36;var b=[];b.push((Xi[n]||_r)(e,r,t));return{cmo:[i,n,s],ft:b}}function ji(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=Bn(e,6,t);var o=e._R(2);var l=e._R(2);var f=dn(e,2);var c=e._R(2);e.l+=c;for(var u=1;u=(h?o:2*o))break}if(n.length!==o&&n.length!==o*2){throw new Error("cchText: "+o+" != "+n.length)}e.l=a+r;return{t:n}}catch(v){e.l=a+r;return{t:n}}}function Ki(e,r){var t=Mn(e,8);e.l+=16;var a=In(e,r-24);return[t,a]}function Yi(e,r){var t=e.l+r;e._R(2);var a=Mn(e,8);var n=e._R((r-10)/2,"dbcs-cont");n=n.replace(m,"");return[a,n]}function $i(e,r){var t=[],a;a=e._R(2);t[0]=qt[a]||a;a=e._R(2);t[1]=qt[a]||a;return t}function Zi(e){if(!e)e=Ir(4);e._W(2,1);e._W(2,1);return e}function Qi(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(yn(e,8));return a}function Ji(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(yn(e,8));return a}function qi(e,r){e.l+=2;var t={cxfs:0,crc:0};t.cxfs=e._R(2);t.crc=e._R(4);return t}function es(e,r,t){if(!t.cellStyles)return _r(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var o=e._R(a);var l=e._R(2);if(a==2)e.l+=2;return{s:n,e:i,w:s,ixfe:o,flags:l}}function rs(e,r,t){var a={};e.l+=16;a.header=At(e,8);a.footer=At(e,8);e.l+=2;return a}function ts(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function as(e){var r=Ir(2*e);for(var t=0;t0){if(n[n.l]===42){n.l+=u;continue}++n.l;a[++k]=[];S=0;for(S=0;S!=m.length;++S){var w=n.slice(n.l,n.l+m[S].len);n.l+=m[S].len;Cr(w,0);var B=cptable.utils.decode(b,w);switch(m[S].type){case"C":a[k][S]=cptable.utils.decode(b,w);a[k][S]=a[k][S].trim();break;case"D":if(B.length===8)a[k][S]=new Date(+B.substr(0,4),+B.substr(4,2)-1,+B.substr(6,2));else a[k][S]=B;break;case"F":a[k][S]=parseFloat(B.trim());break;case"I":a[k][S]=w._R(4,"i");break;case"L":switch(B.toUpperCase()){case"Y":;case"T":a[k][S]=true;break;case"N":;case"F":a[k][S]=false;break;case" ":;case"?":a[k][S]=false;break;default:throw new Error("DBF Unrecognized L:|"+B+"|");}break;case"M":if(!s)throw new Error("DBF Unexpected MEMO for type "+i.toString(16));a[k][S]="##MEMO##"+w._R(4);break;case"N":a[k][S]=+B.replace(/\u0000/g,"").trim();break;case"T":var C=w._R(4),_=w._R(4);throw new Error(C+" | "+_);case"Y":a[k][S]=w.read(4,"i")/1e4;break;case"0":if(m[S].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+m[S].type);}}}if(i!=2)if(n.l0)switch(g){case"ID":break;case"E":break;case"B":break;case"O":break;case"P":if(m[1].charAt(0)=="P")l.push(b.substr(3).replace(/;;/g,";"));break;case"C":for(s=1;s0){u[a].hpt=v;u[a].hpx=Do(v)}else if(v==0)u[a].hidden=true;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+b);}if(w<1)f=null;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+b);}}if(u.length>0)c["!rows"]=u;if(h.length>0)c["!cols"]=h;return[o,c]}function t(r,t){var a=e(r,t);var n=a[0],i=a[1];var s=at(n,t);I(i).forEach(function(e){s[e]=i[e]});return s}function a(e,r){return tt(t(e,r),r)}function n(e,r,t,a,n){var i="C;Y"+(t+1)+";X"+(a+1)+";K";switch(e.t){case"n":i+=e.v||0;if(e.f&&!e.F)i+=";E"+uf(e.f,{r:t,c:a});break;case"b":i+=e.v?"TRUE":"FALSE";break;case"e":i+=e.w||e.v;break;case"d":i+='"'+(e.w||e.v)+'"';break;case"s":i+='"'+e.v.replace(/"/g,"")+'"';break;}return i}function i(e,r){r.forEach(function(r,t){var a="F;W"+(t+1)+" "+(t+1)+" ";if(r.hidden)a+="0";else{if(typeof r.width=="number")r.wpx=ko(r.width);if(typeof r.wpx=="number")r.wch=So(r.wpx);if(typeof r.wch=="number")a+=Math.round(r.wch)}if(a.charAt(a.length-1)!=" ")e.push(a)})}function s(e,r){r.forEach(function(r,t){var a="F;";if(r.hidden)a+="M0;";else if(r.hpt)a+="M"+20*r.hpt+";";else if(r.hpx)a+="M"+20*Ro(r.hpx)+";";if(a.length>2)e.push(a+"R"+(t+1))})}function o(e,r){var t=["ID;PWXL;N;E"],a=[];var o=qr(e["!ref"]),l;var f=Array.isArray(e);var c="\r\n";t.push("P;PGeneral");t.push("F;P0;DG0G8;M255");if(e["!cols"])i(t,e["!cols"]);if(e["!rows"])s(t,e["!rows"]);t.push("B;Y"+(o.e.r-o.s.r+1)+";X"+(o.e.c-o.s.c+1)+";D"+[o.s.c,o.s.r,o.e.c,o.e.r].join(" "));for(var u=o.s.r;u<=o.e.r;++u){for(var h=o.s.c;h<=o.e.c;++h){var d=Yr({r:u,c:h});l=f?(e[u]||[])[h]:e[d];if(!l||l.v==null&&(!l.f||l.F))continue;a.push(n(l,e,u,h,r))}}return t.join(c)+c+a.join(c)+c+"E"+c}return{to_workbook:a,to_sheet:t,from_sheet:o}}();var Es=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=e.split("\n"),a=-1,n=-1,i=0,s=[];for(;i!==t.length;++i){if(t[i].trim()==="BOT"){s[++a]=[];n=0;continue}if(a<0)continue;var o=t[i].trim().split(",");var l=o[0],f=o[1];++i;var c=t[i].trim();switch(+l){case-1:if(c==="BOT"){s[++a]=[];n=0;continue}else if(c!=="EOD")throw new Error("Unrecognized DIF special command "+c);break;case 0:if(c==="TRUE")s[a][n]=true;else if(c==="FALSE")s[a][n]=false;else if(!isNaN(G(f)))s[a][n]=G(f);else if(!isNaN(j(f).getDate()))s[a][n]=H(f);else s[a][n]=f;++n;break;case 1:c=c.substr(1,c.length-2);s[a][n++]=c!==""?c:null;break;}if(c==="EOD")break}return s}function t(r,t){return at(e(r,t),t)}function a(e,r){return tt(t(e,r),r)}var n=function(){var e=function t(e,r,a,n,i){e.push(r);e.push(a+","+n);e.push('"'+i.replace(/"/g,'""')+'"')};var r=function a(e,r,t,n){e.push(r+","+t);e.push(r==1?'"'+n.replace(/"/g,'""')+'"':n)};return function n(t,a){var n=[];var i=qr(t["!ref"]),s;var o=Array.isArray(t);e(n,"TABLE",0,1,"sheetjs");e(n,"VECTORS",0,i.e.r-i.s.r+1,"");e(n,"TUPLES",0,i.e.c-i.s.c+1,"");e(n,"DATA",0,0,"");for(var l=i.s.r;l<=i.e.r;++l){r(n,-1,0,"BOT");for(var f=i.s.c;f<=i.e.c;++f){var c=Yr({r:l,c:f});s=o?(t[l]||[])[f]:t[c];if(!s){r(n,1,0,"");continue}switch(s.t){case"n":var h=u?s.w:s.v;if(!h&&s.v!=null)h=s.v;if(h==null){if(u&&s.f&&!s.F)r(n,1,0,"="+s.f);else r(n,1,0,"")}else r(n,0,h,"V");break;case"b":r(n,0,s.v?1:0,s.v?"TRUE":"FALSE");break;case"s":r(n,1,0,!u||isNaN(s.v)?s.v:'="'+s.v+'"');break;case"d":if(!s.w)s.w=E.format(s.z||E._table[14],P(H(s.v)));if(u)r(n,0,s.w,"V");else r(n,1,0,s.w);break;default:r(n,1,0,"");}}}r(n,-1,0,"EOD");var d="\r\n";var v=n.join(d);return v}}();return{to_workbook:a,to_sheet:t,from_sheet:n}}();var ks=function(){function e(e,r,t,a,n){if(n.raw)r[t][a]=e;else if(e==="TRUE")r[t][a]=true;else if(e==="FALSE")r[t][a]=false;else if(e===""){}else if(!isNaN(G(e)))r[t][a]=G(e);else if(!isNaN(j(e).getDate()))r[t][a]=H(e);else r[t][a]=e}function r(r,t){var a=t||{};var n=[];if(!r||r.length===0)return n;var i=r.split(/[\r\n]/);var s=i.length-1;while(s>=0&&i[s].length===0)--s;var o=10,l=0;var f=0;for(;f<=s;++f){l=i[f].indexOf(" ");if(l==-1)l=i[f].length;else l++;o=Math.max(o,l)}for(f=0;f<=s;++f){n[f]=[];var c=0;e(i[f].slice(0,o).trim(),n,f,c,a);for(c=1;c<=(i[f].length-o)/10+1;++c)e(i[f].slice(o+(c-1)*10,o+c*10).trim(),n,f,c,a)}return n}function t(e){var r=[],t=false,a=0,n=0;for(;a=(r[9]||0))return",";return"\t"}function a(e,r){var a=r||{};var n="";if(c!=null&&a.dense==null)a.dense=c;var i=a.dense?[]:{};var s={s:{c:0,r:0},e:{c:0,r:0}};if(e.substr(0,4)=="sep="&&e.charCodeAt(5)==10){n=e.charAt(4);e=e.substr(6)}else n=t(e.substr(0,1024));var o=0,l=0,f=0;var u=0,h=0,d=n.charCodeAt(0),v=false,p=0;e=e.replace(/\r\n/gm,"\n");var b=a.dateNF!=null?B(a.dateNF):null;function m(){var r=e.slice(u,h);var t={};if(r.charAt(0)=='"'&&r.charAt(r.length-1)=='"')r=r.slice(1,-1).replace(/""/g,'"');if(r.length==0)t.t="z";else if(a.raw){t.t="s";t.v=r}else if(r.trim().length==0){t.t="s";t.v=r}else if(r.charCodeAt(0)==61){if(r.charCodeAt(1)==34&&r.charCodeAt(r.length-1)==34){t.t="s";t.v=r.slice(2,-1).replace(/""/g,'"')}else if(vf(r)){t.t="n";t.f=r.substr(1)}else{t.t="s";t.v=r}}else if(r=="TRUE"){t.t="b";t.v=true}else if(r=="FALSE"){t.t="b";t.v=false}else if(!isNaN(f=G(r))){t.t="n";if(a.cellText!==false)t.w=r;t.v=f}else if(!isNaN(j(r).getDate())||b&&r.match(b)){t.z=a.dateNF||E._table[14];var n=0;if(b&&r.match(b)){r=C(r,a.dateNF,r.match(b)||[]);n=1}if(a.cellDates){t.t="d";t.v=H(r,n)}else{t.t="n";t.v=P(H(r,n))}if(a.cellText!==false)t.w=E.format(t.z,t.v instanceof Date?P(t.v):t.v);if(!a.cellNF)delete t.z}else{t.t="s";t.v=r}if(t.t=="z"){}else if(a.dense){if(!i[o])i[o]=[];i[o][l]=t}else i[Yr({c:l,r:o})]=t;u=h+1;if(s.e.c0)m();i["!ref"]=Jr(s);return i}function n(e,t){if(e.substr(0,4)=="sep=")return a(e,t);if(e.indexOf("\t")>=0||e.indexOf(",")>=0)return a(e,t);return at(r(e,t),t)}function i(e,r){var t="",a=r.type=="string"?[0,0,0,0]:sp(e,r);switch(r.type){case"base64":t=h.decode(e);break;case"binary":t=e;break;case"buffer":t=e.toString("binary");break;case"array":t=W(e);break;case"string":t=e;break;default:throw new Error("Unrecognized type "+r.type);}if(a[0]==239&&a[1]==187&&a[2]==191)t=_e(t.slice(3));return n(t,r)}function s(e,r){return tt(i(e,r),r)}function o(e,r){var t=[];var a=qr(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){var o=[];for(var l=a.s.c;l<=a.e.c;++l){var f=Yr({r:s,c:l});n=i?(e[s]||[])[l]:e[f];if(!n||n.v==null){o.push(" ");continue}var c=(n.w||(rt(n),n.w)||"").substr(0,10);while(c.length<10)c+=" ";o.push(c+(l==0?" ":""))}t.push(o.join(""))}return t.join("\n")}return{to_workbook:s,to_sheet:i,from_sheet:o}}();function Ss(e,r){var t=r||{},a=!!t.WTF;t.WTF=true;try{var n=gs.to_workbook(e,t);t.WTF=a;return n}catch(i){t.WTF=a;if(!i.message.match(/SYLK bad record ID/)&&a)throw i;return ks.to_workbook(e,r)}}var ws=function(){function e(e,r,t){if(!e)return;Cr(e,e.l||0);var a=t.Enum||S;while(e.l=4096)a.qpro=true;break;case 6:f=e;break;case 15:if(!a.qpro)e[1].v=e[1].v.substr(1);case 13:;case 14:;case 16:;case 51:if(c==14&&(e[2]&112)==112&&(e[2]&15)>1&&(e[2]&15)<15){e[1].z=a.dateNF||E._table[14];if(a.cellDates){e[1].t="d";e[1].v=N(e[1].v)}}if(a.dense){if(!n[e[0].r])n[e[0].r]=[];n[e[0].r][e[0].c]=e[1]}else n[Yr(e[0])]=e[1];break;}else switch(c){case 22:e[1].v=e[1].v.substr(1);case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>s){n["!ref"]=Jr(f);o[i]=n;n=a.dense?[]:{};f={s:{r:0,c:0},e:{r:0,c:0}};s=e[3];i="Sheet"+(s+1);l.push(i)}n[Yr(e[0])]=e[1];if(f.e.c>1;if(t[1].v&1){switch(a&7){case 1:a=(a>>3)*500;break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(a&7);}}t[1].v=a;return t}function v(e,r){var t=f(e,r);var a=e._R(4);var n=e._R(4);var i=e._R(2);if(i==65535){t[1].v=0;return t}var s=i&32768;i=(i&32767)-16446;t[1].v=(i>0?n<>>-i)+(i>-32?a<>>-(i+32));return t}function b(e,r){var t=v(e,14);e.l+=r-14;return t}function m(e,r){var t=f(e,r);var a=e._R(4);t[1].v=a>>6;return t}function g(e,r){var t=f(e,r);var a=e._R(8,"f");t[1].v=a;return t}function k(e,r){var t=g(e,14);e.l+=r-10;return t}var S={0:{n:"BOF",f:dn},1:{n:"EOF",f:_r},2:{n:"CALCMODE",f:_r},3:{n:"CALCORDER",f:_r},4:{n:"SPLIT",f:_r},5:{n:"SYNC",f:_r},6:{n:"RANGE",f:a},7:{n:"WINDOW1",f:_r},8:{n:"COLW1",f:_r},9:{n:"WINTWO",f:_r},10:{n:"COLW2",f:_r},11:{n:"NAME",f:_r},12:{n:"BLANK",f:_r},13:{n:"INTEGER",f:s},14:{n:"NUMBER",f:o},15:{n:"LABEL",f:i},16:{n:"FORMULA",f:l},24:{n:"TABLE",f:_r},25:{n:"ORANGE",f:_r},26:{n:"PRANGE",f:_r},27:{n:"SRANGE",f:_r},28:{n:"FRANGE",f:_r},29:{n:"KRANGE1",f:_r},32:{n:"HRANGE",f:_r},35:{n:"KRANGE2",f:_r},36:{n:"PROTEC",f:_r},37:{n:"FOOTER",f:_r},38:{n:"HEADER",f:_r},39:{n:"SETUP",f:_r},40:{n:"MARGINS",f:_r},41:{n:"LABELFMT",f:_r},42:{n:"TITLES",f:_r},43:{n:"SHEETJS",f:_r},45:{n:"GRAPH",f:_r},46:{n:"NGRAPH",f:_r},47:{n:"CALCCOUNT",f:_r},48:{n:"UNFORMATTED",f:_r},49:{n:"CURSORW12",f:_r},50:{n:"WINDOW",f:_r},51:{n:"STRING",f:i},55:{n:"PASSWORD",f:_r},56:{n:"LOCKED",f:_r},60:{n:"QUERY",f:_r},61:{n:"QUERYNAME",f:_r},62:{n:"PRINT",f:_r},63:{n:"PRINTNAME",f:_r},64:{n:"GRAPH2",f:_r},65:{n:"GRAPHNAME",f:_r},66:{n:"ZOOM",f:_r},67:{n:"SYMSPLIT",f:_r},68:{n:"NSROWS",f:_r},69:{n:"NSCOLS",f:_r},70:{n:"RULER",f:_r},71:{n:"NNAME",f:_r},72:{n:"ACOMM",f:_r},73:{n:"AMACRO",f:_r},74:{n:"PARSE",f:_r},255:{n:"",f:_r}};var w={0:{n:"BOF",f:_r},1:{n:"EOF",f:_r},3:{n:"??",f:_r},4:{n:"??",f:_r},5:{n:"??",f:_r},6:{n:"??",f:_r},7:{n:"??",f:_r},9:{n:"??",f:_r},10:{n:"??",f:_r},11:{n:"??",f:_r},12:{n:"??",f:_r},14:{n:"??",f:_r},15:{n:"??",f:_r},16:{n:"??",f:_r},17:{n:"??",f:_r},18:{n:"??",f:_r},19:{n:"??",f:_r},21:{n:"??",f:_r},22:{n:"LABEL16",f:u},23:{n:"NUMBER17",f:v},24:{n:"NUMBER18",f:d},25:{n:"FORMULA19",f:b},26:{n:"??",f:_r},27:{n:"??",f:_r},28:{n:"??",f:_r},29:{n:"??",f:_r},30:{n:"??",f:_r},31:{n:"??",f:_r},33:{n:"??",f:_r},37:{n:"NUMBER25",f:m},39:{n:"NUMBER27",f:g},40:{n:"FORMULA28",f:k},255:{n:"",f:_r}};return{to_workbook:r}}();var Bs={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var Cs=function Zp(){var e=ye("t"),r=ye("rPr"),t=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/,n=/\r\n/g;var i=function o(e,r,t){var a={},n=65001,i="";var s=e.match(le),o=0;if(s)for(;o!=s.length;++o){var l=ue(s[o]);switch(l[0].replace(/\w*:/g,"")){case"":;case"":a.shadow=1;break;case"":break;case"":;case"":a.outline=1;break;case"":break;case"":;case"":a.strike=1;break;case"":break;case"":;case"":a.u=1;break;case"":break;case"":;case"":a.b=1;break;case"":break;case"":;case"":a.i=1;break;case"":break;case"');if(a.b){r.push("");t.push("")}if(a.i){r.push("");t.push("")}if(a.strike){r.push("");t.push("")}if(i=="superscript")i="sup";else if(i=="subscript")i="sub";if(i!=""){r.push("<"+i+">");t.push("")}t.push("");return n};function s(t){var a=[[],"",[]];var s=t.match(e),o=65001;if(!x(s))return"";a[1]=s[1];var l=t.match(r);if(x(l))o=i(l[1],a[0],a[2]);return a[0].join("")+a[1].replace(n,"
    ")+a[2].join("")}return function l(e){return e.replace(t,"").split(a).map(s).join("")}}();var _s=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ts=/<(?:\w+:)?r>/;var xs=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Is(e,r){var t=r?r.cellHTML:true;var a={};if(!e)return null;var n;if(e.match(/^\s*<(?:\w+:)?t[^>]*>/)){a.t=pe(_e(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||""));a.r=_e(e);if(t)a.h=Se(a.t)}else if(n=e.match(Ts)){a.r=_e(e);a.t=pe(_e((e.replace(xs,"").match(_s)||[]).join("").replace(le,"")));if(t)a.h=Cs(a.r)}return a}var As=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/;var ys=/<(?:\w+:)?(?:si|sstItem)>/g;var Rs=/<\/(?:\w+:)?(?:si|sstItem)>/;function Ds(e,r){var t=[],a="";if(!e)return t;var n=e.match(As);if(x(n)){a=n[2].replace(ys,"").split(Rs);for(var i=0;i!=a.length;++i){var s=Is(a[i].trim(),r);if(s!=null)t[t.length]=s}n=ue(n[1]);t.Count=n.count;t.Unique=n.uniqueCount}return t}ua.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Os=/^\s|\s$|[\t\n\r]/;function Fs(e,r){if(!r.bookSST)return"";var t=[se];t[t.length]=Ue("sst",null,{xmlns:ze.main[0],count:e.Count,uniqueCount:e.Unique});for(var a=0;a!=e.length;++a){if(e[a]==null)continue;var n=e[a];var i="";if(n.r)i+=n.r;else{i+=""}i+="";t[t.length]=i}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Ps(e,r){return[e._R(4),e._R(4)]}function Ns(e,r){var t=[];var a=false;Ar(e,function n(e,i,s){switch(s){case 159:t.Count=e[0];t.Unique=e[1];break;case 19:t.push(e);break;case 160:return true;case 35:a=true;break;case 36:a=false;break;default:if(i.indexOf("Begin")>0){}else if(i.indexOf("End")>0){}if(!a||r.WTF)throw new Error("Unexpected record "+s+" "+i);}});return t}function Ls(e,r){if(!r)r=Ir(8);r._W(4,e.Count);r._W(4,e.Unique);return r}var Ms=ct;function Us(e,r){var t=yr();Rr(t,"BrtBeginSst",Ls(e));for(var a=0;a=4)e.l+=r-4;return t}function zs(e,r){var t={};t.id=e._R(0,"lpp4");t.R=Ws(e,4);t.U=Ws(e,4);t.W=Ws(e,4);return t}function Vs(e){var r=e._R(4);var t=e.l+r-4;var a={};var n=e._R(4);var i=[];while(n-- >0){var s={};s.t=e._R(4);s.v=e._R(0,"lpp4");i.push(s)}a.name=e._R(0,"lpp4");a.comps=i;return a}function Xs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(Vs(e));return t}function Gs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(e._R(0,"lpp4"));return t}function js(e,r){var t={};var a=e._R(4);var n=e.l+a-4;e.l+=4;t.id=e._R(0,"lpp4");t.name=e._R(0,"lpp4");t.R=Ws(e,4);t.U=Ws(e,4);t.W=Ws(e,4);return t}function Ks(e,r){var t=js(e);t.ename=e._R(0,"8lpp4");t.blksz=e._R(4);t.cmode=e._R(4);if(e._R(4)!=4)throw new Error("Bad !Primary record");return t}function Ys(e,r){var t=e.l+r;var a={};a.Flags=e._R(4)&63;e.l+=4;a.AlgID=e._R(4);var n=false;switch(a.AlgID){case 26126:;case 26127:;case 26128:n=a.Flags==36;break;case 26625:n=a.Flags==4;break;case 0:n=a.Flags==16||a.Flags==4||a.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+a.AlgID;}if(!n)throw new Error("Encryption Flags/AlgID mismatch");a.AlgIDHash=e._R(4);a.KeySize=e._R(4);a.ProviderType=e._R(4);e.l+=8;a.CSPName=e._R(t-e.l>>1,"utf16le").slice(0,-1);e.l=t;return a}function $s(e,r){var t={};e.l+=4;t.Salt=e.slice(e.l,e.l+16);e.l+=16;t.Verifier=e.slice(e.l,e.l+16);e.l+=16;var a=e._R(4);t.VerifierHash=e.slice(e.l,e.l+a);e.l+=a;return t}function Zs(e,r){var t=Ws(e);switch(t.Minor){case 2:return Qs(e,t);case 3:return Js(e,t);case 4:return qs(e,t);}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}function Qs(e,r){var t=e._R(4);if((t&63)!=36)throw new Error("EncryptionInfo mismatch");var a=e._R(4);var n=e.l+a;var i=Ys(e,a);var s=$s(e,e.length-e.l);return{t:"Std",h:i,v:s}}function Js(e,r){throw new Error("File is password-protected: ECMA-376 Extensible")}function qs(e,r){throw new Error("File is password-protected: ECMA-376 Agile")}function eo(e,r){var t={};var a=t.EncryptionVersionInfo=Ws(e,4);r-=4;if(a.Minor!=2)throw new Error("unrecognized minor version code: "+a.Minor);if(a.Major>4||a.Major<2)throw new Error("unrecognized major version code: "+a.Major);t.Flags=e._R(4);r-=4;var n=e._R(4);r-=4;t.EncryptionHeader=Ys(e,n);r-=n;t.EncryptionVerifier=$s(e,r);return t}function ro(e,r){var t={};var a=t.EncryptionVersionInfo=Ws(e,4);r-=4;if(a.Major!=1||a.Minor!=1)throw"unrecognized version code "+a.Major+" : "+a.Minor;t.Salt=e._R(16);t.EncryptedVerifier=e._R(16);t.EncryptedVerifierHash=e._R(16);return t}function to(e){var r=0,t;var a=Hs(e);var n=a.length+1,i,s;var o,l,f;t=v(n);t[0]=a.length;for(i=1;i!=n;++i)t[i]=a[i-1];for(i=n-1;i>=0;--i){s=t[i];o=(r&16384)===0?0:1;l=r<<1&32767;f=o|l;r=f^s}return r^52811}var ao=function(){var e=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0];var r=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163];var t=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628];var a=function(e){return(e/2|e*128)&255};var n=function(e,r){return a(e^r)};var i=function(e){var a=r[e.length-1];var n=104;for(var i=e.length-1;i>=0;--i){var s=e[i];for(var o=0;o!=7;++o){if(s&64)a^=t[n];s*=2;--n}}return a};return function(r){var t=Hs(r);var a=i(t);var s=t.length;var o=v(16);for(var l=0;l!=16;++l)o[l]=0;var f,c,u;if((s&1)===1){f=a>>8;o[s]=n(e[0],f);--s;f=a&255;c=t[t.length-1];o[s]=n(c,f)}while(s>0){--s;f=a>>8;o[s]=n(t[s],f);--s;f=a&255;o[s]=n(t[s],f)}s=15;u=15-t.length;while(u>0){f=a>>8;o[s]=n(e[u],f);--s;--u;f=a&255;o[s]=n(t[s],f);--s;--u}return o}}();var no=function(e,r,t,a,n){if(!n)n=r;if(!a)a=ao(e);var i,s;for(i=0;i!=r.length;++i){s=r[i];s^=a[t];s=(s>>5|s<<3)&255;n[i]=s;++t}return[n,t,a]};var io=function(e){var r=0,t=ao(e);return function(e){var a=no("",e,r,t);r=a[1];return a[0]}};function so(e,r,t,a){var n={key:dn(e),verificationBytes:dn(e)};if(t.password)n.verifier=to(t.password);a.valid=n.verificationBytes===n.verifier;if(a.valid)a.insitu_decrypt=io(t.password);return n}function oo(e,r,t){var a=t||{};a.Info=e._R(2);e.l-=2;if(a.Info===1)a.Data=ro(e,r);else a.Data=eo(e,r);return a}function lo(e,r,t){var a={Type:t.biff>=8?e._R(2):0};if(a.Type)oo(e,r-2,a);else so(e,r-2,t,a);return a}var fo=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){throw new Error("Unsupported RTF")}function t(r,t){return tt(e(r,t),t)}function a(){throw new Error("Unsupported")}return{to_workbook:t,to_sheet:e,from_sheet:a}}();function co(e){var r=e.substr(e[0]==="#"?1:0,6);return[parseInt(r.substr(0,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(4,2),16)]}function uo(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().substr(1)}function ho(e){var r=e[0]/255,t=e[1]/255,a=e[2]/255;var n=Math.max(r,t,a),i=Math.min(r,t,a),s=n-i;if(s===0)return[0,0,r];var o=0,l=0,f=n+i;l=s/(f>1?2-f:f);switch(n){case r:o=((t-a)/s+6)%6;break;case t:o=(a-r)/s+2;break;case a:o=(r-t)/s+4;break;}return[o/6,l,f/2]}function vo(e){var r=e[0],t=e[1],a=e[2];var n=t*2*(a<.5?a:1-a),i=a-n/2;var s=[i,i,i],o=6*r;var l;if(t!==0)switch(o|0){case 0:;case 6:l=n*o;s[0]+=n;s[1]+=l;break;case 1:l=n*(2-o);s[0]+=l;s[1]+=n;break;case 2:l=n*(o-2);s[1]+=n;s[2]+=l;break;case 3:l=n*(4-o);s[1]+=l;s[2]+=n;break;case 4:l=n*(o-4);s[2]+=n;s[0]+=l;break;case 5:l=n*(6-o);s[2]+=l;s[0]+=n;break;}for(var f=0;f!=3;++f)s[f]=Math.round(s[f]*255);return s}function po(e,r){if(r===0)return e;var t=ho(co(e));if(r<0)t[2]=t[2]*(1+r);else t[2]=1-(1-t[2])*(1-r);return uo(vo(t))}var bo=6,mo=15,go=1,Eo=bo;function ko(e){return Math.floor((e+Math.round(128/Eo)/256)*Eo)}function So(e){return Math.floor((e-5)/Eo*100+.5)/100}function wo(e){return Math.round((e*Eo+5)/Eo*256)/256}function Bo(e){return((e-5)/Eo*100+.5)/100}function Co(e){return(e*Eo+5)/Eo*256/256}function _o(e){return wo(So(ko(e)))}function To(e){var r=Math.abs(e-_o(e)),t=Eo;if(r>.005)for(Eo=go;Eo.5)t--;if(Math.abs(t)":;case"":break;case"":;case"":n={};if(t.diagonalUp){n.diagonalUp=t.diagonalUp}if(t.diagonalDown){n.diagonalDown=t.diagonalDown}r.Borders.push(n);break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in borders");}})}function Po(e,r,t,a){r.Fills=[];var n={};e[0].match(le).forEach(function(e){var t=ue(e);switch(t[0]){case"":;case"":break;case"":;case"":n={};r.Fills.push(n);break;case"":break;case"":break;case"":r.Fills.push(n);n={};break;case"":if(t.patternType)n.patternType=t.patternType;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":break;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in fills");}})}function No(e,r,t,a){r.Fonts=[];var n={};e[0].match(le).forEach(function(e){var i=ue(e);switch(i[0]){case"":;case"":break;case"":break;case"":;case"":r.Fonts.push(n);n={};break;case"":;case"":break;case"":n.bold=1;break;case"":n.italic=1;break;case"":n.underline=1;break;case"":n.strike=1;break;case"":n.outline=1;break;case"":n.shadow=1;break;case"":n.condense=1;break;case"":n.extend=1;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+i[0]+" in fonts");}})}function Lo(e,r,t){r.NumberFmt=[];var a=I(E._table);for(var n=0;n":;case"":;case"":break;case"0){if(l>392){for(l=392;l>60;--l)if(r.NumberFmt[l]==null)break;r.NumberFmt[l]=o}E.load(o,l)}}break;case"":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function Mo(e,r){var t=[""];[[5,8],[23,26],[41,44],[50,392]].forEach(function(r){for(var a=r[0];a<=r[1];++a)if(e[a]!=null)t[t.length]=Ue("numFmt",null,{numFmtId:a,formatCode:ge(e[a])})});if(t.length===1)return"";t[t.length]="";t[0]=Ue("numFmts",null,{count:t.length-2}).replace("/>",">");return t.join("")}var Uo=["numFmtId","fillId","fontId","borderId","xfId"];var Ho=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function Wo(e,r,t){r.CellXf=[];var a;e[0].match(le).forEach(function(e){var n=ue(e),i=0;switch(n[0]){case"":;case"":;case"":break;case"":a=n;delete a[0];for(i=0;i392){for(i=392;i>60;--i)if(r.NumberFmt[a.numFmtId]==r.NumberFmt[i]){a.numFmtId=i;break}}r.CellXf.push(a);break;case"":break;case"":var s={};if(n.vertical)s.vertical=n.vertical;if(n.horizontal)s.horizontal=n.horizontal;if(n.textRotation!=null)s.textRotation=n.textRotation;if(n.indent)s.indent=n.indent;if(n.wrapText)s.wrapText=n.wrapText;a.alignment=s;break;case"":break;case"":;case"":break;case"":break;case"";if(r.length===2)return"";r[0]=Ue("cellXfs",null,{count:r.length-2}).replace("/>",">");return r.join("")}var Vo=function Qp(){var e=/]*)>[\S\s]*?<\/numFmts>/;var r=/]*)>[\S\s]*?<\/cellXfs>/;var t=/]*)>[\S\s]*?<\/fills>/;var a=/]*)>[\S\s]*?<\/fonts>/; -var n=/]*)>[\S\s]*?<\/borders>/;return function i(s,o,l){var f={};if(!s)return f;s=s.replace(//gm,"").replace(//gm,"");var c;if(c=s.match(e))Lo(c,f,l);if(c=s.match(a))No(c,f,o,l);if(c=s.match(t))Po(c,f,o,l);if(c=s.match(n))Fo(c,f,o,l);if(c=s.match(r))Wo(c,f,l);return f}}();var Xo=Ue("styleSheet",null,{xmlns:ze.main[0],"xmlns:vt":ze.vt});ua.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function Go(e,r){var t=[se,Xo],a;if(e.SSF&&(a=Mo(e.SSF))!=null)t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';if(a=zo(r.cellXfs))t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function jo(e,r){var t=e._R(2);var a=it(e,r-2);return[t,a]}function Ko(e,r,t){if(!t)t=Ir(6+4*r.length);t._W(2,e);st(r,t);return t.length>t.l?t.slice(0,t.l):t}function Yo(e,r,t){var a={};a.sz=e._R(2)/20;var n=Pt(e,2,t);if(n.fCondense)a.condense=1;if(n.fExtend)a.extend=1;if(n.fShadow)a.shadow=1;if(n.fOutline)a.outline=1;if(n.fStrikeout)a.strike=1;if(n.fItalic)a.italic=1;var i=e._R(2);if(i===700)a.bold=1;switch(e._R(2)){case 1:a.vertAlign="superscript";break;case 2:a.vertAlign="subscript";break;}var s=e._R(1);if(s!=0)a.underline=s;var o=e._R(1);if(o>0)a.family=o;var l=e._R(1);if(l>0)a.charset=l;e.l++;a.color=Ot(e,8);switch(e._R(1)){case 1:a.scheme="major";break;case 2:a.scheme="minor";break;}a.name=it(e,r-21);return a}function $o(e,r){if(!r)r=Ir(25+4*32);r._W(2,e.sz*20);Nt(e,r);r._W(2,e.bold?700:400);var t=0;if(e.vertAlign=="superscript")t=1;else if(e.vertAlign=="subscript")t=2;r._W(2,t);r._W(1,e.underline||0);r._W(1,e.family||0);r._W(1,e.charset||0);r._W(1,0);Ft(e.color,r);var a=0;if(e.scheme=="major")a=1;if(e.scheme=="minor")a=2;r._W(1,a);st(e.name,r);return r.length>r.l?r.slice(0,r.l):r}var Zo=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];var Qo=y(Zo);var Jo=_r;function qo(e,r){if(!r)r=Ir(4*3+8*7+16*1);var t=Qo[e.patternType];if(t==null)t=40;r._W(4,t);var a=0;if(t!=40){Ft({auto:1},r);Ft({auto:1},r);for(;a<12;++a)r._W(4,0)}else{for(;a<4;++a)r._W(4,0);for(;a<12;++a)r._W(4,0)}return r.length>r.l?r.slice(0,r.l):r}function el(e,r){var t=e._R(2);var a=e._R(2);_r(e,r-4);return{ixfe:t,numFmtId:a}}function rl(e,r,t){if(!t)t=Ir(16);t._W(2,r||0);t._W(2,e.numFmtId||0);t._W(2,0);t._W(2,0);t._W(2,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);return t}function tl(e,r){if(!r)r=Ir(10);r._W(1,0);r._W(1,0);r._W(4,0);r._W(4,0);return r}var al=_r;function nl(e,r){if(!r)r=Ir(51);r._W(1,0);tl(null,r);tl(null,r);tl(null,r);tl(null,r);tl(null,r);return r.length>r.l?r.slice(0,r.l):r}function il(e,r){if(!r)r=Ir(12+4*10);r._W(4,e.xfId);r._W(2,1);r._W(1,+e.builtinId);r._W(1,0);gt(e.name||"",r);return r.length>r.l?r.slice(0,r.l):r}function sl(e,r,t){var a=Ir(4+256*2*4);a._W(4,e);gt(r,a);gt(t,a);return a.length>a.l?a.slice(0,a.l):a}function ol(e,r,t){var a={};a.NumberFmt=[];for(var n in E._table)a.NumberFmt[n]=E._table[n];a.CellXf=[];a.Fonts=[];var i=[];var s=false;Ar(e,function o(e,n,l){switch(l){case 44:a.NumberFmt[e[0]]=e[1];E.load(e[1],e[0]);break;case 43:a.Fonts.push(e);if(e.color.theme!=null&&r&&r.themeElements&&r.themeElements.clrScheme){e.color.rgb=po(r.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0)}break;case 1025:break;case 45:break;case 46:break;case 47:if(i[i.length-1]=="BrtBeginCellXFs"){a.CellXf.push(e)}break;case 48:;case 507:;case 572:;case 475:break;case 1171:;case 2102:;case 1130:;case 512:;case 2095:break;case 35:s=true;break;case 36:s=false;break;case 37:i.push(n);break;case 38:i.pop();break;default:if((n||"").indexOf("Begin")>0)i.push(n);else if((n||"").indexOf("End")>0)i.pop();else if(!s||t.WTF)throw new Error("Unexpected record "+l+" "+n);}});return a}function ll(e,r){if(!r)return;var t=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(e){for(var a=e[0];a<=e[1];++a)if(r[a]!=null)++t});if(t==0)return;Rr(e,"BrtBeginFmts",nt(t));[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(r[a]!=null)Rr(e,"BrtFmt",Ko(a,r[a]))});Rr(e,"BrtEndFmts")}function fl(e,r){var t=1;if(t==0)return;Rr(e,"BrtBeginFonts",nt(t));Rr(e,"BrtFont",$o({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}));Rr(e,"BrtEndFonts")}function cl(e,r){var t=2;if(t==0)return;Rr(e,"BrtBeginFills",nt(t));Rr(e,"BrtFill",qo({patternType:"none"}));Rr(e,"BrtFill",qo({patternType:"gray125"}));Rr(e,"BrtEndFills")}function ul(e,r){var t=1;if(t==0)return;Rr(e,"BrtBeginBorders",nt(t));Rr(e,"BrtBorder",nl({}));Rr(e,"BrtEndBorders")}function hl(e,r){var t=1;Rr(e,"BrtBeginCellStyleXFs",nt(t));Rr(e,"BrtXF",rl({numFmtId:0,fontId:0,fillId:0,borderId:0},65535));Rr(e,"BrtEndCellStyleXFs")}function dl(e,r){Rr(e,"BrtBeginCellXFs",nt(r.length));r.forEach(function(r){Rr(e,"BrtXF",rl(r,0))});Rr(e,"BrtEndCellXFs")}function vl(e,r){var t=1;Rr(e,"BrtBeginStyles",nt(1));Rr(e,"BrtStyle",il({xfId:0,builtinId:0,name:"Normal"}));Rr(e,"BrtEndStyles")}function pl(e,r){var t=0;Rr(e,"BrtBeginDXFs",nt(t));Rr(e,"BrtEndDXFs")}function bl(e,r){var t=0;Rr(e,"BrtBeginTableStyles",sl(t,"TableStyleMedium9","PivotStyleMedium4"));Rr(e,"BrtEndTableStyles")}function ml(e,r){return}function gl(e,r){var t=yr();Rr(t,"BrtBeginStyleSheet");ll(t,e.SSF);fl(t,e);cl(t,e);ul(t,e);hl(t,e);dl(t,r.cellXfs);vl(t,e);pl(t,e);bl(t,e);ml(t,e);Rr(t,"BrtEndStyleSheet");return t.end()}ua.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function El(e,r,t){r.themeElements.clrScheme=[];var a={};(e[0].match(le)||[]).forEach(function(e){var n=ue(e);switch(n[0]){case"":break;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":if(n[0].charAt(1)==="/"){r.themeElements.clrScheme.push(a);a={}}else{a.name=n[0].substring(3,n[0].length-1)}break;default:if(t&&t.WTF)throw new Error("Unrecognized "+n[0]+" in clrScheme");}})}function kl(e,r,t){}function Sl(e,r,t){}var wl=/]*)>[\s\S]*<\/a:clrScheme>/;var Bl=/]*)>[\s\S]*<\/a:fontScheme>/;var Cl=/]*)>[\s\S]*<\/a:fmtScheme>/;function _l(e,r,t){r.themeElements={};var a;[["clrScheme",wl,El],["fontScheme",Bl,kl],["fmtScheme",Cl,Sl]].forEach(function(n){if(!(a=e.match(n[1])))throw new Error(n[0]+" not found in themeElements");n[2](a,r,t)})}var Tl=/]*)>[\s\S]*<\/a:themeElements>/;function xl(e,r){if(!e||e.length===0)return xl(Il());var t;var a={};if(!(t=e.match(Tl)))throw new Error("themeElements not found in theme");_l(t[0],a,r);return a}function Il(e,r){if(r&&r.themeXLSX)return r.themeXLSX;var t=[se];t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";return t.join("")}function Al(e,r,t){var a=e._R(4);if(a===124226)return;e.l+=r-4}function yl(e,r){return e._R(4)}function Rl(e,r){var t={};t.xclrType=e._R(2);t.nTintShade=e._R(2);switch(t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=Dl(e,4);break;case 2:t.xclrValue=An(e,4);break;case 3:t.xclrValue=yl(e,4);break;case 4:e.l+=4;break;}e.l+=8;return t}function Dl(e,r){return _r(e,r)}function Ol(e,r){return _r(e,r)}function Fl(e,r){var t=e._R(2);var a=e._R(2);var n=[t];switch(t){case 4:;case 5:;case 7:;case 8:;case 9:;case 10:;case 11:;case 13:n[1]=Rl(e,a);break;case 6:n[1]=Ol(e,a);break;case 14:;case 15:n[1]=e._R(a===5?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+a);}return n}function Pl(e,r){var t=e.l+r;e.l+=2;var a=e._R(2);e.l+=2;var n=e._R(2);var i=[];while(n-- >0)i.push(Fl(e,t-e.l));return{ixfe:a,ext:i}}function Nl(e,r){r.forEach(function(e){switch(e[0]){case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 13:break;case 14:break;case 15:break;}})}function Ll(e,r,t){var a=[];if(!e)return a;var n=0,i=1;(e.match(le)||[]).forEach(function(e){var r=ue(e);switch(r[0]){case"":;case"":break;case"0){}else if((r||"").indexOf("End")>0){}else if(!n||t.WTF)throw new Error("Unexpected record "+s+" "+r);}});return a}function Wl(e,r){}function zl(e,r,t){var a=t||{}}function Vl(e,r,t){if(!e)return e;var a=t||{};var n=false,i=false;Ar(e,function s(e,r,t){if(i)return;switch(t){case 359:;case 363:;case 364:;case 366:;case 367:;case 368:;case 369:;case 370:;case 371:;case 472:;case 577:;case 578:;case 579:;case 580:;case 581:;case 582:;case 583:;case 584:;case 585:;case 586:;case 587:break;case 35:n=true;break;case 36:n=false;break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!n||a.WTF)throw new Error("Unexpected record "+t.toString(16)+" "+r);}},a)}ua.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";ua.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";function Xl(e,r){if(!e)return"??";var t=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return r["!id"][t].Target}var Gl=1024;function jl(e,r){var t=[21600,21600];var a=["m0,0l0",t[1],t[0],t[1],t[0],"0xe"].join(",");var n=[Ue("xml",null,{"xmlns:v":Ve.v,"xmlns:o":Ve.o,"xmlns:x":Ve.x,"xmlns:mv":Ve.mv}).replace(/\/>/,">"),Ue("o:shapelayout",Ue("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ue("v:shapetype",[Ue("v:stroke",null,{joinstyle:"miter"}),Ue("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:t.join(","),path:a})];while(Gl",Ue("v:fill",Ue("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}),{color2:"#BEFF82",angle:"-180",type:"gradient"}),Ue("v:shadow",null,{on:"t",obscured:"t"}),Ue("v:path",null,{"o:connecttype":"none"}),'
    ','',"","",Le("x:Anchor",[e.c,0,e.r,0,e.c+3,100,e.r+5,100].join(",")),Le("x:AutoFill","False"),Le("x:Row",String(e.r)),Le("x:Column",String(e.c)),"","",""])});n.push("");return n.join("")}ua.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";function Kl(e,r,t,a,n){for(var i=0;i!=r.length;++i){var s=r[i];var o=xd(ee(e,s.replace(/^\//,""),true),s,n);if(!o||!o.length)continue;var l=I(t);for(var f=0;f!=l.length;++f){var c=l[f];var u=a[c];if(u){var h=u[s];if(h)Yl(c,t[c],o)}}}}function Yl(e,r,t){var a=Array.isArray(r);var n,i;t.forEach(function(e){if(a){i=Kr(e.ref);if(!r[i.r])r[i.r]=[];n=r[i.r][i.c]}else n=r[e.ref];if(!n){n={};if(a)r[i.r][i.c]=n;else r[e.ref]=n;var t=qr(r["!ref"]||"BDWGO1000001:A1");var s=Kr(e.ref);if(t.s.r>s.r)t.s.r=s.r;if(t.e.rs.c)t.s.c=s.c;if(t.e.c/))return[];var t=[];var a=[];var n=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^>]*>(.*)/);if(r)t.push(r[1])});var i=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e,n){if(e===""||e.trim()==="")return;var i=e.match(/<(?:\w+:)?comment[^>]*>/);if(!i)return;var s=ue(i[0]);var o={author:s.authorId&&t[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid};var l=Kr(s.ref);if(r.sheetRows&&r.sheetRows<=l.r)return;var f=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/);var c=!!f&&!!f[1]&&Is(f[1])||{r:"",t:"",h:""};o.r=c.r;if(c.r=="")c.t=c.h="";o.t=c.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)o.h=c.h;a.push(o)});return a}var Zl=Ue("comments",null,{xmlns:ze.main[0]});function Ql(e,r){var t=[se,Zl];var a=[];t.push("");e.map(function(e){return e[1]}).forEach(function(e){e.map(function(e){return ge(e.a)}).forEach(function(e){if(a.indexOf(e)>-1)return;a.push(e);t.push(""+e+"")})});t.push("");t.push("");e.forEach(function(e){e[1].forEach(function(r){t.push('');t.push(Le("t",r.t==null?"":r.t));t.push("")})});t.push("");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Jl(e,r){var t={};t.iauthor=e._R(4);var a=xt(e,16);t.rfx=a.s;t.ref=Yr(a.s);e.l+=16;return t}function ql(e,r){if(r==null)r=Ir(36);r._W(4,e[1].iauthor);It(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var ef=it;function rf(e){return st(e.slice(0,54))}function tf(e,r){var t=[];var a=[];var n={};var i=false;Ar(e,function s(e,o,l){switch(l){case 632:a.push(e);break;case 635:n=e;break;case 637:n.t=e.t;n.h=e.h;n.r=e.r;break;case 636:n.author=a[n.iauthor];delete n.iauthor;if(r.sheetRows&&r.sheetRows<=n.rfx.r)break;if(!n.t)n.t="";delete n.rfx;t.push(n);break;case 35:i=true;break;case 36:i=false;break;case 37:break;case 38:break;default:if((o||"").indexOf("Begin")>0){}else if((o||"").indexOf("End")>0){}else if(!i||r.WTF)throw new Error("Unexpected record "+l+" "+o);}});return t}function af(e,r){var t=yr();var a=[];Rr(t,"BrtBeginComments");{Rr(t,"BrtBeginCommentAuthors");e.forEach(function(e){e[1].forEach(function(e){if(a.indexOf(e.a)>-1)return;a.push(e.a.slice(0,54));Rr(t,"BrtCommentAuthor",rf(e.a))})});Rr(t,"BrtEndCommentAuthors")}{Rr(t,"BrtBeginCommentList");e.forEach(function(e){e[1].forEach(function(r){r.iauthor=a.indexOf(r.a);var n={s:Kr(e[0]),e:Kr(e[0])};Rr(t,"BrtBeginComment",ql([n,r]));if(r.t&&r.t.length>0)Rr(t,"BrtCommentText",ht(r));Rr(t,"BrtEndComment");delete r.iauthor})});Rr(t,"BrtEndCommentList")}Rr(t,"BrtEndComments");return t.end()}ua.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet";ua.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";function nf(e,r,t,a,n,i){return{"!type":"dialog"}}function sf(e,r,t,a,n,i){return{"!type":"dialog"}}function of(e,r,t,a,n,i){return{"!type":"macro"}}function lf(e,r,t,a,n,i){return{"!type":"macro"}}var ff=function(){var e=/(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g;var r={r:0,c:0};function t(e,t,a,n,i,s){var o=n.length>0?parseInt(n,10)|0:0,l=s.length>0?parseInt(s,10)|0:0;if(l<0&&i.length===0)l=0;var f=false,c=false;if(i.length>0||s.length==0)f=true;if(f)l+=r.c;else--l;if(a.length>0||n.length==0)c=true;if(c)o+=r.r;else--o;return t+(f?"":"$")+Vr(l)+(c?"":"$")+Ur(o)}return function a(n,i){r=i;return n.replace(e,t)}}();var cf=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)([1-9]\d{0,5}|10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6])(?![_.\(A-Za-z0-9])/g;var uf=function(){return function e(r,t){return r.replace(cf,function(e,r,a,n,i,s,o,l){var f=zr(n)-t.c;var c=Mr(s)-t.r;return r+"R"+(c==0?"":"["+c+"]")+"C"+(f==0?"":"["+f+"]")})}}();function hf(e,r){return e.replace(cf,function(e,t,a,n,i,s,o,l){return t+(a=="$"?a+n:Vr(zr(n)+r.c))+(i=="$"?i+s:Ur(Mr(s)+r.r))})}function df(e,r,t){var a=Qr(r),n=a.s,i=Kr(t);var s={r:i.r-n.r,c:i.c-n.c};return hf(e,s)}function vf(e){if(e.length==1)return false;return true}function pf(e){return function(r,t){r.l+=e;return}}function bf(e){e.l+=1;return}function mf(e,r){var t=e._R(r==1?1:2);return[t&16383,t>>14&1,t>>15&1]}function gf(e,r,t){var a=2;if(t){if(t.biff>=2&&t.biff<=5)return Ef(e,r,t);else if(t.biff==12)a=4}var n=e._R(a),i=e._R(a);var s=mf(e,2);var o=mf(e,2);return{s:{r:n,c:s[0],cRel:s[1],rRel:s[2]},e:{r:i,c:o[0],cRel:o[1],rRel:o[2]}}}function Ef(e){var r=mf(e,2),t=mf(e,2);var a=e._R(1);var n=e._R(1);return{s:{r:r[0],c:a,cRel:r[1],rRel:r[2]},e:{r:t[0],c:n,cRel:t[1],rRel:t[2]}}}function kf(e,r){var t=e._R(r==12?4:2),a=e._R(r==12?4:2);var n=mf(e,2);var i=mf(e,2);return{s:{r:t,c:n[0],cRel:n[1],rRel:n[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}function Sf(e,r,t){if(t&&t.biff>=2&&t.biff<=5)return wf(e,r,t);var a=e._R(t&&t.biff==12?4:2);var n=mf(e,2);return{r:a,c:n[0],cRel:n[1],rRel:n[2]}}function wf(e,r,t){var a=mf(e,2);var n=e._R(1);return{r:a[0],c:n,cRel:a[1],rRel:a[2]}}function Bf(e,r,t){var a=t&&t.biff?t.biff:8;if(a>=2&&a<=5)return Cf(e,r,t);var n=e._R(a>=12?4:2);var i=e._R(2);var s=(i&32768)>>15,o=(i&16384)>>14;i&=16383;if(o==1)while(n>524287)n-=1048576;if(s==1)while(i>8191)i=i-16384;return{r:n,c:i,cRel:s,rRel:o}}function Cf(e,r){var t=e._R(2);var a=e._R(1);var n=(t&32768)>>15,i=(t&16384)>>14;t&=16383;if(n==1&&t>=8192)t=t-16384;if(i==1&&a>=128)a=a-256;return{r:t,c:a,cRel:i,rRel:n}}function _f(e,r,t){var a=(e[e.l++]&96)>>5;var n=gf(e,t.biff>=2&&t.biff<=5?6:8,t);return[a,n]}function Tf(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2,"i");var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}var s=gf(e,i,t);return[a,n,s]}function xf(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t&&t.biff>8?12:8;return[a]}function If(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}e.l+=i;return[a,n]}function Af(e,r,t){var a=(e[e.l++]&96)>>5;var n=kf(e,t&&t.biff>8?12:8,t);return[a,n]}function yf(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t.biff==2?6:t.biff==12?14:7;return[a]}function Rf(e,r){var t=e[e.l+1]&1;var a=1;e.l+=4;return[t,a]}function Df(e,r,t){e.l+=2;var a=e._R(t&&t.biff==2?1:2);var n=[];for(var i=0;i<=a;++i)n.push(e._R(t&&t.biff==2?1:2));return n}function Of(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Ff(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Pf(e,r){var t=e[e.l+1]&255?1:0;e.l+=2;return[t,e._R(2)]}function Nf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=t&&t.biff==2?3:4;return[a]}function Lf(e,r){var t=e._R(1),a=e._R(1);return[t,a]}function Mf(e,r){e._R(2);return Lf(e,2)}function Uf(e,r){e._R(2);return Lf(e,2)}function Hf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=Sf(e,0,t);return[n,i]}function Wf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=Bf(e,0,t);return[a,n]}function zf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=e._R(2);var i=Sf(e,0,t);return[a,n,i]}function Vf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=e._R(t&&t.biff<=3?1:2);return[nu[i],au[i],n]}function Xf(e,r,t){e.l++;var a=e._R(1),n=t&&t.biff<=3?[0,e._R(1)]:Gf(e);return[a,(n[0]===0?au:tu)[n[1]]]}function Gf(e,r){return[e[e.l+1]>>7,e._R(2)&32767]}function jf(e,r,t){e.l+=t&&t.biff==2?3:4;return}var Kf=bf;function Yf(e,r,t){e.l++;if(t&&t.biff==12)return[e._R(4,"i"),0];var a=e._R(2);var n=e._R(t&&t.biff==2?1:2);return[a,n]}function $f(e,r){e.l++;return Rt[e._R(1)]}function Zf(e,r){e.l++;return e._R(2)}function Qf(e,r){e.l++;return e._R(1)!==0}function Jf(e,r){e.l++;return At(e,8)}function qf(e,r,t){e.l++;return gn(e,r-1,t)}function ec(e,r){var t=[e._R(1)];if(r==12)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2;break;}switch(t[0]){case 4:t[1]=un(e,1)?"TRUE":"FALSE";e.l+=7;break;case 16:t[1]=Rt[e[e.l]];e.l+=8;break;case 0:e.l+=8;break;case 1:t[1]=At(e,8);break;case 2:t[1]=wn(e,0,{biff:r>0&&r<8?2:r});break;}return t}function rc(e,r){var t=e._R(2);var a=[];for(var n=0;n!=t;++n)a.push(Mn(e,8));return a}function tc(e,r,t){var a=0,n=0;if(t.biff==12){a=e._R(4);n=e._R(4)}else{n=1+e._R(1);a=1+e._R(2)}if(t.biff>=2&&t.biff<8){--a;if(--n==0)n=256}for(var i=0,s=[];i!=a&&(s[i]=[]);++i)for(var o=0;o!=n;++o)s[i][o]=ec(e,t.biff);return s}function ac(e,r,t){var a=e._R(1)>>>5&3;var n=!t||t.biff>=8?4:2;var i=e._R(n); -switch(t.biff){case 2:e.l+=5;break;case 3:;case 4:e.l+=8;break;case 5:e.l+=12;break;}return[a,0,i]}function nc(e,r,t){if(t.biff==5)return ic(e,r,t);var a=e._R(1)>>>5&3;var n=e._R(2);var i=e._R(4);return[a,n,i]}function ic(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(2,"i");e.l+=8;var i=e._R(2);e.l+=12;return[a,n,i]}function sc(e,r,t){var a=e._R(1)>>>5&3;e.l+=t&&t.biff==2?3:4;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function oc(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function lc(e,r,t){var a=e._R(1)>>>5&3;e.l+=4;if(t.biff==12)e.l+=2;return[a]}function fc(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=4;if(t)switch(t.biff){case 5:throw new Error("PtgRefErr3d -- 5");case 12:i=6;break;}e.l+=i;return[a,n]}var cc=bf;var uc=bf;var hc=bf;var dc=bf;var vc=bf;var pc=bf;var bc=bf;var mc=bf;var gc=bf;var Ec=bf;var kc=bf;var Sc=bf;var wc=bf;var Bc=bf;var Cc=bf;var _c=bf;var Tc=bf;var xc=bf;var Ic=bf;var Ac=_r;var yc=_r;var Rc=_r;var Dc={1:{n:"PtgExp",f:Yf},2:{n:"PtgTbl",f:Rc},3:{n:"PtgAdd",f:cc},4:{n:"PtgSub",f:_c},5:{n:"PtgMul",f:Ec},6:{n:"PtgDiv",f:uc},7:{n:"PtgPower",f:Bc},8:{n:"PtgConcat",f:Kf},9:{n:"PtgLt",f:mc},10:{n:"PtgLe",f:bc},11:{n:"PtgEq",f:hc},12:{n:"PtgGe",f:dc},13:{n:"PtgGt",f:vc},14:{n:"PtgNe",f:kc},15:{n:"PtgIsect",f:pc},16:{n:"PtgUnion",f:xc},17:{n:"PtgRange",f:Cc},18:{n:"PtgUplus",f:Ic},19:{n:"PtgUminus",f:Tc},20:{n:"PtgPercent",f:wc},21:{n:"PtgParen",f:Sc},22:{n:"PtgMissArg",f:gc},23:{n:"PtgStr",f:qf},28:{n:"PtgErr",f:$f},29:{n:"PtgBool",f:Qf},30:{n:"PtgInt",f:Zf},31:{n:"PtgNum",f:Jf},32:{n:"PtgArray",f:yf},33:{n:"PtgFunc",f:Vf},34:{n:"PtgFuncVar",f:Xf},35:{n:"PtgName",f:ac},36:{n:"PtgRef",f:Hf},37:{n:"PtgArea",f:_f},38:{n:"PtgMemArea",f:sc},39:{n:"PtgMemErr",f:Ac},40:{n:"PtgMemNoMem",f:yc},41:{n:"PtgMemFunc",f:oc},42:{n:"PtgRefErr",f:lc},43:{n:"PtgAreaErr",f:xf},44:{n:"PtgRefN",f:Wf},45:{n:"PtgAreaN",f:Af},57:{n:"PtgNameX",f:nc},58:{n:"PtgRef3d",f:zf},59:{n:"PtgArea3d",f:Tf},60:{n:"PtgRefErr3d",f:fc},61:{n:"PtgAreaErr3d",f:If},255:{}};var Oc={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};(function(){for(var e in Oc)Dc[e]=Dc[Oc[e]]})();var Fc={};var Pc={1:{n:"PtgAttrSemi",f:Nf},2:{n:"PtgAttrIf",f:Ff},4:{n:"PtgAttrChoose",f:Df},8:{n:"PtgAttrGoto",f:Of},16:{n:"PtgAttrSum",f:jf},32:{n:"PtgAttrBaxcel",f:Rf},64:{n:"PtgAttrSpace",f:Mf},65:{n:"PtgAttrSpaceSemi",f:Uf},128:{n:"PtgAttrIfError",f:Pf},255:{}};function Nc(e,r,t){var a=e.l+r;var n=Rn(e,6);if(t.biff==2)++e.l;var i=Lc(e,8);var s=e._R(1);if(t.biff!=2){e._R(1);if(t.biff>=5){var o=e._R(4)}}var l=Hc(e,a-e.l,t);return{cell:n,val:i[0],formula:l,shared:s>>3&1,tt:i[1]}}function Lc(e){var r;if(hr(e,e.l+6)!==65535)return[At(e),"n"];switch(e[e.l]){case 0:e.l+=8;return["String","s"];case 1:r=e[e.l+2]===1;e.l+=8;return[r,"b"];case 2:r=e[e.l+2];e.l+=8;return[r,"e"];case 3:e.l+=8;return["","s"];}return[]}function Mc(e,r,t,a){if(a.biff<8)return _r(e,r);var n=e.l+r;var i=[];for(var s=0;s!==t.length;++s){switch(t[s][0]){case"PtgArray":t[s][1]=tc(e,0,a);i.push(t[s][1]);break;case"PtgMemArea":t[s][2]=rc(e,t[s][1]);i.push(t[s][2]);break;case"PtgExp":if(a&&a.biff==12){t[s][1][1]=e._R(4);i.push(t[s][1])}break;default:break;}}r=n-e.l;if(r!==0)i.push(_r(e,r));return i}function Uc(e,r,t,a){var n=e.l+r;var i=Vc(e,a,t);var s;if(n!==e.l)s=Mc(e,n-e.l,i,t);return[i,s]}function Hc(e,r,t){var a=e.l+r,n=t.biff==2?1:2;var i,s=e._R(n);if(s==65535)return[[],_r(e,r-2)];var o=Vc(e,s,t);if(r!==s+n)i=Mc(e,r-s-n,o,t);return[o,i]}function Wc(e,r,t){var a=e.l+r;var n,i=e._R(2);var s=Vc(e,i,t);if(i==65535)return[[],_r(e,r-2)];if(r!==i+2)n=Mc(e,a-i-2,s,t);return[s,n]}function zc(e,r,t,a){var n=e.l+r,i=t.biff==2?1:2;var s,o=e._R(i);if(o==65535)return[[],_r(e,r-2)];var l=Vc(e,o,t);if(r!==o+i)s=Mc(e,r-o-i,l,t);return[l,s]}function Vc(e,r,t){var a=e.l+r;var n,i,s=[];while(a!=e.l){r=a-e.l;i=e[e.l];n=Dc[i];if(i===24||i===25){i=e[e.l+1];n=(i===24?Fc:Pc)[i]}if(!n||!n.f){_r(e,r)}else{s.push([n.n,n.f(e,r,t)])}}return s}function Xc(e){var r=[];for(var t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function jc(e){if(!e)return"";if(e.indexOf(" ")>-1)return"'"+e+"'";return e}function Kc(e,r,t){return e.SheetNames[r]}function Yc(e,r,t){return jc(Kc(e,r,t))}function $c(e,r,t,a,n){var i={s:{c:0,r:0},e:{c:0,r:0}};var s=[],o,l,f,c,u=0,h=0,d,v="";if(!e[0]||!e[0][0])return"";var p=-1,b="";for(var m=0,g=e[0].length;m=0){switch(e[0][p][1][0]){case 0:b=X(" ",e[0][p][1][1]);break;case 1:b=X("\r",e[0][p][1][1]);break;default:b="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][p][1][0]);}l=l+b;p=-1}s.push(l+Gc[E[0]]+o);break;case"PtgIsect":o=s.pop();l=s.pop();s.push(l+" "+o);break;case"PtgUnion":o=s.pop();l=s.pop();s.push(l+","+o);break;case"PtgRange":o=s.pop();l=s.pop();s.push(l+":"+o);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":f=E[1][0];c=Dr(E[1][1],i,n);s.push(Fr(c));break;case"PtgRefN":f=E[1][0];c=t?Dr(E[1][1],t,n):E[1][1];s.push(Fr(c));break;case"PtgRef3d":f=E[1][0];u=E[1][1];c=Dr(E[1][2],i,n);v=Yc(a,u,n);var k=v;s.push(v+"!"+Fr(c));break;case"PtgFunc":;case"PtgFuncVar":var S=E[1][0],w=E[1][1];if(!S)S=0;var B=S==0?[]:s.slice(-S);s.length-=S;if(w==="User")w=B.shift();s.push(w+"("+B.join(",")+")");break;case"PtgBool":s.push(E[1]?"TRUE":"FALSE");break;case"PtgInt":s.push(E[1]);break;case"PtgNum":s.push(String(E[1]));break;case"PtgStr":s.push('"'+E[1]+'"');break;case"PtgErr":s.push(E[1]);break;case"PtgAreaN":f=E[1][0];d=Or(E[1][1],i,n);s.push(Pr(d,n));break;case"PtgArea":f=E[1][0];d=Or(E[1][1],i,n);s.push(Pr(d,n));break;case"PtgArea3d":f=E[1][0];u=E[1][1];d=E[1][2];v=a&&a[1]?a[1][u+1]:"**MISSING**";s.push(v+"!"+Pr(d,n));break;case"PtgAttrSum":s.push("SUM("+s.pop()+")");break;case"PtgAttrSemi":break;case"PtgName":h=E[1][2];var C=(a.names||[])[h-1]||(a[0]||[])[h];var _=C?C.Name:"SH33TJSERR7"+String(h);if(_ in iu)_=iu[_];s.push(_);break;case"PtgNameX":var T=E[1][1];h=E[1][2];var x;if(n.biff<=5){if(T<0)T=-T;if(a[T])x=a[T][h]}else{var I=a.SheetNames[T];var A="";if(((a[T]||[])[0]||[])[0]==14849){}else if(((a[T]||[])[0]||[])[0]==1025){if(a[T][h]&&a[T][h].itab>0){A=a.SheetNames[a[T][h].itab-1]+"!"}}else A=a.SheetNames[h-1]+"!";if(a[T]&&a[T][h])A+=a[T][h].Name;else if(a[0]&&a[0][h])A+=a[0][h].Name;else A+="SH33TJSERRX";s.push(A);break}if(!x)x={Name:"SH33TJSERRY"};s.push(x.Name);break;case"PtgParen":var y="(",R=")";if(p>=0){b="";switch(e[0][p][1][0]){case 2:y=X(" ",e[0][p][1][1])+y;break;case 3:y=X("\r",e[0][p][1][1])+y;break;case 4:R=X(" ",e[0][p][1][1])+R;break;case 5:R=X("\r",e[0][p][1][1])+R;break;default:if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][p][1][0]);}p=-1}s.push(y+s.pop()+R);break;case"PtgRefErr":s.push("#REF!");break;case"PtgRefErr3d":s.push("#REF!");break;case"PtgExp":c={c:E[1][1],r:E[1][0]};var D={c:t.c,r:t.r};if(a.sharedf[Yr(c)]){var O=a.sharedf[Yr(c)];s.push($c(O,i,D,a,n))}else{var F=false;for(o=0;o!=a.arrayf.length;++o){l=a.arrayf[o];if(c.cl[0].e.c)continue;if(c.rl[0].e.r)continue;s.push($c(l[1],i,D,a,n));F=true;break}if(!F)s.push(E[1])}break;case"PtgArray":s.push("{"+Xc(E[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":;case"PtgAttrSpaceSemi":p=m;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":s.push("");break;case"PtgAreaErr":s.push("#REF!");break;case"PtgAreaErr3d":s.push("#REF!");break;case"PtgMemFunc":break;default:throw new Error("Unrecognized Formula Token: "+String(E));}var P=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(p>=0&&P.indexOf(e[0][m][0])==-1){E=e[0][p];var N=true;switch(E[1][0]){case 4:N=false;case 0:b=X(" ",E[1][1]);break;case 5:N=false;case 1:b=X("\r",E[1][1]);break;default:b="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+E[1][0]);}s.push((N?b:"")+s.pop()+(N?"":b));p=-1}}if(s.length>1&&n.WTF)throw new Error("bad formula stack");return s[0]}function Zc(e,r,t){var a=e.l+r;var n=e._R(4);var i=Vc(e,n,t);var s=e._R(4);var o=s>0?Mc(e,s,i,t):null;return[i,o]}var Qc=Zc;var Jc=Zc;var qc=Zc;var eu=Zc;var ru={1:"REFERENCE",2:"VALUE",3:"ARRAY"};var tu={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"};var au={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"};var nu={2:1,3:1,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,90:1,97:2,98:1,99:1,101:3,102:3,105:1,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};var iu={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFNA":"IFNA","_xlfn.IFERROR":"IFERROR","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function su(e){if(e.substr(0,3)=="of:")e=e.substr(3);if(e.charCodeAt(0)==61){e=e.substr(1);if(e.charCodeAt(0)==61)e=e.substr(1)}e=e.replace(/COM\.MICROSOFT\./g,"");e=e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(e,r){return r.replace(/\./g,"")});e=e.replace(/\[.(#[A-Z]*[?!])\]/g,"$1");return e.replace(/[;~]/g,",").replace(/\|/g,";")}function ou(e){var r="of:="+e.replace(cf,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function lu(e){var r=e.split(":");var t=r[0].split(".")[0];return[t,r[0].split(".")[1]+":"+r[1].split(".")[1]]}var fu={};var cu={};ua.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];function uu(e,r){for(var t=0,a=e.length;t-1){t.width=wo(a);t.customWidth=1}else if(r.width!=null)t.width=r.width;if(r.hidden)t.hidden=true;return t}function du(e,r){if(!e)return;var t=[.7,.7,.75,.75,.3,.3];if(r=="xlml")t=[1,1,1,1,.5,.5];if(e.left==null)e.left=t[0];if(e.right==null)e.right=t[1];if(e.top==null)e.top=t[2];if(e.bottom==null)e.bottom=t[3];if(e.header==null)e.header=t[4];if(e.footer==null)e.footer=t[5]}function vu(e,r,t){var a=t.revssf[r.z!=null?r.z:"General"];var n=60,i=e.length;if(a==null&&t.ssf){for(;n<392;++n)if(t.ssf[n]==null){E.load(r.z,n);t.ssf[n]=r.z;t.revssf[r.z]=a=n;break}}for(n=0;n!=i;++n)if(e[n].numFmtId===a)return n;e[i]={numFmtId:a,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return i}function pu(e,r,t,a,n,i){if(e.t==="z")return;if(e.t==="d"&&typeof e.v==="string")e.v=H(e.v);try{if(a.cellNF)e.z=E._table[r]}catch(s){if(a.WTF)throw s}if(!a||a.cellText!==false)try{if(e.t==="e")e.w=e.w||Rt[e.v];else if(r===0){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else if(e.t==="d"){var o=P(e.v);if((o|0)===o)e.w=E._general_int(o);else e.w=E._general_num(o)}else if(e.v===undefined)return"";else e.w=E._general(e.v,cu)}else if(e.t==="d")e.w=E.format(r,P(e.v),cu);else e.w=E.format(r,e.v,cu)}catch(s){if(a.WTF)throw s}if(!a.cellStyles)return;if(t!=null)try{e.s=i.Fills[t];if(e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb){e.s.fgColor.rgb=po(n.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0);if(a.WTF)e.s.fgColor.raw_rgb=n.themeElements.clrScheme[e.s.fgColor.theme].rgb}if(e.s.bgColor&&e.s.bgColor.theme){e.s.bgColor.rgb=po(n.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0);if(a.WTF)e.s.bgColor.raw_rgb=n.themeElements.clrScheme[e.s.bgColor.theme].rgb}}catch(s){if(a.WTF&&i.Fills)throw s}}function bu(e,r){var t=qr(r);if(t.s.r<=t.e.r&&t.s.c<=t.e.c&&t.s.r>=0&&t.s.c>=0)e["!ref"]=Jr(t)}var mu=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g;var gu=/<(?:\w+:)?sheetData>([\s\S]*)<\/(?:\w+:)?sheetData>/;var Eu=/<(?:\w:)?hyperlink [^>]*>/gm;var ku=/"(\w*:\w*)"/;var Su=/<(?:\w:)?col[^>]*[\/]?>/g;var wu=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g;var Bu=/<(?:\w:)?pageMargins[^>]*\/>/g;function Cu(e,r,t,a,n,i){if(!e)return e;if(c!=null&&r.dense==null)r.dense=c;var s=r.dense?[]:{};var o={s:{r:2e6,c:2e6},e:{r:0,c:0}};var l="",f="";var u=e.match(gu);if(u){l=e.substr(0,u.index);f=e.substr(u.index+u[0].length)}else l=f=e;var h=(l.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(h>0){var d=l.substr(h,50).match(ku);if(d)bu(s,d[1])}var v=[];if(r.cellStyles){var p=l.match(Su);if(p)yu(v,p)}if(u)Nu(u[1],s,r,o,n,i);var b=f.match(wu);if(b)s["!autofilter"]=Du(b[0]);var m=[];var g=f.match(mu);if(g)for(h=0;h!=g.length;++h)m[h]=qr(g[h].substr(g[h].indexOf('"')+1));var E=f.match(Eu);if(E)xu(s,E,t);var k=f.match(Bu);if(k)s["!margins"]=Iu(ue(k[0]));if(!s["!ref"]&&o.e.c>=o.s.c&&o.e.r>=o.s.r)s["!ref"]=Jr(o);if(r.sheetRows>0&&s["!ref"]){var S=qr(s["!ref"]);if(r.sheetRows<+S.e.r){S.e.r=r.sheetRows-1;if(S.e.r>o.e.r)S.e.r=o.e.r;if(S.e.ro.e.c)S.e.c=o.e.c;if(S.e.c0)s["!cols"]=v;if(m.length>0)s["!merges"]=m; -return s}function _u(e){if(e.length==0)return"";var r='';for(var t=0;t!=e.length;++t)r+='';return r+""}function Tu(e){var r={sheet:1};var t=["objects","scenarios","selectLockedCells","selectUnlockedCells"];var a=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];t.forEach(function(t){if(e[t]!=null&&e[t])r[t]="1"});a.forEach(function(t){if(e[t]!=null&&!e[t])r[t]="0"});if(e.password)r.password=to(e.password).toString(16).toUpperCase();return Ue("sheetProtection",null,r)}function xu(e,r,t){var a=Array.isArray(e);for(var n=0;n!=r.length;++n){var i=ue(_e(r[n]),true);if(!i.ref)return;var s=t?t["!id"][i.id]:null;if(s){i.Target=s.Target;if(i.location)i.Target+="#"+i.location;i.Rel=s}else{i.Target=i.location;s={Target:i.location,TargetMode:"Internal"};i.Rel=s}if(i.tooltip){i.Tooltip=i.tooltip;delete i.tooltip}var o=qr(i.ref);for(var l=o.s.r;l<=o.e.r;++l)for(var f=o.s.c;f<=o.e.c;++f){var c=Yr({c:f,r:l});if(a){if(!e[l])e[l]=[];if(!e[l][f])e[l][f]={t:"z",v:undefined};e[l][f].l=i}else{if(!e[c])e[c]={t:"z",v:undefined};e[c].l=i}}}}function Iu(e){var r={};["left","right","top","bottom","header","footer"].forEach(function(t){if(e[t])r[t]=parseFloat(e[t])});return r}function Au(e){du(e);return Ue("pageMargins",null,e)}function yu(e,r){var t=false;for(var a=0;a!=r.length;++a){var n=ue(r[a],true);if(n.hidden)n.hidden=Ce(n.hidden);var i=parseInt(n.min,10)-1,s=parseInt(n.max,10)-1;delete n.min;delete n.max;n.width=+n.width;if(!t&&n.width){t=true;To(n.width)}Io(n);while(i<=s)e[i++]=V(n)}}function Ru(e,r){var t=[""],a,n;for(var i=0;i!=r.length;++i){if(!(a=r[i]))continue;t[t.length]=Ue("col",null,hu(i,a))}t[t.length]="";return t.join("")}function Du(e){var r={ref:(e.match(/ref="([^"]*)"/)||[])[1]};return r}function Ou(e){return Ue("autoFilter",null,{ref:e.ref})}function Fu(e,r,t,a){return Ue("sheetViews",Ue("sheetView",null,{workbookViewId:"0"}),{})}function Pu(e,r,t,a,n,i){if(e.v===undefined&&e.f===undefined||e.t==="z")return"";var s="";var o=e.t,l=e.v;switch(e.t){case"b":s=e.v?"1":"0";break;case"n":s=""+e.v;break;case"e":s=Rt[e.v];break;case"d":if(a.cellDates)s=H(e.v,-1).toISOString();else{e.t="n";s=""+(e.v=P(H(e.v)))}if(typeof e.z==="undefined")e.z=E._table[14];break;default:s=e.v;break;}var f=Le("v",ge(s)),c={r:r};var u=vu(a.cellXfs,e,a);if(u!==0)c.s=u;switch(e.t){case"n":break;case"d":c.t="d";break;case"b":c.t="b";break;case"e":c.t="e";break;default:if(e.v==null){delete e.t;break}if(a.bookSST){f=Le("v",""+uu(a.Strings,e.v));c.t="s";break}c.t="str";break;}if(e.t!=o){e.t=o;e.v=l}if(e.f){var h=e.F&&e.F.substr(0,r.length)==r?{t:"array",ref:e.F}:null;f=Ue("f",ge(e.f),h)+(e.v!=null?f:"")}if(e.l)t["!links"].push([r,e.l]);if(e.c)t["!comments"].push([r,e.c]);return Ue("c",f,c)}var Nu=function Jp(){var e=/<(?:\w+:)?c[ >]/,r=/<\/(?:\w+:)?row>/;var t=/r=["']([^"']*)["']/,a=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/;var n=/ref=["']([^"']*)["']/;var i=ye("v"),s=ye("f");return function o(l,f,c,u,h,d){var v=0,p="",b=[],m=[],g=0,k=0,S=0,w="",B;var C,_=0,T=0;var x,I;var A=0,y=0;var R=Array.isArray(d.CellXf),D;var O=[];var F=[];var L=Array.isArray(f);var M=[],U={},W=false;for(var z=l.split(r),V=0,X=z.length;V!=X;++V){p=z[V].trim();var G=p.length;if(G===0)continue;for(v=0;v_-1)u.s.r=_-1;if(u.e.r<_-1)u.e.r=_-1;if(c&&c.cellStyles){U={};W=false;if(C.ht){W=true;U.hpt=parseFloat(C.ht);U.hpx=Do(U.hpt)}if(C.hidden=="1"){W=true;U.hidden=true}if(C.outlineLevel!=null){W=true;U.level=+C.outlineLevel}if(W)M[_-1]=U}b=p.substr(v).split(e);for(v=0;v!=b.length;++v){p=b[v].trim();if(p.length===0)continue;m=p.match(t);g=v;k=0;S=0;p="":"")+p;if(m!=null&&m.length===2){g=0;w=m[1];for(k=0;k!=w.length;++k){if((S=w.charCodeAt(k)-64)<1||S>26)break;g=26*g+S}--g;T=g}else++T;for(k=0;k!=p.length;++k)if(p.charCodeAt(k)===62)break;++k;C=ue(p.substr(0,k),true);if(!C.r)C.r=Yr({r:_-1,c:T});w=p.substr(k);B={t:""};if((m=w.match(i))!=null&&m[1]!=="")B.v=pe(m[1]);if(c.cellFormula){if((m=w.match(s))!=null&&m[1]!==""){B.f=pe(_e(m[1])).replace(/_xlfn\./,"");if(m[0].indexOf('t="array"')>-1){B.F=(w.match(n)||[])[1];if(B.F.indexOf(":")>-1)O.push([qr(B.F),B.F])}else if(m[0].indexOf('t="shared"')>-1){I=ue(m[0]);F[parseInt(I.si,10)]=[I,pe(_e(m[1]))]}}else if(m=w.match(/]*\/>/)){I=ue(m[0]);if(F[I.si])B.f=df(F[I.si][1],F[I.si][0].ref,C.r)}var j=Kr(C.r);for(k=0;k=O[k][0].s.r&&j.r<=O[k][0].e.r)if(j.c>=O[k][0].s.c&&j.c<=O[k][0].e.c)B.F=O[k][1]}if(C.t==null&&B.v===undefined){if(B.f||B.F){B.v=0;B.t="n"}else if(!c.sheetStubs)continue;else B.t="z"}else B.t=C.t||"n";if(u.s.c>g)u.s.c=g;if(u.e.c0)f["!rows"]=M}}();function Lu(e,r,t,a,n){var i=[],s=[],o=qr(e["!ref"]),l,f,c="",u=[],h=0,d=0,v=e["!rows"];var p=Array.isArray(e);for(d=o.s.c;d<=o.e.c;++d)u[d]=Vr(d);for(h=o.s.r;h<=o.e.r;++h){s=[];c=Ur(h);for(d=o.s.c;d<=o.e.c;++d){f=u[d]+c;var b=p?(e[h]||[])[d]:e[f];if(b===undefined)continue;if((l=Pu(b,f,e,r,t,a))!=null)s.push(l)}if(s.length>0||v&&v[h]){var m={r:c};if(v&&v[h]){var g=v[h];if(g.hidden)m.hidden=1;var E=-1;if(g.hpx)E=Ro(g.hpx);else if(g.hpt)E=g.hpt;if(E>-1){m.ht=E;m.customHeight=1}if(g.level){m.outlineLevel=g.level}}i[i.length]=Ue("row",s.join(""),m)}}if(v)for(;h-1){m.ht=E;m.customHeight=1}if(g.level){m.outlineLevel=g.level}i[i.length]=Ue("row","",m)}}return i.join("")}var Mu=Ue("worksheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function Uu(e,r,t,a){var n=[se,Mu];var i=t.SheetNames[e],s=0,o="";var l=t.Sheets[i];if(l==null)l={};var f=l["!ref"];if(f==null)f="A1";if(!a)a={};l["!comments"]=[];l["!drawing"]=[];n[n.length]=Ue("sheetPr",null,{codeName:ge(t.SheetNames[e])});n[n.length]=Ue("dimension",null,{ref:f});n[n.length]=Fu(l,r,e,t);if(r.sheetFormat)n[n.length]=Ue("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"});if(l["!cols"]!=null&&l["!cols"].length>0)n[n.length]=Ru(l,l["!cols"]);n[s=n.length]="";l["!links"]=[];if(l["!ref"]!=null){o=Lu(l,r,e,t,a);if(o.length>0)n[n.length]=o}if(n.length>s+1){n[n.length]="";n[s]=n[s].replace("/>",">")}if(l["!protect"]!=null)n[n.length]=Tu(l["!protect"]);if(l["!autofilter"]!=null)n[n.length]=Ou(l["!autofilter"]);if(l["!merges"]!=null&&l["!merges"].length>0)n[n.length]=_u(l["!merges"]);var c=-1,u,h=-1;if(l["!links"].length>0){n[n.length]="";l["!links"].forEach(function(e){if(!e[1].Target)return;h=ba(a,-1,ge(e[1].Target).replace(/#.*$/,""),ua.HLINK);u={ref:e[0],"r:id":"rId"+h};if((c=e[1].Target.indexOf("#"))>-1)u.location=ge(e[1].Target.substr(c+1));if(e[1].Tooltip)u.tooltip=ge(e[1].Tooltip);n[n.length]=Ue("hyperlink",null,u)});n[n.length]=""}delete l["!links"];if(l["!margins"]!=null)n[n.length]=Au(l["!margins"]);var d=n.length;n[n.length]="";if(l["!drawing"].length>0){h=ba(a,-1,"../drawings/drawing"+(e+1)+".xml",ua.DRAW);n[n.length]=Ue("drawing",null,{"r:id":"rId"+h})}else delete l["!drawing"];if(l["!comments"].length>0){h=ba(a,-1,"../drawings/vmlDrawing"+(e+1)+".vml",ua.VML);n[n.length]=Ue("legacyDrawing",null,{"r:id":"rId"+h});l["!legacy"]=h}if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function Hu(e,r){var t={};var a=e.l+r;t.r=e._R(4);e.l+=4;var n=e._R(2);e.l+=1;var i=e._R(1);e.l=a;if(i&7)t.level=i&7;if(i&16)t.hidden=true;if(i&32)t.hpt=n/20;return t}function Wu(e,r,t){var a=Ir(17+8*16);var n=(t["!rows"]||[])[e]||{};a._W(4,e);a._W(4,0);var i=320;if(n.hpx)i=Ro(n.hpx)*20;else if(n.hpt)i=n.hpt*20;a._W(2,i);a._W(1,0);var s=0;if(n.level)s|=n.level;if(n.hidden)s|=16;if(n.hpx||n.hpt)s|=32;a._W(1,s);a._W(1,0);var o=0,l=a.l;a.l+=4;var f={r:e,c:0};for(var c=0;c<16;++c){if(r.s.c>c+1<<10||r.e.ca.l?a.slice(0,a.l):a}function zu(e,r,t,a){var n=Wu(a,t,r);if(n.length>17||(r["!rows"]||[])[a])Rr(e,"BrtRowHdr",n)}var Vu=xt;var Xu=It;function Gu(e,r){}function ju(e,r){var t={};e.l+=19;t.name=pt(e,r-19);return t}function Ku(e,r){if(r==null)r=Ir(84+4*e.length);for(var t=0;t<3;++t)r._W(1,0);Ft({auto:1},r);r._W(-4,-1);r._W(-4,-1);bt(e,r);return r.slice(0,r.l)}function Yu(e,r){var t=dt(e);return[t]}function $u(e,r,t){if(t==null)t=Ir(8);return vt(r,t)}function Zu(e,r){var t=dt(e);var a=e._R(1);return[t,a,"b"]}function Qu(e,r,t){if(t==null)t=Ir(9);vt(r,t);t._W(1,e.v?1:0);return t}function Ju(e,r){var t=dt(e);var a=e._R(1);return[t,a,"e"]}function qu(e,r){var t=dt(e);var a=e._R(4);return[t,a,"s"]}function eh(e,r,t){if(t==null)t=Ir(12);vt(r,t);t._W(4,r.v);return t}function rh(e,r){var t=dt(e);var a=At(e);return[t,a,"n"]}function th(e,r,t){if(t==null)t=Ir(16);vt(r,t);yt(e.v,t);return t}function ah(e,r){var t=dt(e);var a=Bt(e);return[t,a,"n"]}function nh(e,r,t){if(t==null)t=Ir(12);vt(r,t);Ct(e.v,t);return t}function ih(e,r){var t=dt(e);var a=it(e);return[t,a,"str"]}function sh(e,r,t){if(t==null)t=Ir(12+4*e.v.length);vt(r,t);st(e.v,t);return t.length>t.l?t.slice(0,t.l):t}function oh(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var o=Jc(e,a-e.l,t);s[3]=$c(o,null,n,t.supbooks,t)}else e.l=a;return s}function lh(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var o=Jc(e,a-e.l,t);s[3]=$c(o,null,n,t.supbooks,t)}else e.l=a;return s}function fh(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=At(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var o=Jc(e,a-e.l,t);s[3]=$c(o,null,n,t.supbooks,t)}else e.l=a;return s}function ch(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=it(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var o=Jc(e,a-e.l,t);s[3]=$c(o,null,n,t.supbooks,t)}else e.l=a;return s}var uh=xt;var hh=It;function dh(e,r){if(r==null)r=Ir(4);r._W(4,e);return r}function vh(e,r,t){var a=e.l+r;var n=xt(e,16);var i=mt(e);var s=it(e);var o=it(e);var l=it(e);e.l=a;return{rfx:n,relId:i,loc:s,Tooltip:o,display:l}}function ph(e,r,t){if(t==null)t=Ir(50+4*e[1].Target.length);It({s:Kr(e[0]),e:Kr(e[0])},t);wt("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.substr(a+1);st(n||"",t);st(e[1].Tooltip||"",t);st("",t);return t.slice(0,t.l)}function bh(e,r,t){var a=e.l+r;var n=_t(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var o=Qc(e,a-e.l,t);s[1]=o}else e.l=a;return s}function mh(e,r,t){var a=e.l+r;var n=xt(e,16);var i=[n];if(t.cellFormula){var s=eu(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function gh(e,r,t){if(t==null)t=Ir(18);var a=hu(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;t._W(1,n);t._W(1,0);return t}function Eh(e,r,t){return{left:At(e,8),right:At(e,8),top:At(e,8),bottom:At(e,8),header:At(e,8),footer:At(e,8)}}function kh(e,r){if(r==null)r=Ir(6*8);du(e);yt(e.left,r);yt(e.right,r);yt(e.top,r);yt(e.bottom,r);yt(e.header,r);yt(e.footer,r);return r}function Sh(e,r){if(r==null)r=Ir(30);r._W(2,924);r._W(4,0);r._W(4,0);r._W(4,0);r._W(1,0);r._W(1,0);r._W(2,0);r._W(2,100);r._W(2,0);r._W(2,0);r._W(2,0);r._W(4,0);return r}function wh(e,r){if(r==null)r=Ir(16*4+2);r._W(2,e.password?to(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function Bh(e,r,t,a,n,i){if(!e)return e;var s=r||{};if(!t)t={"!id":{}};if(c!=null&&s.dense==null)s.dense=c;var o=s.dense?[]:{};var l;var f={s:{r:2e6,c:2e6},e:{r:0,c:0}};var u=false,h=false;var d,v,p,b,m,g,k,S,w;var B=[];s.biff=12;s["!row"]=0;var C=0,_=false;var T=[];var x={};var I=[[]];I.sharedf=x;I.arrayf=T;I.SheetNames=a.SheetNames||a.Sheets.map(function(e){return e.name});s.supbooks=I;for(var A=0;A=c[0].s.r&&d.r<=c[0].e.r)if(m>=c[0].s.c&&m<=c[0].e.c){v.F=Jr(c[0]);_=true}}if(!_&&e.length>3)v.f=e[3]}if(f.s.r>d.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.rd.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.r=e.s){y[e.e--]={width:e.w/256,hidden:!!(e.flags&1)};if(!F){F=true;To(e.w/256)}Io(y[e.e+1])}break;case 161:o["!autofilter"]={ref:Jr(e)};break;case 476:o["!margins"]=e;break;case 485:;case 175:;case 644:;case 625:;case 562:;case 396:;case 1112:;case 1146:;case 471:;case 1050:;case 649:;case 1105:;case 49:;case 589:;case 607:;case 564:;case 1055:;case 168:;case 174:;case 1180:;case 499:;case 64:;case 1053:;case 550:;case 171:;case 167:;case 1177:;case 169:;case 1181:;case 551:;case 552:;case 661:;case 639:;case 478:;case 151:;case 537:;case 477:;case 536:;case 1103:;case 680:;case 1104:;case 1024:;case 152:;case 663:;case 535:;case 678:;case 504:;case 1043:;case 428:;case 170:;case 50:;case 2070:;case 1045:;case 147:break;case 35:u=true;break;case 36:u=false;break;case 37:break;case 38:break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!u||s.WTF)throw new Error("Unexpected record "+a+" "+r);}},s);delete s.supbooks;delete s["!row"];if(!o["!ref"]&&(f.s.r<2e6||l&&(l.e.r>0||l.e.c>0||l.s.r>0||l.s.c>0)))o["!ref"]=Jr(l||f);if(s.sheetRows&&o["!ref"]){var P=qr(o["!ref"]);if(s.sheetRows<+P.e.r){P.e.r=s.sheetRows-1;if(P.e.r>f.e.r)P.e.r=f.e.r;if(P.e.rf.e.c)P.e.c=f.e.c;if(P.e.c0)o["!merges"]=B;if(y.length>0)o["!cols"]=y;if(R.length>0)o["!rows"]=R;return o}function Ch(e,r,t,a,n,i){if(r.v===undefined)return"";var s="";var o=null;switch(r.t){case"b":s=r.v?"1":"0";break;case"d":r.z=r.z||E._table[14];o=r.v;r.v=P(r.v);r.t="n";break;case"n":;case"e":s=""+r.v;break;default:s=r.v;break;}var l={r:t,c:a};l.s=vu(n.cellXfs,r,n);if(r.l)i["!links"].push([Yr(l),r.l]);if(r.c)i["!comments"].push([Yr(l),r.c]);switch(r.t){case"s":;case"str":if(n.bookSST){s=uu(n.Strings,r.v);l.t="s";l.v=s;Rr(e,"BrtCellIsst",eh(r,l))}else{l.t="str";Rr(e,"BrtCellSt",sh(r,l))}return;case"n":if(r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3)Rr(e,"BrtCellRk",nh(r,l));else Rr(e,"BrtCellReal",th(r,l));if(o){r.t="d";r.v=o}return;case"b":l.t="b";Rr(e,"BrtCellBool",Qu(r,l));return;case"e":l.t="e";break;}Rr(e,"BrtCellBlank",$u(r,l))}function _h(e,r,t,a,n){var i=qr(r["!ref"]||"A1"),s,o="",l=[];Rr(e,"BrtBeginSheetData");var f=Array.isArray(r);var c=i.e.r;if(r["!rows"])c=Math.max(i.e.r,r["!rows"].length-1);for(var u=i.s.r;u<=c;++u){o=Ur(u);zu(e,r,i,u);if(u<=i.e.r)for(var h=i.s.c;h<=i.e.c;++h){if(u===i.s.r)l[h]=Vr(h);s=l[h]+o;var d=f?(r[u]||[])[h]:r[s];if(!d)continue;Ch(e,d,u,h,a,r)}}Rr(e,"BrtEndSheetData")}function Th(e,r){if(!r||!r["!merges"])return;Rr(e,"BrtBeginMergeCells",dh(r["!merges"].length));r["!merges"].forEach(function(r){Rr(e,"BrtMergeCell",hh(r))});Rr(e,"BrtEndMergeCells")}function xh(e,r,t,a,n){if(!r||!r["!cols"])return;Rr(e,"BrtBeginColInfos");r["!cols"].forEach(function(r,t){if(r)Rr(e,"BrtColInfo",gh(t,r))});Rr(e,"BrtEndColInfos")}function Ih(e,r,t){r["!links"].forEach(function(r){if(!r[1].Target)return;var a=ba(t,-1,r[1].Target.replace(/#.*$/,""),ua.HLINK);Rr(e,"BrtHLink",ph(r,a))});delete r["!links"]}function Ah(e,r,t,a){if(r["!comments"].length>0){var n=ba(a,-1,"../drawings/vmlDrawing"+(t+1)+".vml",ua.VML);Rr(e,"BrtLegacyDrawing",wt("rId"+n));r["!legacy"]=n}}function yh(e,r){if(!r["!autofilter"])return;Rr(e,"BrtBeginAFilter",It(Qr(r["!autofilter"].ref)));Rr(e,"BrtEndAFilter")}function Rh(e,r){Rr(e,"BrtBeginWsViews");{Rr(e,"BrtBeginWsView",Sh(r));Rr(e,"BrtEndWsView")}Rr(e,"BrtEndWsViews")}function Dh(e,r){}function Oh(e,r){if(!r["!protect"])return;Rr(e,"BrtSheetProtection",wh(r["!protect"]))}function Fh(e,r,t,a){var n=yr();var i=t.SheetNames[e],s=t.Sheets[i]||{};var o=qr(s["!ref"]||"A1");s["!links"]=[];s["!comments"]=[];Rr(n,"BrtBeginSheet");Rr(n,"BrtWsProp",Ku(i));Rr(n,"BrtWsDim",Xu(o));Rh(n,s);Dh(n,s);xh(n,s,e,r,t);_h(n,s,e,r,t);Oh(n,s);yh(n,s);Th(n,s);Ih(n,s,a);if(s["!margins"])Rr(n,"BrtMargins",kh(s["!margins"]));Ah(n,s,e,a);Rr(n,"BrtEndSheet");return n.end()}function Ph(e){var r=[];(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach(function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);if(!t)return;r[+t[1]]=+t[2]});var t=pe((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return[r,t]}function Nh(e,r,t,a,n,i){var s=i||{"!type":"chart"};if(!e)return i;var o=0,l=0,f="A";var c={s:{r:2e6,c:2e6},e:{r:0,c:0}};(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(e){var r=Ph(e);c.s.r=c.s.c=0;c.e.c=o;f=Vr(o);r[0].forEach(function(e,t){s[f+Ur(t)]={t:"n",v:e,z:r[1]};l=t});if(c.e.r0)s["!ref"]=Jr(c);return s}ua.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";var Lh=Ue("chartsheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function Mh(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var o;if(o=e.match(/drawing r:id="(.*?)"/))s["!rel"]=o[1];if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function Uh(e,r,t,a){var n=[se,Lh];n[n.length]=Ue("drawing",null,{"r:id":"rId1"});ba(a,-1,"../drawings/drawing"+(e+1)+".xml",ua.DRAW);if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function Hh(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var o=[];var l=false;Ar(e,function f(e,t,a){switch(a){case 550:s["!rel"]=e;break;case 562:;case 652:;case 651:;case 669:;case 679:;case 551:;case 552:;case 476:break;case 35:l=true;break;case 36:l=false;break;case 37:o.push(t);break;case 38:o.pop();break;default:if((t||"").indexOf("Begin")>0)o.push(t);else if((t||"").indexOf("End")>0)o.pop();else if(!l||r.WTF)throw new Error("Unexpected record "+a+" "+t);}},r);if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function Wh(e,r,t,a){var n=yr();Rr(n,"BrtBeginSheet");Rr(n,"BrtEndSheet");return n.end()}var zh=[["allowRefreshQuery",false,"bool"],["autoCompressPictures",true,"bool"],["backupFile",false,"bool"],["checkCompatibility",false,"bool"],["codeName",""],["date1904",false,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",false,"bool"],["hidePivotFieldList",false,"bool"],["promptedSolutions",false,"bool"],["publishItems",false,"bool"],["refreshAllConnections",false,"bool"],["saveExternalLinkValues",true,"bool"],["showBorderUnselectedTables",true,"bool"],["showInkAnnotation",true,"bool"],["showObjects","all"],["showPivotChartFilter",false,"bool"],["updateLinks","userSet"]];var Vh=[["activeTab",0,"int"],["autoFilterDateGrouping",true,"bool"],["firstSheet",0,"int"],["minimized",false,"bool"],["showHorizontalScroll",true,"bool"],["showSheetTabs",true,"bool"],["showVerticalScroll",true,"bool"],["tabRatio",600,"int"],["visibility","visible"]];var Xh=[];var Gh=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var jh=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function Kh(e,r){for(var t=0;t!=e.length;++t){var a=e[t];for(var n=0;n!=r.length;++n){var i=r[n];if(a[i[0]]==null)a[i[0]]=i[1];else switch(i[2]){case"bool":if(typeof a[i[0]]=="string")a[i[0]]=Ce(a[i[0]],i[0]);break;case"int":if(typeof a[i[0]]=="string")a[i[0]]=parseInt(a[i[0]],10);break;}}}}function Yh(e,r){for(var t=0;t!=r.length;++t){var a=r[t];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case"bool":if(typeof e[a[0]]=="string")e[a[0]]=Ce(e[a[0]],a[0]);break;case"int":if(typeof e[a[0]]=="string")e[a[0]]=parseInt(e[a[0]],10);break;}}}function $h(e){Yh(e.WBProps,zh);Yh(e.CalcPr,Gh);Kh(e.WBView,Vh);Kh(e.Sheets,Xh);cu.date1904=Ce(e.WBProps.date1904,"date1904")}function Zh(e){if(!e.Workbook)return"false";if(!e.Workbook.WBProps)return"false";return Ce(e.Workbook.WBProps.date1904)?"true":"false"}var Qh="][*?/\\".split("");function Jh(e,r){if(e.length>31){if(r)return false;throw new Error("Sheet names cannot exceed 31 chars")}var t=true;Qh.forEach(function(a){if(e.indexOf(a)==-1)return;if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=false});return t}function qh(e){e.forEach(function(r,t){Jh(r);for(var a=0;a":break;case"":;case"":break;case"":break;case"":zh.forEach(function(e){if(c[e[0]]==null)return;switch(e[2]){case"bool":t.WBProps[e[0]]=Ce(c[e[0]],e[0]);break;case"int":t.WBProps[e[0]]=parseInt(c[e[0]],10);break;default:t.WBProps[e[0]]=c[e[0]];}});break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":a=false;break;case"":{i.Ref=e.slice(s,f);t.Names.push(i)}break;case"":break;case"":delete c[0];t.CalcPr=c;break;case"":break;case"":;case"":;case"":break;case"":;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":;case"":;case"":break;case"":a=false;break;case"":a=false;break;case"0;var n={codeName:"ThisWorkbook"};if(e.Workbook&&e.Workbook.WBProps){if(e.Workbook.WBProps.codeName)n.codeName=e.Workbook.WBProps.codeName;zh.forEach(function(r){if(e.Workbook.WBProps[r[0]]==null)return;if(e.Workbook.WBProps[r[0]]==r[1])return;n[r[0]]=e.Workbook.WBProps[r[0]]})}t[t.length]=Ue("workbookPr",null,n);t[t.length]="";var i=e.Workbook&&e.Workbook.Sheets||[];for(var s=0;s!=e.SheetNames.length;++s){var o={name:ge(e.SheetNames[s].substr(0,31))};o.sheetId=""+(s+1);o["r:id"]="rId"+(s+1);if(i[s])switch(i[s].Hidden){case 1:o.state="hidden";break;case 2:o.state="veryHidden";break;}t[t.length]=Ue("sheet",null,o)}t[t.length]="";if(a){t[t.length]="";if(e.Workbook&&e.Workbook.Names)e.Workbook.Names.forEach(function(e){var r={name:e.Name};if(e.Comment)r.comment=e.Comment;if(e.Sheet!=null)r.localSheetId=""+e.Sheet;if(!e.Ref)return;t[t.length]=Ue("definedName",String(e.Ref),r)});t[t.length]=""}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function id(e,r){var t={};t.Hidden=e._R(4);t.iTabID=e._R(4);t.strRelID=St(e,r-8);t.name=it(e);return t}function sd(e,r){if(!r)r=Ir(127);r._W(4,e.Hidden);r._W(4,e.iTabID);wt(e.strRelID,r);st(e.name.substr(0,31),r);return r.length>r.l?r.slice(0,r.l):r}function od(e,r){var t={};var a=e._R(4);t.defaultThemeVersion=e._R(4);var n=r>8?it(e):"";if(n.length>0)t.codeName=n;t.autoCompressPictures=!!(a&65536);t.backupFile=!!(a&64);t.checkCompatibility=!!(a&4096);t.date1904=!!(a&1);t.filterPrivacy=!!(a&8);t.hidePivotFieldList=!!(a&1024);t.promptedSolutions=!!(a&16);t.publishItems=!!(a&2048);t.refreshAllConnections=!!(a&262144);t.saveExternalLinkValues=!!(a&128);t.showBorderUnselectedTables=!!(a&4);t.showInkAnnotation=!!(a&32);t.showObjects=["all","placeholders","none"][a>>13&3];t.showPivotChartFilter=!!(a&32768);t.updateLinks=["userSet","never","always"][a>>8&3];return t}function ld(e,r){if(!r)r=Ir(72);var t=0;if(e){if(e.filterPrivacy)t|=8}r._W(4,t);r._W(4,0);bt("ThisWorkbook",r);return r.slice(0,r.l)}function fd(e,r){var t={};e._R(4);t.ArchID=e._R(4);e.l+=r-8;return t}function cd(e,r,t){var a=e.l+r;var n=e._R(4);var i=e._R(1);var s=e._R(4);var o=Et(e);var l=qc(e,0,t);var f=mt(e);e.l=a;var c={Name:o,Ptg:l,Comment:f};if(s<268435455)c.Sheet=s;return c}function ud(e,r){var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var a=false,n;if(!r)r={};r.biff=12;var i=[];var s=[];s.SheetNames=[];Ar(e,function o(e,n,l){switch(l){case 156:s.SheetNames.push(e.name);t.Sheets.push(e);break;case 153:t.WBProps=e;break;case 39:e.Ref=$c(e.Ptg,null,null,s,r);delete e.Ptg;i.push(e);break;case 1036:break;case 357:;case 358:;case 355:;case 667:;case 362:;case 361:break;case 2071:;case 534:;case 677:;case 158:;case 157:;case 610:;case 2050:;case 155:;case 548:;case 676:;case 128:;case 665:;case 2128:;case 2125:;case 549:;case 2053:;case 596:;case 2076:;case 2075:;case 2082:;case 397:;case 154:;case 1117:;case 553:;case 2091:break;case 35:a=true;break;case 36:a=false;break;case 37:break;case 38:break;case 16:break;default:if((n||"").indexOf("Begin")>0){}else if((n||"").indexOf("End")>0){}else if(!a||r.WTF)throw new Error("Unexpected record "+l+" "+n);}},r);$h(t);t.Names=i;return t}function hd(e,r,t){Rr(e,"BrtBeginBundleShs");for(var a=0;a!=r.SheetNames.length;++a){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[a]&&r.Workbook.Sheets[a].Hidden||0;var i={Hidden:n,iTabID:a+1,strRelID:"rId"+(a+1),name:r.SheetNames[a]};Rr(e,"BrtBundleSh",sd(i))}Rr(e,"BrtEndBundleShs")}function dd(e,t){if(!t)t=Ir(127);for(var a=0;a!=4;++a)t._W(4,0);st("SheetJS",t);st(r.version,t);st(r.version,t);st("7262",t);t.length=t.l;return t.length>t.l?t.slice(0,t.l):t}function vd(e,r){if(!r)r=Ir(29);r._W(-4,0);r._W(-4,460);r._W(4,28800);r._W(4,17600);r._W(4,500);r._W(4,e);r._W(4,e);var t=120;r._W(1,t);return r.length>r.l?r.slice(0,r.l):r}function pd(e,r,t){if(!r.Workbook||!r.Workbook.Sheets)return;var a=r.Workbook.Sheets;var n=0,i=-1,s=-1;for(;ni)return;Rr(e,"BrtBeginBookViews");Rr(e,"BrtBookView",vd(i));Rr(e,"BrtEndBookViews")}function bd(e,r){if(!r)r=Ir(26);r._W(4,0);r._W(4,1);r._W(4,0);yt(0,r);r._W(-4,1023);r._W(1,51); -r._W(1,0);return r}function md(e,r){if(!r)r=Ir(1);r._W(1,0);return r}function gd(e,r){var t=yr();Rr(t,"BrtBeginBook");Rr(t,"BrtFileVersion",dd());Rr(t,"BrtWbProp",ld(e.Workbook&&e.Workbook.WBProps||null));pd(t,e,r);hd(t,e,r);Rr(t,"BrtEndBook");return t.end()}function Ed(e,r,t){if(r.slice(-4)===".bin")return ud(e,t);return td(e,t)}function kd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Bh(e,t,a,n,i,s);return Cu(e,t,a,n,i,s)}function Sd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Hh(e,t,a,n,i,s);return Mh(e,t,a,n,i,s)}function wd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return of(e,t,a,n,i,s);return lf(e,t,a,n,i,s)}function Bd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return nf(e,t,a,n,i,s);return sf(e,t,a,n,i,s)}function Cd(e,r,t,a){if(r.slice(-4)===".bin")return ol(e,t,a);return Vo(e,t,a)}function _d(e,r,t){return xl(e,t)}function Td(e,r,t){if(r.slice(-4)===".bin")return Ns(e,t);return Ds(e,t)}function xd(e,r,t){if(r.slice(-4)===".bin")return tf(e,t);return $l(e,t)}function Id(e,r,t){if(r.slice(-4)===".bin")return Hl(e,r,t);return Ll(e,r,t)}function Ad(e,r,t){if(r.slice(-4)===".bin")return Vl(e,r,t);return zl(e,r,t)}function yd(e,r,t){return(r.slice(-4)===".bin"?gd:nd)(e,t)}function Rd(e,r,t,a,n){return(r.slice(-4)===".bin"?Fh:Uu)(e,t,a,n)}function Dd(e,r,t,a,n){return(r.slice(-4)===".bin"?Wh:Uh)(e,t,a,n)}function Od(e,r,t){return(r.slice(-4)===".bin"?gl:Go)(e,t)}function Fd(e,r,t){return(r.slice(-4)===".bin"?Us:Fs)(e,t)}function Pd(e,r,t){return(r.slice(-4)===".bin"?af:Ql)(e,t)}var Nd=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var Ld=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var Md=function(e){return String.fromCharCode(e)};function Ud(e,r){var t=e.split(/\s+/);var a=[];if(!r)a[0]=t[0];if(t.length===1)return a;var n=e.match(Nd),i,s,o,l;if(n)for(l=0;l!=n.length;++l){i=n[l].match(Ld);if((s=i[1].indexOf(":"))===-1)a[i[1]]=i[2].substr(1,i[2].length-2);else{if(i[1].substr(0,6)==="xmlns:")o="xmlns"+i[1].substr(6);else o=i[1].substr(s+1);a[o]=i[2].substr(1,i[2].length-2)}}return a}function Hd(e){var r=e.split(/\s+/);var t={};if(r.length===1)return t;var a=e.match(Nd),n,i,s,o;if(a)for(o=0;o!=a.length;++o){n=a[o].match(Ld);if((i=n[1].indexOf(":"))===-1)t[n[1]]=n[2].substr(1,n[2].length-2);else{if(n[1].substr(0,6)==="xmlns:")s="xmlns"+n[1].substr(6);else s=n[1].substr(i+1);t[s]=n[2].substr(1,n[2].length-2)}}return t}function Wd(e,r){var t=S[e]||pe(e);if(t==="General")return E._general(r);return E.format(t,r)}function zd(e,r,t,a){var n=a;switch((t[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":n=Ce(a);break;case"i2":;case"int":n=parseInt(a,10);break;case"r4":;case"float":n=parseFloat(a);break;case"date":;case"dateTime.tz":n=H(a);break;case"i8":;case"string":;case"fixed":;case"uuid":;case"bin.base64":break;default:throw new Error("bad custprop:"+t[0]);}e[pe(r[3])]=n}function Vd(e,r,t){if(e.t==="z")return;if(!t||t.cellText!==false)try{if(e.t==="e"){e.w=e.w||Rt[e.v]}else if(r==="General"){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else e.w=E._general(e.v)}else e.w=Wd(r||"General",e.v)}catch(a){if(t.WTF)throw a}try{var n=S[r]||r||"General";if(t.cellNF)e.z=n;if(t.cellDates&&e.t=="n"&&E.is_date(n)){var i=E.parse_date_code(e.v);if(i){e.t="d";e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u)}}}catch(a){if(t.WTF)throw a}}function Xd(e,r,t){if(t.cellStyles){if(r.Interior){var a=r.Interior;if(a.Pattern)a.patternType=Oo[a.Pattern]||a.Pattern}}e[r.ID]=r}function Gd(e,r,t,a,n,i,s,o,l,f){var c="General",u=a.StyleID,h={};f=f||{};var d=[];var v=0;if(u===undefined&&o)u=o.StyleID;if(u===undefined&&s)u=s.StyleID;while(i[u]!==undefined){if(i[u].nf)c=i[u].nf;if(i[u].Interior)d.push(i[u].Interior);if(!i[u].Parent)break;u=i[u].Parent}switch(t.Type){case"Boolean":a.t="b";a.v=Ce(e);break;case"String":a.t="s";a.r=we(pe(e));a.v=e.indexOf("<")>-1?pe(r):a.r;break;case"DateTime":if(e.slice(-1)!="Z")e+="Z";a.v=(H(e)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(a.v!==a.v)a.v=pe(e);else if(a.v<60)a.v=a.v-1;if(!c||c=="General")c="yyyy-mm-dd";case"Number":if(a.v===undefined)a.v=+e;if(!a.t)a.t="n";break;case"Error":a.t="e";a.v=Dt[e];if(f.cellText!==false)a.w=e;break;default:a.t="s";a.v=we(r||e);break;}Vd(a,c,f);if(f.cellFormula!==false){if(a.Formula){var p=pe(a.Formula);if(p.charCodeAt(0)==61)p=p.substr(1);a.f=ff(p,n);delete a.Formula;if(a.ArrayRange=="RC")a.F=ff("RC:RC",n);else if(a.ArrayRange){a.F=ff(a.ArrayRange,n);l.push([qr(a.F),a.F])}}else{for(v=0;v=l[v][0].s.r&&n.r<=l[v][0].e.r)if(n.c>=l[v][0].s.c&&n.c<=l[v][0].e.c)a.F=l[v][1]}}if(f.cellStyles){d.forEach(function(e){if(!h.patternType&&e.patternType)h.patternType=e.patternType});a.s=h}a.ixfe=a.StyleID!==undefined?a.StyleID:"Default"}function jd(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function Kd(e){if(d&&Buffer.isBuffer(e))return e.toString("utf8");if(typeof e==="string")return e;throw new Error("Bad input format: expected Buffer or string")}var Yd=/<(\/?)([^\s?>!\/:]*:|)([^\s?>]*[^\s?>\/])[^>]*>/gm;function $d(e,r){var t=r||{};k(E);var a=l(Kd(e));if(t.type=="binary"||t.type=="base64"){if(typeof cptable!=="undefined")a=cptable.utils.decode(65001,i(a));else a=_e(a)}var n=a.slice(0,1024).toLowerCase(),s=false;if(n.indexOf("=0)s=true});if(s)return Dv.to_workbook(a,t);var o;var f=[],u;if(c!=null&&t.dense==null)t.dense=c;var h={},d=[],v=t.dense?[]:{},p="";var b={},m={},g={};var w=Ud(''),B=0;var C=0,_=0;var T={s:{r:2e6,c:2e6},e:{r:0,c:0}};var x={},I={};var A="",y=0;var R=[];var D={},O={},F=0,P={};var N=[],L={};var M=[],U,H=false;var W=[];var z=[],X={};var G={Sheets:[],WBProps:{date1904:false}},j={};Yd.lastIndex=0;a=a.replace(//gm,"");while(o=Yd.exec(a))switch(o[3]){case"Data":if(f[f.length-1][1])break;if(o[1]==="/")Gd(a.slice(B,o.index),A,w,f[f.length-1][0]=="Comment"?L:m,{c:C,r:_},x,M[C],g,W,t);else{A="";w=Ud(o[0]);B=o.index+o[0].length}break;case"Cell":if(o[1]==="/"){if(N.length>0)m.c=N;if((!t.sheetRows||t.sheetRows>_)&&m.v!==undefined){if(t.dense){if(!v[_])v[_]=[];v[_][C]=m}else v[Vr(C)+Ur(_)]=m}if(m.HRef){m.l={Target:m.HRef,Tooltip:m.HRefScreenTip};delete m.HRef;delete m.HRefScreenTip}if(m.MergeAcross||m.MergeDown){var K=C+(parseInt(m.MergeAcross,10)|0);var Y=_+(parseInt(m.MergeDown,10)|0);R.push({s:{c:C,r:_},e:{c:K,r:Y}})}if(!t.sheetStubs){if(m.MergeAcross)C=K+1;else++C}else if(m.MergeAcross||m.MergeDown){for(var $=C;$<=K;++$){for(var Z=_;Z<=Y;++Z){if($>C||Z>_){if(t.dense){if(!v[Z])v[Z]=[];v[Z][$]={t:"z"}}else v[Vr($)+Ur(Z)]={t:"z"}}}}C=K+1}else++C}else{m=Hd(o[0]);if(m.Index)C=+m.Index-1;if(CT.e.c)T.e.c=C;if(o[0].slice(-2)==="/>")++C;N=[]}break;case"Row":if(o[1]==="/"||o[0].slice(-2)==="/>"){if(_T.e.r)T.e.r=_;if(o[0].slice(-2)==="/>"){g=Ud(o[0]);if(g.Index)_=+g.Index-1}C=0;++_}else{g=Ud(o[0]);if(g.Index)_=+g.Index-1;X={};if(g.AutoFitHeight=="0"||g.Height){X.hpx=parseInt(g.Height,10);X.hpt=Ro(X.hpx);z[_]=X}if(g.Hidden=="1"){X.hidden=true;z[_]=X}}break;case"Worksheet":if(o[1]==="/"){if((u=f.pop())[0]!==o[3])throw new Error("Bad state: "+u.join("|"));d.push(p);if(T.s.r<=T.e.r&&T.s.c<=T.e.c)v["!ref"]=Jr(T);if(R.length)v["!merges"]=R;if(M.length>0)v["!cols"]=M;if(z.length>0)v["!rows"]=z;h[p]=v}else{T={s:{r:2e6,c:2e6},e:{r:0,c:0}};_=C=0;f.push([o[3],false]);u=Ud(o[0]);p=pe(u.Name);v=t.dense?[]:{};R=[];W=[];z=[];j={name:p,Hidden:0};G.Sheets.push(j)}break;case"Table":if(o[1]==="/"){if((u=f.pop())[0]!==o[3])throw new Error("Bad state: "+u.join("|"))}else if(o[0].slice(-2)=="/>")break;else{b=Ud(o[0]);f.push([o[3],false]);M=[];H=false}break;case"Style":if(o[1]==="/")Xd(x,I,t);else I=Ud(o[0]);break;case"NumberFormat":I.nf=pe(Ud(o[0]).Format||"General");if(S[I.nf])I.nf=S[I.nf];for(var Q=0;Q!=392;++Q)if(E._table[Q]==I.nf)break;if(Q==392)for(Q=57;Q!=392;++Q)if(E._table[Q]==null){E.load(I.nf,Q);break}break;case"Column":if(f[f.length-1][0]!=="Table")break;U=Ud(o[0]);if(U.Hidden){U.hidden=true;delete U.Hidden}if(U.Width)U.wpx=parseInt(U.Width,10);if(!H&&U.wpx>10){H=true;Eo=bo;for(var J=0;J0)re.Sheet=G.Sheets.length-1;G.Names.push(re);break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(o[0].slice(-2)==="/>")break;else if(o[1]==="/")A+=a.slice(y,o.index);else y=o.index+o[0].length;break;case"Interior":if(!t.cellStyles)break;I.Interior=Ud(o[0]);break;case"Protection":break;case"Author":;case"Title":;case"Description":;case"Created":;case"Keywords":;case"Subject":;case"Category":;case"Company":;case"LastAuthor":;case"LastSaved":;case"LastPrinted":;case"Version":;case"Revision":;case"TotalTime":;case"HyperlinkBase":;case"Manager":;case"ContentStatus":;case"Identifier":;case"Language":;case"AppName":if(o[0].slice(-2)==="/>")break;else if(o[1]==="/")Ha(D,o[3],a.slice(F,o.index));else F=o.index+o[0].length;break;case"Paragraphs":break;case"Styles":;case"Workbook":if(o[1]==="/"){if((u=f.pop())[0]!==o[3])throw new Error("Bad state: "+u.join("|"))}else f.push([o[3],false]);break;case"Comment":if(o[1]==="/"){if((u=f.pop())[0]!==o[3])throw new Error("Bad state: "+u.join("|"));jd(L);N.push(L)}else{f.push([o[3],false]);u=Ud(o[0]);L={a:u.Author}}break;case"AutoFilter":if(o[1]==="/"){if((u=f.pop())[0]!==o[3])throw new Error("Bad state: "+u.join("|"))}else if(o[0].charAt(o[0].length-2)!=="/"){var te=Ud(o[0]);v["!autofilter"]={ref:ff(te.Range).replace(/\$/g,"")};f.push([o[3],true])}break;case"Name":break;case"ComponentOptions":;case"DocumentProperties":;case"CustomDocumentProperties":;case"OfficeDocumentSettings":;case"PivotTable":;case"PivotCache":;case"Names":;case"MapInfo":;case"PageBreaks":;case"QueryTable":;case"DataValidation":;case"Sorting":;case"Schema":;case"data":;case"ConditionalFormatting":;case"SmartTagType":;case"SmartTags":;case"ExcelWorkbook":;case"WorkbookOptions":;case"WorksheetOptions":if(o[1]==="/"){if((u=f.pop())[0]!==o[3])throw new Error("Bad state: "+u.join("|"))}else if(o[0].charAt(o[0].length-2)!=="/")f.push([o[3],true]);break;default:if(f.length==0&&o[3]=="document")return Lv(a,t);if(f.length==0&&o[3]=="UOF")return Lv(a,t);var ae=true;switch(f[f.length-1][0]){case"OfficeDocumentSettings":switch(o[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:ae=false;}break;case"ComponentOptions":switch(o[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:ae=false;}break;case"ExcelWorkbook":switch(o[3]){case"Date1904":G.WBProps.date1904=true;break;case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:ae=false;}break;case"WorkbookOptions":switch(o[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:ae=false;}break;case"WorksheetOptions":switch(o[3]){case"Visible":if(o[0].slice(-2)==="/>"){}else if(o[1]==="/")switch(a.slice(F,o.index)){case"SheetHidden":j.Hidden=1;break;case"SheetVeryHidden":j.Hidden=2;break;}else F=o.index+o[0].length;break;case"Header":if(!v["!margins"])du(v["!margins"]={},"xlml");v["!margins"].header=ue(o[0]).Margin;break;case"Footer":if(!v["!margins"])du(v["!margins"]={},"xlml");v["!margins"].footer=ue(o[0]).Margin;break;case"PageMargins":var ne=ue(o[0]);if(!v["!margins"])du(v["!margins"]={},"xlml");if(ne.Top)v["!margins"].top=ne.Top;if(ne.Left)v["!margins"].left=ne.Left;if(ne.Right)v["!margins"].right=ne.Right;if(ne.Bottom)v["!margins"].bottom=ne.Bottom;break;case"Unsynced":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"PageSetup":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:ae=false;}break;case"PivotTable":;case"PivotCache":switch(o[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:ae=false;}break;case"PageBreaks":switch(o[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:ae=false;}break;case"AutoFilter":switch(o[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:ae=false;}break;case"QueryTable":switch(o[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:ae=false;}break;case"Sorting":;case"ConditionalFormatting":;case"DataValidation":switch(o[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:ae=false;}break;case"MapInfo":;case"Schema":;case"data":switch(o[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":;case"element":;case"complexType":;case"datatype":;case"all":;case"attribute":;case"extends":break;case"row":break;default:ae=false;}break;case"SmartTags":break;default:ae=false;break;}if(ae)break;if(!f[f.length-1][1])throw"Unrecognized tag: "+o[3]+"|"+f.join("|");if(f[f.length-1][0]==="CustomDocumentProperties"){if(o[0].slice(-2)==="/>")break;else if(o[1]==="/")zd(O,o,P,a.slice(F,o.index));else{P=o;F=o.index+o[0].length}break}if(t.WTF)throw"Unrecognized tag: "+o[3]+"|"+f.join("|");}var ie={};if(!t.bookSheets&&!t.bookProps)ie.Sheets=h;ie.SheetNames=d;ie.Workbook=G;ie.SSF=E.get_table();ie.Props=D;ie.Custprops=O;return ie}function Zd(e){if(Array.isArray(e))return e.map(Md).join("");var r=[];for(var t=0;t");if(e["!margins"].header)n.push(Ue("Header",null,{"x:Margin":e["!margins"].header}));if(e["!margins"].footer)n.push(Ue("Footer",null,{"x:Margin":e["!margins"].footer}));n.push(Ue("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"}));n.push("")}if(a&&a.Workbook&&a.Workbook.Sheets&&a.Workbook.Sheets[t]){if(a.Workbook.Sheets[t].Hidden)n.push(Ue("Visible",a.Workbook.Sheets[t].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var i=0;i")}}if(e["!protect"]){n.push(Le("ProtectContents","True"));if(e["!protect"].objects)n.push(Le("ProtectObjects","True"));if(e["!protect"].scenarios)n.push(Le("ProtectScenarios","True"));if(e["!protect"].selectLockedCells!=null&&!e["!protect"].selectLockedCells)n.push(Le("EnableSelection","NoSelection"));else if(e["!protect"].selectUnlockedCells!=null&&!e["!protect"].selectUnlockedCells)n.push(Le("EnableSelection","UnlockedCells"));[["formatColumns","AllowFormatCells"],["formatRows","AllowSizeCols"],["formatCells","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(r){if(e["!protect"][r[0]])n.push("<"+r[1]+"/>")})}if(n.length==0)return"";return Ue("WorksheetOptions",n.join(""),{xmlns:Ve.x})}function tv(e){return e.map(function(e){var r=Be(e.t||"");var t=Ue("ss:Data",r,{xmlns:"http://www.w3.org/TR/REC-html40"});return Ue("Comment",t,{"ss:Author":e.a})}).join("")}function av(e,r,t,a,n,i,s){if(!e||e.v==undefined&&e.f==undefined)return"";var o={};if(e.f)o["ss:Formula"]="="+ge(uf(e.f,s));if(e.F&&e.F.substr(0,r.length)==r){var l=Kr(e.F.substr(r.length+1));o["ss:ArrayRange"]="RC:R"+(l.r==s.r?"":"["+(l.r-s.r)+"]")+"C"+(l.c==s.c?"":"["+(l.c-s.c)+"]")}if(e.l&&e.l.Target){o["ss:HRef"]=ge(e.l.Target);if(e.l.Tooltip)o["x:HRefScreenTip"]=ge(e.l.Tooltip)}if(t["!merges"]){var f=t["!merges"];for(var c=0;c!=f.length;++c){if(f[c].s.c!=s.c||f[c].s.r!=s.r)continue;if(f[c].e.c>f[c].s.c)o["ss:MergeAcross"]=f[c].e.c-f[c].s.c;if(f[c].e.r>f[c].s.r)o["ss:MergeDown"]=f[c].e.r-f[c].s.r}}var u="",h="";switch(e.t){case"z":return"";case"n":u="Number";h=String(e.v);break;case"b":u="Boolean";h=e.v?"1":"0";break;case"e":u="Error";h=Rt[e.v];break;case"d":u="DateTime";h=new Date(e.v).toISOString();break;case"s":u="String";h=ge(e.v||"");break;}var d=e.v!=null?h:"";var v=''+d+"";if((e.c||[]).length>0)v+=tv(e.c);return Ue("Cell",v,o)}function nv(e,r){var t='"}function iv(e,r,t,a){if(!e["!ref"])return"";var n=qr(e["!ref"]);var i=e["!merges"]||[],s=0;var o=[];if(e["!cols"])e["!cols"].forEach(function(e,r){Io(e);var t=!!e.width;var a=hu(r,e);var n={"ss:Index":r+1};if(t)n["ss:Width"]=ko(a.width);if(e.hidden)n["ss:Hidden"]="1";o.push(Ue("Column",null,n))});var l=Array.isArray(e);for(var f=n.s.r;f<=n.e.r;++f){var c=[nv(f,(e["!rows"]||[])[f])];for(var u=n.s.c;u<=n.e.c;++u){var h=false;for(s=0;s!=i.length;++s){if(i[s].s.c>u)continue;if(i[s].s.r>f)continue;if(i[s].e.c");if(c.length>2)o.push(c.join(""))}return o.join("")}function sv(e,r,t){var a=[];var n=t.SheetNames[e];var i=t.Sheets[n];var s=i?iv(i,r,e,t):"";if(s.length>0)a.push(""+s+"
    ");a.push(rv(i,r,e,t));return a.join("")}function ov(e,r){var t=[];t.push(Jd(e,r));t.push(qd(e,r));t.push(ev(e,r));for(var a=0;a400)throw new Error("Unsupported Clipboard: "+n.toString(16));a+=n;}n=er(t,a);a+=n.length===0?0:5+n.length;r.Reserved1=n;if((n=vr(t,a))!==1907550708)return r;throw new Error("Unsupported Unicode Extension")}function fv(e,r,t,a){var n=t;var i=[];var s=r.slice(r.l,r.l+n);if(a&&a.enc&&a.enc.insitu_decrypt)switch(e.n){case"BOF":;case"FilePass":;case"FileLock":;case"InterfaceHdr":;case"RRDInfo":;case"RRDHead":;case"UsrExcl":break;default:if(s.length===0)break;a.enc.insitu_decrypt(s);}i.push(s);r.l+=n;var o=gv[hr(r,r.l)];var l=0;while(o!=null&&o.n.slice(0,8)==="Continue"){n=hr(r,r.l+2);l=r.l+4;if(o.n=="ContinueFrt")l+=4;else if(o.n.slice(0,11)=="ContinueFrt")l+=12;i.push(r.slice(l,r.l+4+n));r.l+=4+n;o=gv[hr(r,r.l)]}var f=b(i);Cr(f,0);var c=0;f.lens=[];for(var u=0;u1)return;if(!T)return;if(t.cellStyles&&r.XF&&r.XF.data)D(e,r,t);delete r.ixfe;delete r.XF;v=e;p=Yr(e);if(l.s){if(e.rl.e.r)l.e.r=e.r+1;if(e.c+1>l.e.c)l.e.c=e.c+1}if(t.cellFormula&&r.f){for(var a=0;ae.c)continue;if(B[a][0].s.r>e.r)continue;if(B[a][0].e.c=t.sheetRows)T=false;else{if(t.dense){if(!i[e.r])i[e.r]=[];i[e.r][e.c]=r}else i[p]=r}};var F={enc:false,sbcch:0,snames:[],sharedf:w,arrayf:B,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,cellStyles:!!r&&!!r.cellStyles,WTF:!!r&&!!r.wtf};if(r.password)F.password=r.password;var P=[];var N=[];var L=[],M=[];var U=0,H=0;var W=false;var z=[];z.SheetNames=F.snames;z.sharedf=F.sharedf;z.arrayf=F.arrayf;z.names=[];z.XTI=[];var V="";var X=0;var G=0;var j=[];var K=[];var Y;F.codepage=1200;n(1200);while(e.l0)Y.Sheet=re.itab-1;z.names.push(Y);if(!z[0])z[0]=[];z[z.length-1].push(re);if(re.Name=="_xlnm._FilterDatabase"&&re.itab>0)if(re.rgce&&re.rgce[0]&&re.rgce[0][0]&&re.rgce[0][0][0]=="PtgArea3d")K[re.itab-1]={ref:Jr(re.rgce[0][0][1][2])};break;case"ExternCount":F.ExternCount=re;break;case"ExternSheet":if(z.length==0){z[0]=[];z[0].XTI=[]}z[z.length-1].XTI=z[z.length-1].XTI.concat(re);z.XTI=z.XTI.concat(re);break;case"NameCmt":if(F.biff<8)break;if(Y!=null)Y.Comment=re[1];break;case"Protect":i["!protect"]=re;break;case"Password":if(re!==0&&F.WTF)console.error("Password verifier: "+re);break;case"Prot4Rev":;case"Prot4RevPass":break;case"BoundSheet8":{s[re.pos]=re;F.snames.push(re.name)}break;case"EOF":{if(--X)break;if(l.e){if(l.e.r>0&&l.e.c>0){l.e.r--;l.e.c--;i["!ref"]=Jr(l);l.e.r++;l.e.c++}if(P.length>0)i["!merges"]=P;if(N.length>0)i["!objects"]=N;if(L.length>0)i["!cols"]=L;if(M.length>0)i["!rows"]=M;A.Sheets.push(y)}if(h==="")d=i;else a[h]=i;i=r.dense?[]:{}}break;case"BOF":{if(F.biff===8)switch(Z){case 9:F.biff=2;break;case 521:F.biff=3;break;case 1033:F.biff=4;break;default:switch(re.BIFFVer){case 1280:F.biff=5;break;case 1536:F.biff=8;break;case 2:F.biff=2;break;case 7:F.biff=2;break;};}if(X++)break;T=true;i=r.dense?[]:{};if(F.biff<5){if(h==="")h="Sheet1";l={s:{r:0,c:0},e:{r:0,c:0}};var ae={pos:e.l-Q,name:h};s[ae.pos]=ae;F.snames.push(h)}else h=(s[$]||{name:""}).name;if(re.dt==32)i["!type"]="chart";P=[];N=[];B=[];F.arrayf=B;L=[];M=[];U=H=0;W=false;y={Hidden:(s[$]||{hs:0}).hs,name:h}}break;case"Number":;case"BIFF2NUM":;case"BIFF2INT":{if(i["!type"]=="chart")if(r.dense?(i[re.r]||[])[re.c]:i[Yr({c:re.c,r:re.r})])++re.c;C={ixfe:re.ixfe,XF:x[re.ixfe]||{},v:re.val,t:"n"};if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"BoolErr":{C={ixfe:re.ixfe,XF:x[re.ixfe],v:re.val,t:re.t};if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"RK":{C={ixfe:re.ixfe,XF:x[re.ixfe],v:re.rknum,t:"n"};if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"MulRk":{for(var ne=re.c;ne<=re.C;++ne){var ie=re.rkrec[ne-re.c][0];C={ixfe:ie,XF:x[ie],v:re.rkrec[ne-re.c][1],t:"n"};if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:ne,r:re.r},C,r)}}break;case"Formula":{if(re.val=="String"){f=re;break}C=uv(re.val,re.cell.ixfe,re.tt);C.XF=x[C.ixfe];if(r.cellFormula){var se=re.formula;if(se&&se[0]&&se[0][0]&&se[0][0][0]=="PtgExp"){var oe=se[0][0][1][0],le=se[0][0][1][1];var fe=Yr({r:oe,c:le});if(w[fe])C.f=""+$c(re.formula,l,re.cell,z,F);else C.F=((r.dense?(i[oe]||[])[le]:i[fe])||{}).F}else C.f=""+$c(re.formula,l,re.cell,z,F)}if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O(re.cell,C,r);f=re}break;case"String":{if(f){f.val=re;C=uv(re,f.cell.ixfe,"s");C.XF=x[C.ixfe];if(r.cellFormula){C.f=""+$c(f.formula,l,f.cell,z,F)}if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O(f.cell,C,r);f=null}else throw new Error("String record expects Formula")}break;case"Array":{B.push(re);var ce=Yr(re[0].s);b=r.dense?(i[re[0].s.r]||[])[re[0].s.c]:i[ce];if(r.cellFormula&&b){if(!f)break;if(!ce||!b)break;b.f=""+$c(re[1],l,re[0],z,F);b.F=Jr(re[0])}}break;case"ShrFmla":{if(!T)break;if(!r.cellFormula)break;if(p){if(!f)break;w[Yr(f.cell)]=re[0];b=r.dense?(i[f.cell.r]||[])[f.cell.c]:i[Yr(f.cell)];(b||{}).f=""+$c(re[0],l,v,z,F)}}break;case"LabelSst": -C=uv(u[re.isst].t,re.ixfe,"s");C.XF=x[C.ixfe];if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r);break;case"Blank":if(r.sheetStubs){C={ixfe:re.ixfe,XF:x[re.ixfe],t:"z"};if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"MulBlank":if(r.sheetStubs){for(var ue=re.c;ue<=re.C;++ue){var he=re.ixfe[ue-re.c];C={ixfe:he,XF:x[he],t:"z"};if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:ue,r:re.r},C,r)}}break;case"RString":;case"Label":;case"BIFF2STR":C=uv(re.val,re.ixfe,"s");C.XF=x[C.ixfe];if(G>0)C.z=j[C.ixfe>>8&31];cv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r);break;case"Dimensions":{if(X===1)l=re}break;case"SST":{u=re}break;case"Format":{E.load(re[1],re[0])}break;case"BIFF2FORMAT":{j[G++]=re;for(var de=0;de=163)E.load(re,G+163)}break;case"MergeCells":P=P.concat(re);break;case"Obj":N[re.cmo[0]]=F.lastobj=re;break;case"TxO":F.lastobj.TxO=re;break;case"ImData":F.lastobj.ImData=re;break;case"HLink":{for(S=re[0].s.r;S<=re[0].e.r;++S)for(k=re[0].s.c;k<=re[0].e.c;++k){b=r.dense?(i[S]||[])[k]:i[Yr({c:k,r:S})];if(b)b.l=re[1]}}break;case"HLinkTooltip":{for(S=re[0].s.r;S<=re[0].e.r;++S)for(k=re[0].s.c;k<=re[0].e.c;++k){b=r.dense?(i[S]||[])[k]:i[Yr({c:k,r:S})];if(b)b.l.Tooltip=re[1]}}break;case"Note":{if(F.biff<=5&&F.biff>=2)break;b=r.dense?(i[re[0].r]||[])[re[0].c]:i[Yr(re[0])];var ve=N[re[2]];if(!b)break;if(!b.c)b.c=[];m={a:re[1],t:ve.TxO.t};b.c.push(m)}break;default:switch(q.n){case"ClrtClient":break;case"XFExt":Nl(x[re.ixfe],re.ext);break;case"DefColWidth":U=re;break;case"DefaultRowHeight":H=re[1];break;case"ColInfo":{if(!F.cellStyles)break;while(re.e>=re.s){L[re.e--]={width:re.w/256};if(!W){W=true;To(re.w/256)}Io(L[re.e+1])}}break;case"Row":{var pe={};if(re.level!=null){M[re.r]=pe;pe.level=re.level}if(re.hidden){M[re.r]=pe;pe.hidden=true}if(re.hpt){M[re.r]=pe;pe.hpt=re.hpt;pe.hpx=Do(re.hpt)}}break;case"LeftMargin":;case"RightMargin":;case"TopMargin":;case"BottomMargin":if(!i["!margins"])du(i["!margins"]={});i["!margins"][te.slice(0,-6).toLowerCase()]=re;break;case"Setup":if(!i["!margins"])du(i["!margins"]={});i["!margins"].header=re.header;i["!margins"].footer=re.footer;break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"GCW":break;case"LHRecord":break;case"DBCell":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXString":break;case"Sync":break;case"Addin":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":;case"FeatHdr11":break;case"Feature11":;case"Feature12":;case"List12":break;case"Country":_=re;break;case"RecalcId":break;case"DxGCol":break;case"Fbi":;case"Fbi2":;case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":I=re;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":;case"DXFN":;case"DXFN12":;case"DXFN12List":;case"DXFN12NoCB":break;case"Dv":;case"DVal":break;case"BRAI":;case"Series":;case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"OleDbConn":break;case"ExtString":break;case"IFmtRecord":break;case"CondFmt":;case"CF":;case"CF12":;case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":;case"Mms":;case"InterfaceEnd":;case"DSF":break;case"BuiltInFnGroupCount":break;case"Window1":;case"Window2":;case"HideObj":;case"GridSet":;case"Guts":;case"UserBView":;case"UserSViewBegin":;case"UserSViewEnd":;case"Pane":break;default:switch(q.n){case"Dat":;case"Begin":;case"End":;case"StartBlock":;case"EndBlock":;case"Frame":;case"Area":;case"Axis":;case"AxisLine":;case"Tick":break;case"AxesUsed":;case"CrtLayout12":;case"CrtLayout12A":;case"CrtLink":;case"CrtLine":;case"CrtMlFrt":;case"CrtMlFrtContinue":break;case"LineFormat":;case"AreaFormat":;case"Chart":;case"Chart3d":;case"Chart3DBarShape":;case"ChartFormat":;case"ChartFrtInfo":break;case"PlotArea":;case"PlotGrowth":break;case"SeriesList":;case"SerParent":;case"SerAuxTrend":break;case"DataFormat":;case"SerToCrt":;case"FontX":break;case"CatSerRange":;case"AxcExt":;case"SerFmt":break;case"ShtProps":break;case"DefaultText":;case"Text":;case"CatLab":break;case"DataLabExtContents":break;case"Legend":;case"LegendException":break;case"Pie":;case"Scatter":break;case"PieFormat":;case"MarkerFormat":break;case"StartObject":;case"EndObject":break;case"AlRuns":;case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":;case"YMult":break;case"Line":;case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":;case"Qsif":;case"Qsir":;case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":;case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":;case"MsoDrawingGroup":;case"MsoDrawingSelection":break;case"WebPub":;case"AutoWebPub":break;case"HeaderFooter":;case"HFPicture":;case"PLV":;case"HorizontalPageBreaks":;case"VerticalPageBreaks":break;case"Backup":;case"CompressPictures":;case"Compat12":break;case"Continue":;case"ContinueFrt12":break;case"FrtFontList":;case"FrtWrapper":break;default:switch(q.n){case"TabIdConf":;case"Radar":;case"RadarArea":;case"DropBar":;case"Intl":;case"CoordList":;case"SerAuxErrBar":break;case"BIFF2FONTCLR":;case"BIFF2FMTCNT":;case"BIFF2FONTXTRA":break;case"BIFF2XF":;case"BIFF3XF":;case"BIFF4XF":break;case"BIFF4FMTCNT":;case"BIFF2ROW":;case"BIFF2WINDOW2":break;case"SCENARIO":;case"DConBin":;case"PicF":;case"DataLabExt":;case"Lel":;case"BopPop":;case"BopPopCustom":;case"RealTimeData":;case"Name":break;case"LHNGraph":;case"FnGroupName":;case"AddMenu":;case"LPr":break;case"ListObj":;case"ListField":break;case"RRSort":break;case"BigName":break;case"ToolbarHdr":;case"ToolbarEnd":break;case"DDEObjName":break;case"FRTArchId$":break;default:if(r.WTF)throw"Unrecognized Record "+q.n;};};};}}else e.l+=Q}var be=Object.keys(s).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return s[e].name});var me=be.slice();t.Directory=be;t.SheetNames=be;if(!r.bookSheets)t.Sheets=a;if(t.Sheets)K.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Preamble=d;t.Strings=u;t.SSF=E.get_table();if(F.enc)t.Encryption=F.enc;t.Metadata={};if(_!==undefined)t.Metadata.Country=_;if(z.names.length>0)A.Names=z.names;t.Workbook=A;return t}function dv(e,r,t){var a=T.find(e,"!DocumentSummaryInformation");if(a)try{var n=on(a,Zt);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF==2)throw s}var o=T.find(e,"!SummaryInformation");if(o)try{var l=on(o,Qt);for(var f in l)if(r[f]==null)r[f]=l[f]}catch(s){if(t.WTF==2)throw s}}function vv(e,r){if(!r)r={};Zv(r);a();var t,n,i;if(e.FullPaths){t=T.find(e,"!CompObj");n=T.find(e,"!SummaryInformation");i=T.find(e,"/Workbook")||T.find(e,"/Book")}else{switch(r.type){case"base64":e=p(h.decode(e));break;case"binary":e=p(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}Cr(e,0);i={content:e}}var s,o,l;var f;if(t)s=lv(t);if(r.bookProps&&!r.bookSheets)l={};else{var c=d?"buffer":"array";if(i&&i.content)l=hv(i.content,r);else if((f=T.find(e,"PerfectOffice_MAIN"))&&f.content)l=ws.to_workbook(f.content,(r.type=c,r));else if((f=T.find(e,"NativeContent_MAIN"))&&f.content)l=ws.to_workbook(f.content,(r.type=c,r));else throw new Error("Cannot find Workbook stream")}var u={};if(e.FullPaths)dv(e,u,r);l.Props=l.Custprops=u;if(r.bookFiles)l.cfb=e;return l}function pv(e,r){var t=r||{};var a=T.utils.cfb_new({root:"R"});var n="/Workbook";switch(t.bookType||"xls"){case"xls":t.bookType="biff8";case"biff8":n="/Workbook";t.biff=8;break;case"biff5":n="/Book";t.biff=5;break;default:throw new Error("invalid type "+t.bookType+" for XLS CFB");}T.utils.cfb_add(a,n,Rv(e,t));return a}var bv={0:{n:"BrtRowHdr",f:Hu},1:{n:"BrtCellBlank",f:Yu},2:{n:"BrtCellRk",f:ah},3:{n:"BrtCellError",f:Ju},4:{n:"BrtCellBool",f:Zu},5:{n:"BrtCellReal",f:rh},6:{n:"BrtCellSt",f:ih},7:{n:"BrtCellIsst",f:qu},8:{n:"BrtFmlaString",f:ch},9:{n:"BrtFmlaNum",f:fh},10:{n:"BrtFmlaBool",f:oh},11:{n:"BrtFmlaError",f:lh},16:{n:"BrtFRTArchID$",f:fd},19:{n:"BrtSSTItem",f:ft},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:cd},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:Yo},44:{n:"BrtFmt",f:jo},45:{n:"BrtFill",f:Jo},46:{n:"BrtBorder",f:al},47:{n:"BrtXF",f:el},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:es},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:Ul},64:{n:"BrtDVal"},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:_r,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView"},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:ju},148:{n:"BrtWsDim",f:Vu,p:16},151:{n:"BrtPane"},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:od},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:id},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:Ps},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:xt},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:uh},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:St},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:Fi},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:bh},427:{n:"BrtShrFmla",f:mh},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:Eh},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:Gu},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:vh},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:St},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:ef},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:Jl},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:ut},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp"},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14"},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSxview14"},1063:{n:"BrtEndSxview14"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},65535:{n:""}};var mv=A(bv,"n");var gv={3:{n:"BIFF2NUM",f:cs},4:{n:"BIFF2STR",f:fs},6:{n:"Formula",f:Nc},9:{n:"BOF",f:Kn},10:{n:"EOF",f:ln},12:{n:"CalcCount",f:dn},13:{n:"CalcMode",f:dn},14:{n:"CalcPrecision",f:un},15:{n:"CalcRefMode",f:un},16:{n:"CalcDelta",f:At},17:{n:"CalcIter",f:un},18:{n:"Protect",f:un},19:{n:"Password",f:dn},20:{n:"Header",f:Ai},21:{n:"Footer",f:Ai},23:{n:"ExternSheet",f:Fi},24:{n:"Lbl",f:Oi},25:{n:"WinProtect",f:un},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:Wi},29:{n:"Selection"},34:{n:"Date1904",f:un},35:{n:"ExternName",f:Ri},38:{n:"LeftMargin",f:At},39:{n:"RightMargin",f:At},40:{n:"TopMargin",f:At},41:{n:"BottomMargin",f:At},42:{n:"PrintRowCol",f:un},43:{n:"PrintGrid",f:un},47:{n:"FilePass",f:lo},49:{n:"Font",f:li},51:{n:"PrintSize",f:dn},60:{n:"Continue" -},61:{n:"Window1",f:si},64:{n:"Backup",f:un},65:{n:"Pane"},66:{n:"CodePage",f:dn},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:dn},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:Zn},93:{n:"Obj",f:Vi},94:{n:"Uncalced"},95:{n:"CalcSaveRecalc",f:un},96:{n:"Template"},97:{n:"Intl"},99:{n:"ObjProtect",f:un},125:{n:"ColInfo",f:es},128:{n:"Guts",f:Bi},129:{n:"WsBool"},130:{n:"GridSet",f:dn},131:{n:"HCenter",f:un},132:{n:"VCenter",f:un},133:{n:"BoundSheet8",f:Jn},134:{n:"WriteProtect"},140:{n:"Country",f:$i},141:{n:"HideObj",f:dn},144:{n:"Sort"},146:{n:"Palette",f:Ji},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:dn},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:is},161:{n:"Setup",f:rs},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:mi},190:{n:"MulBlank",f:gi},193:{n:"Mms",f:ln},197:{n:"SXDI"},198:{n:"SXDB"},199:{n:"SXFDB"},200:{n:"SXDBB"},201:{n:"SXNum"},202:{n:"SxBool",f:un},203:{n:"SxErr"},204:{n:"SXInt"},205:{n:"SXString"},206:{n:"SXDtr"},207:{n:"SxNil"},208:{n:"SXTbl"},209:{n:"SXTBRGIITM"},210:{n:"SxTbpg"},211:{n:"ObProj"},213:{n:"SXStreamID"},215:{n:"DBCell"},216:{n:"SXRng"},217:{n:"SxIsxoper"},218:{n:"BookBool",f:dn},220:{n:"DbOrParamQry"},221:{n:"ScenarioProtect",f:un},222:{n:"OleObjectSize"},224:{n:"XF",f:wi},225:{n:"InterfaceHdr",f:$n},226:{n:"InterfaceEnd",f:ln},227:{n:"SXVS"},229:{n:"MergeCells",f:zi},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:ei},253:{n:"LabelSst",f:fi},255:{n:"ExtSST",f:ri},256:{n:"SXVDEx"},259:{n:"SXFormula"},290:{n:"SXDBEx"},311:{n:"RRDInsDel"},312:{n:"RRDHead"},315:{n:"RRDChgCell"},317:{n:"RRTabId",f:pn},318:{n:"RRDRenSheet"},319:{n:"RRSort"},320:{n:"RRDMove"},330:{n:"RRFormat"},331:{n:"RRAutoFmt"},333:{n:"RRInsertSh"},334:{n:"RRDMoveBegin"},335:{n:"RRDMoveEnd"},336:{n:"RRDInsDelBegin"},337:{n:"RRDInsDelEnd"},338:{n:"RRDConflict"},339:{n:"RRDDefName"},340:{n:"RRDRstEtxp"},351:{n:"LRng"},352:{n:"UsesELFs",f:un},353:{n:"DSF",f:ln},401:{n:"CUsr"},402:{n:"CbUsr"},403:{n:"UsrInfo"},404:{n:"UsrExcl"},405:{n:"FileLock"},406:{n:"RRDInfo"},407:{n:"BCUsrs"},408:{n:"UsrChk"},425:{n:"UserBView"},426:{n:"UserSViewBegin"},427:{n:"UserSViewEnd"},428:{n:"RRDUserView"},429:{n:"Qsi"},430:{n:"SupBook",f:yi},431:{n:"Prot4Rev",f:un},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:ji},439:{n:"RefreshAll",f:un},440:{n:"HLink",f:Ki},441:{n:"Lel"},442:{n:"CodeName",f:Sn},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:dn},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:ln},449:{n:"RecalcId",f:ni,r:2},450:{n:"EntExU2",f:ln},512:{n:"Dimensions",f:vi},513:{n:"Blank",f:ns},515:{n:"Number",f:xi},516:{n:"Label",f:ci},517:{n:"BoolErr",f:_i},518:{n:"Formula",f:Nc},519:{n:"String",f:ss},520:{n:"Row",f:ti},523:{n:"Index"},545:{n:"Array",f:Mi},549:{n:"DefaultRowHeight",f:ii},566:{n:"Table"},574:{n:"Window2",f:_r},638:{n:"RK",f:bi},659:{n:"Style",f:_r},1030:{n:"Formula",f:Nc},1048:{n:"BigName"},1054:{n:"Format",f:hi},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:Li},2048:{n:"HLinkTooltip",f:Yi},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:Kn},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:ln},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:qi,r:12},2173:{n:"XFExt",f:Pl,r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:un,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt",f:_r},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:Ni,r:12},2197:{n:"SortData"},2198:{n:"Theme",f:Al,r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:Ui,r:12},2203:{n:"CompressPictures",f:ln},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:ai},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:dn},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:ts},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:Qi},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:vi},2:{n:"BIFF2INT",f:hs},5:{n:"BoolErr",f:_i},7:{n:"String",f:vs},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:dn},30:{n:"BIFF2FORMAT",f:di},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:Mi},37:{n:"DefaultRowHeight",f:ii},50:{n:"BIFF2FONTXTRA",f:ps},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:os},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:bs},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:Kn},536:{n:"Lbl",f:Oi},547:{n:"ExternName",f:Ri},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:Kn},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}};var Ev=A(gv,"n");function kv(e,r,t,a){var n=+r||+Ev[r];if(isNaN(n))return;var i=a||(t||[]).length||0;var s=e.next(4+i);s._W(2,n);s._W(2,i);if(i>0&&cr(t))e.push(t)}function Sv(e,r,t){if(!e)e=Ir(7);e._W(2,r);e._W(2,t);e._W(1,0);e._W(1,0);e._W(1,0);return e}function wv(e,r,t,a){var n=Ir(9);Sv(n,e,r);if(a=="e"){n._W(1,t);n._W(1,1)}else{n._W(1,t?1:0);n._W(1,0)}return n}function Bv(e,r,t){var a=Ir(8+2*t.length);Sv(a,e,r);a._W(1,t.length);a._W(t.length,t,"sbcs");return a.l=0&&i<65536)kv(e,2,ds(t,a,i));else kv(e,3,us(t,a,i));return;case"b":;case"e":kv(e,5,wv(t,a,r.v,r.t));return;case"s":;case"str":kv(e,4,Bv(t,a,r.v));return;}kv(e,1,Sv(null,t,a))}function _v(e,r,t,a,n){var i=Array.isArray(r);var s=qr(r["!ref"]||"A1"),o,l="",f=[];for(var c=s.s.r;c<=s.e.r;++c){l=Ur(c);for(var u=s.s.c;u<=s.e.c;++u){if(c===s.s.r)f[u]=Vr(u);o=f[u]+l;var h=i?(r[c]||[])[u]:r[o];if(!h)continue;Cv(e,h,c,u,a)}}}function Tv(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=yr();var n=0;for(var i=0;i");var i=e.match(/<\/table/i);var s=n.index,o=i&&i.index||e.length;var l=Y(e.slice(s,o),/(:?]*>)/i,"");var f=-1,u=0,h=0,d=0;var v={s:{r:1e7,c:1e7},e:{r:0,c:0}};var p=[],b=0;for(s=0;s/i);for(o=0;o"))>-1)S=S.slice(w+1);while(S.indexOf(">")>-1)S=S.slice(0,S.lastIndexOf("<"));var B=ue(k.slice(0,k.indexOf(">")));d=B.colspan?+B.colspan:1;if((h=+B.rowspan)>0||d>1)p.push({s:{r:f,c:u},e:{r:f+(h||1)-1,c:u+d-1}});if(!S.length){u+=d;continue}S=Re(pe(S));if(v.s.r>f)v.s.r=f;if(v.e.ru)v.s.c=u;if(v.e.c";for(var o=r.s.c;o<=r.e.c;++o){var l=0,f=0;for(var c=0;ct||n[c].s.c>o)continue;if(n[c].e.r1)v.rowspan=l;if(f>1)v.colspan=f;if(a.editable)v.contenteditable="true";v.id="sjs-"+u;i.push(Ue("td",d,v))}var p="";return p+i.join("")+""}function a(e,r,t){var a=[];return a.join("")+""}var n='SheetJS Table Export';var i="";function s(e,r,s){var o=r||{};var l=o.header!=null?o.header:n;var f=o.footer!=null?o.footer:i;var c=[l];var u=Qr(e["!ref"]);o.dense=Array.isArray(e);c.push(a(e,u,o));for(var h=u.s.r;h<=u.e.r;++h)c.push(t(e,u,h,o));c.push("
    "+f);return c.join("")}return{to_workbook:r,to_sheet:e,_row:t,BEGIN:n,END:i,_preamble:a,from_sheet:s}}();function Ov(e,r){var t=r||{};if(c!=null)t.dense=c;var a=t.dense?[]:{};var n=e.getElementsByTagName("tr");var i={s:{r:0,c:0},e:{r:n.length-1,c:0}};var s=[],o=0;var l=0,f=0,u=0,h=0,d=0;for(;l0||d>1)s.push({s:{r:l,c:u},e:{r:l+(h||1)-1,c:u+d-1}});var k={t:"s",v:m};if(m!=null){if(m.length==0)k.t="z";else if(t.raw){}else if(m.trim().length==0)k.t="s";else if(m==="TRUE")k={t:"b",v:true};else if(m==="FALSE")k={t:"b",v:false};else if(!isNaN(G(m)))k={t:"n",v:G(m)};else if(!isNaN(j(m).getDate())){k={t:"d",v:H(m)};if(!t.cellDates)k={t:"n",v:P(k.v)};k.z=t.dateNF||E._table[14]}}if(t.dense){if(!a[l])a[l]=[];a[l][u]=k}else a[Yr({c:u,r:l})]=k;if(i.e.c/g," ").replace(/<[^>]*>/g,""))};var r={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"]};return function t(a,n){var i=n||{};if(c!=null&&i.dense==null)i.dense=c;var s=Kd(a);var o=[],l;var f;var u={name:""},h="",d=0;var v;var p;var b={},m=[];var g=i.dense?[]:{};var E,k;var S={value:""};var w="",B=0,C;var _=-1,T=-1,x={s:{r:1e6,c:1e7},e:{r:0,c:0}};var I={};var A=[],y={},R=0,D=0;var O=[];var F=[],N={};var M="",U=0;var W=1,z=false;var X=0;Yd.lastIndex=0;s=s.replace(//gm,"").replace(//gm,"");while(E=Yd.exec(s))switch(E[3]=E[3].replace(/_.*$/,"")){case"table":;case"工作表":if(E[1]==="/"){if(x.e.c>=x.s.c&&x.e.r>=x.s.r)g["!ref"]=Jr(x);if(A.length)g["!merges"]=A;v.name=_e(v["名称"]||v.name);m.push(v.name);b[v.name]=g}else if(E[0].charAt(E[0].length-2)!=="/"){v=ue(E[0],false);_=T=-1;x.s.r=x.s.c=1e7;x.e.r=x.e.c=0;g=i.dense?[]:{};A=[]}break;case"table-row":;case"行":if(E[1]==="/")break;p=ue(E[0],false);if(p["行号"])_=p["行号"]-1;else++_;T=-1;break;case"covered-table-cell":++T;if(i.sheetStubs){if(i.dense){if(!g[_])g[_]=[];g[_][T]={t:"z"}}else g[Yr({r:_,c:T})]={t:"z"}}break;case"table-cell":;case"数据":if(E[0].charAt(E[0].length-2)==="/"){S=ue(E[0],false);if(S["number-columns-repeated"])T+=parseInt(S["number-columns-repeated"],10);else++T}else if(E[1]!=="/"){++T;W=1;if(T>x.e.c)x.e.c=T;if(_>x.e.r)x.e.r=_;if(T=O[X][0].s.r&&_<=O[X][0].e.r)if(T>=O[X][0].s.c&&T<=O[X][0].e.c)k.F=O[X][1]}if(S["number-columns-spanned"]||S["number-rows-spanned"]){R=parseInt(S["number-rows-spanned"],10)||0;D=parseInt(S["number-columns-spanned"],10)||0;y={s:{r:_,c:T},e:{r:_+R-1,c:T+D-1}};A.push(y)}if(S["number-columns-repeated"])W=parseInt(S["number-columns-repeated"],10);switch(k.t){case"boolean":k.t="b";k.v=Ce(S["boolean-value"]);break;case"float":k.t="n";k.v=parseFloat(S.value);break;case"percentage":k.t="n";k.v=parseFloat(S.value);break;case"currency":k.t="n";k.v=parseFloat(S.value);break;case"date":k.t="d";k.v=H(S["date-value"]);if(!i.cellDates){k.t="n";k.v=P(k.v)}k.z="m/d/yy";break;case"time":k.t="n";k.v=L(S["time-value"])/86400;break;case"number":k.t="n";k.v=parseFloat(S["数据数值"]);break;default:if(k.t==="string"||k.t==="text"||!k.t){k.t="s";if(S["string-value"]!=null)w=pe(S["string-value"])}else throw new Error("Unsupported value type "+k.t);}}else{z=false;if(k.t==="s"){k.v=w||"";z=B==0}if(F.length>0){k.c=F;F=[]}if(w&&i.cellText!==false)k.w=w;if(!z||i.sheetStubs){if(!(i.sheetRows&&i.sheetRows<_)){if(i.dense){if(!g[_])g[_]=[];g[_][T]=k;while(--W>0)g[_][++T]=V(k)}else{g[Yr({r:_,c:T})]=k;while(--W>0)g[Yr({r:_,c:++T})]=V(k)}if(x.e.c<=T)x.e.c=T}}else{T+=W;W=0}k={};w=""}break;case"document":;case"document-content":;case"电子表格文档":;case"spreadsheet":;case"主体":;case"scripts":;case"styles":;case"font-face-decls":if(E[1]==="/"){if((l=o.pop())[0]!==E[3])throw"Bad state: "+l}else if(E[0].charAt(E[0].length-2)!=="/")o.push([E[3],true]);break;case"annotation":if(E[1]==="/"){if((l=o.pop())[0]!==E[3])throw"Bad state: "+l;N.t=w;N.a=M;F.push(N)}else if(E[0].charAt(E[0].length-2)!=="/"){o.push([E[3],false])}M="";U=0;w="";B=0;break;case"creator":if(E[1]==="/"){M=s.slice(U,E.index)}else U=E.index+E[0].length;break;case"meta":;case"元数据":;case"settings":;case"config-item-set":;case"config-item-map-indexed":;case"config-item-map-entry":;case"config-item-map-named":;case"shapes":;case"frame":;case"text-box":;case"image":;case"data-pilot-tables":;case"list-style":;case"form":;case"dde-links":;case"event-listeners":if(E[1]==="/"){if((l=o.pop())[0]!==E[3])throw"Bad state: "+l}else if(E[0].charAt(E[0].length-2)!=="/")o.push([E[3],false]);w="";B=0;break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":;case"percentage-style":;case"date-style":;case"time-style":if(E[1]==="/"){I[u.name]=h;if((l=o.pop())[0]!==E[3])throw"Bad state: "+l}else if(E[0].charAt(E[0].length-2)!=="/"){h="";u=ue(E[0],false);o.push([E[3],true])}break;case"script":break;case"libraries":break;case"automatic-styles":break;case"master-styles":break;case"default-style":;case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(o[o.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"fraction":break;case"day":;case"month":;case"year":;case"era":;case"day-of-week":;case"week-of-year":;case"quarter":;case"hours":;case"minutes":;case"seconds":;case"am-pm":switch(o[o.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(E[0].slice(-2)==="/>")break;else if(E[1]==="/")switch(o[o.length-1][0]){case"number-style":;case"date-style":;case"time-style":h+=s.slice(d,E.index);break;}else d=E.index+E[0].length;break;case"text-content":break;case"text-properties":break;case"body":;case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-row-group":break;case"table-column-group":break;case"table-header-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"named-range":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":;case"文本串":if(E[1]==="/")w=(w.length>0?w+"\n":"")+e(s.slice(B,E.index),C);else{C=ue(E[0],false);B=E.index+E[0].length}break;case"database-range":if(E[1]==="/")break;try{var G=lu(ue(E[0])["target-range-address"]);b[G[0]]["!autofilter"]={ref:G[1]}}catch(j){}break;case"s":break;case"date":break;case"object":break;case"title":;case"标题":break;case"desc":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":;case"sender-lastname":;case"sender-initials":;case"sender-title":;case"sender-position":;case"sender-email":;case"sender-phone-private":;case"sender-fax":;case"sender-company":;case"sender-phone-work":;case"sender-street":;case"sender-city":;case"sender-postal-code":;case"sender-country":;case"sender-state-or-province":;case"author-name":;case"author-initials":;case"chapter":;case"file-name":;case"template-name":;case"sheet-name":break;case"event-listener":break;case"initial-creator":;case"creation-date":;case"generator":;case"document-statistic":;case"user-defined":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":;case"source-cell-range":;case"source-service":;case"data-pilot-field":;case"data-pilot-level":;case"data-pilot-subtotals":;case"data-pilot-subtotal":;case"data-pilot-members":;case"data-pilot-member":;case"data-pilot-display-info":;case"data-pilot-sort-info":;case"data-pilot-layout-info":;case"data-pilot-field-reference":;case"data-pilot-groups":;case"data-pilot-group":;case"data-pilot-group-member":break;case"rect":break;case"dde-connection-decls":;case"dde-connection-decl":;case"dde-link":;case"dde-source":break;case"properties":break;case"property":break;case"a":break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:if(E[2]==="dc:")break;if(E[2]==="draw:")break;if(E[2]==="style:")break;if(E[2]==="form:")break;if(E[2]==="calcext:")break;if(E[2]==="loext:")break;if(E[2]==="uof:")break;if(E[2]==="表:")break;if(E[2]==="字:")break;if(i.WTF)throw new Error(E);}var K={Sheets:b,SheetNames:m};return K}}();function Nv(e,r){r=r||{};var t=!!J(e,"objectdata");if(t)var a=ga(ee(e,"META-INF/manifest.xml"),r);var n=re(e,"content.xml");if(!n)throw new Error("Missing content.xml in "+(t?"ODS":"UOF")+" file");var i=Pv(t?n:_e(n),r);if(J(e,"meta.xml"))i.Props=Ta(ee(e,"meta.xml"));return i}function Lv(e,r){return Pv(e,r)}var Mv=function(){var e='';return function r(t,a){return e}}();var Uv=function(){var e=" \n";var r=" \n";var t=function(t,a,n,i){var s=[];s.push(' \n');var o=0,l=0,f=Qr(t["!ref"]);var c=t["!merges"]||[],u=0;var h=Array.isArray(t);for(o=0;o\n");for(;o<=f.e.r;++o){s.push(" \n");for(l=0;ll)continue;if(c[u].s.r>o)continue;if(c[u].e.c\n")}s.push(" \n");return s.join("")};var a=function(e){e.push(" \n");e.push(' \n');e.push(' \n');e.push(" /\n");e.push(' \n');e.push(" /\n");e.push(" \n");e.push(" \n");e.push(' \n');e.push(" \n")};return function n(e,r){var n=[se];var i=Me({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Me({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods")n.push("\n");else n.push("\n");a(n);n.push(" \n");n.push(" \n");for(var o=0;o!=e.SheetNames.length;++o)n.push(t(e.Sheets[e.SheetNames[o]],e,o,r));n.push(" \n");n.push(" \n");if(r.bookType=="fods")n.push("");else n.push("");return n.join("")}}();function Hv(e,r){if(r.bookType=="fods")return Uv(e,r);var t=new ae;var a="";var n=[];var i=[];a="mimetype";t.file(a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";t.file(a,Uv(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";t.file(a,Mv(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="manifest.rdf";t.file(a,wa(i,r));n.push([a,"application/rdf+xml"]);a="meta.xml";t.file(a,Ba(e,r));n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="META-INF/manifest.xml";t.file(a,Ea(n,r));return t}function Wv(e){return function r(t,a){var n=0;for(var i=0;i-1)return"sheet";if(ua.CS&&e==ua.CS)return"chart"; -if(ua.DS&&e==ua.DS)return"dialog";if(ua.MS&&e==ua.MS)return"macro";return e&&e.length?e:"sheet"}function qv(e,r){if(!e)return 0;try{e=r.map(function a(r){if(!r.id)r.id=r.strRelID;return[r.name,e["!id"][r.id].Target,Jv(e["!id"][r.id].Type)]})}catch(t){return null}return!e||e.length===0?null:e}function ep(e,r,t,a,n,i,s,o,l,f,c){try{n[a]=da(re(e,t,true),r);var u=ee(e,r);switch(s){case"sheet":i[a]=kd(u,r,o,n[a],l,f,c);break;case"chart":var h=Sd(u,r,o,n[a],l,f,c);i[a]=h;if(!h||!h["!chart"])break;var d=ie(h["!chart"].Target,r);var v=ha(d);var p=Xl(re(e,d,true),da(re(e,v,true),d));var b=ie(p,d);var m=ha(b);h=Nh(re(e,b,true),b,o,da(re(e,m,true),b),l,h);break;case"macro":i[a]=wd(u,r,o,n[a],l,f,c);break;case"dialog":i[a]=Bd(u,r,o,n[a],l,f,c);break;}}catch(g){if(o.WTF)throw g}}var rp=function qp(e){return e.slice(-1)!="/"};function tp(e){return e.charAt(0)=="/"?e.slice(1):e}function ap(e,r){k(E);r=r||{};Zv(r);a();if(J(e,"META-INF/manifest.xml"))return Nv(e,r);if(J(e,"objectdata.xml"))return Nv(e,r);var t=I(e.files).filter(rp).sort();var i=oa(re(e,"[Content_Types].xml"),r);var s=false;var o,l;if(i.workbooks.length===0){l="xl/workbook.xml";if(ee(e,l,true))i.workbooks.push(l)}if(i.workbooks.length===0){l="xl/workbook.bin";if(!ee(e,l,true))throw new Error("Could not find workbook");i.workbooks.push(l);s=true}if(i.workbooks[0].slice(-3)=="bin")s=true;if(s)n(1200);var f={};var c={};if(!r.bookSheets&&!r.bookProps){fu=[];if(i.sst)fu=Td(ee(e,tp(i.sst)),i.sst,r);if(r.cellStyles&&i.themes.length)f=_d(re(e,i.themes[0].replace(/^\//,""),true)||"",i.themes[0],r);if(i.style)c=Cd(ee(e,tp(i.style)),i.style,f,r)}var u=i.links.map(function(t){return Ad(ee(e,tp(t)),t,r)});var h=Ed(ee(e,tp(i.workbooks[0])),i.workbooks[0],r);var d={},v="";if(i.coreprops.length){v=ee(e,tp(i.coreprops[0]),true);if(v)d=Ta(v);if(i.extprops.length!==0){v=ee(e,tp(i.extprops[0]),true);if(v)Ra(v,d,r)}}var p={};if(!r.bookSheets||r.bookProps){if(i.custprops.length!==0){v=re(e,tp(i.custprops[0]),true);if(v)p=Pa(v,r)}}var b={};if(r.bookSheets||r.bookProps){if(h.Sheets)o=h.Sheets.map(function D(e){return e.name});else if(d.Worksheets&&d.SheetNames.length>0)o=d.SheetNames;if(r.bookProps){b.Props=d;b.Custprops=p}if(r.bookSheets&&typeof o!=="undefined")b.SheetNames=o;if(r.bookSheets?b.SheetNames:r.bookProps)return b}o={};var m={};if(r.bookDeps&&i.calcchain)m=Id(ee(e,tp(i.calcchain)),i.calcchain,r);var g=0;var S={};var w,B;{var C=h.Sheets;d.Worksheets=C.length;d.SheetNames=[];for(var _=0;_!=C.length;++_){d.SheetNames[_]=C[_].name}}var T=s?"bin":"xml";var x="xl/_rels/workbook."+T+".rels";var A=da(re(e,x,true),x);if(A)A=qv(A,h.Sheets);var y=ee(e,"xl/worksheets/sheet.xml",true)?1:0;for(g=0;g!=d.Worksheets;++g){var R="sheet";if(A&&A[g]){w="xl/"+A[g][1].replace(/[\/]?xl\//,"");R=A[g][2]}else{w="xl/worksheets/sheet"+(g+1-y)+"."+T;w=w.replace(/sheet0\./,"sheet.")}B=w.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");ep(e,w,B,d.SheetNames[g],S,o,R,r,h,f,c)}if(i.comments)Kl(e,i.comments,o,S,r);b={Directory:i,Workbook:h,Props:d,Custprops:p,Deps:m,Sheets:o,SheetNames:d.SheetNames,Strings:fu,Styles:c,Themes:f,SSF:E.get_table()};if(r.bookFiles){b.keys=t;b.files=e.files}if(r.bookVBA){if(i.vba.length>0)b.vbaraw=ee(e,tp(i.vba[0]),true);else if(i.defaults&&i.defaults.bin==="application/vnd.ms-office.vbaProject")b.vbaraw=ee(e,"xl/vbaProject.bin",true)}return b}function np(e,r){var t="Version";var a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var n=zs(a.content);t="DataSpaceMap";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var i=Xs(a.content);if(i.length!=1||i[0].comps.length!=1||i[0].comps[0].t!=0||i[0].name!="StrongEncryptionDataSpace"||i[0].comps[0].v!="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+t);t="StrongEncryptionDataSpace";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var s=Gs(a.content);if(s.length!=1||s[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+t);t="!Primary";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var o=Ks(a.content);t="EncryptionInfo";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var l=Zs(a.content);throw new Error("File is password-protected")}function ip(e,r){Gl=1024;if(r.bookType=="ods")return Hv(e,r);if(e&&!e.SSF){e.SSF=E.get_table()}if(e&&e.SSF){k(E);E.load_table(e.SSF);r.revssf=R(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;var t=r.bookType=="xlsb"?"bin":"xml";var a=r.bookType=="xlsb"||r.bookType=="xlsm";var n=sa();Qv(r=r||{});var i=new ae;var s="",o=0;r.cellXfs=[];vu(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";i.file(s,Aa(e.Props,r));n.coreprops.push(s);ba(r.rels,2,s,ua.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else e.Props.SheetNames=e.SheetNames.map(function(r,t){return[(e.Workbook.Sheets[t]||{}).Hidden!=2,r]}).filter(function(e){return e[0]}).map(function(e){return e[1]});e.Props.Worksheets=e.Props.SheetNames.length;i.file(s,Oa(e.Props,r));n.extprops.push(s);ba(r.rels,3,s,ua.EXT_PROPS);if(e.Custprops!==e.Props&&I(e.Custprops||{}).length>0){s="docProps/custom.xml";i.file(s,La(e.Custprops,r));n.custprops.push(s);ba(r.rels,4,s,ua.CUST_PROPS)}s="xl/workbook."+t;i.file(s,yd(e,s,r));n.workbooks.push(s);ba(r.rels,1,s,ua.WB);for(o=1;o<=e.SheetNames.length;++o){var l={"!id":{}};var f=e.Sheets[e.SheetNames[o-1]];var c=(f||{})["!type"]||"sheet";switch(c){case"chart":;default:s="xl/worksheets/sheet"+o+"."+t;i.file(s,Rd(o-1,s,r,e,l));n.sheets.push(s);ba(r.wbrels,-1,"worksheets/sheet"+o+"."+t,ua.WS[0]);}if(f){var u=f["!comments"];if(u&&u.length>0){var h="xl/comments"+o+"."+t;i.file(h,Pd(u,h,r));n.comments.push(h);ba(l,-1,"../comments"+o+"."+t,ua.CMNT)}if(f["!legacy"]){i.file("xl/drawings/vmlDrawing"+o+".vml",jl(o,f["!comments"]))}delete f["!comments"];delete f["!legacy"]}if(l["!id"].rId1)i.file(ha(s),pa(l))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;i.file(s,Fd(r.Strings,s,r));n.strs.push(s);ba(r.wbrels,-1,"sharedStrings."+t,ua.SST)}s="xl/theme/theme1.xml";i.file(s,Il(e.Themes,r));n.themes.push(s);ba(r.wbrels,-1,"theme/theme1.xml",ua.THEME);s="xl/styles."+t;i.file(s,Od(e,s,r));n.styles.push(s);ba(r.wbrels,-1,"styles."+t,ua.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";i.file(s,e.vbaraw);n.vba.push(s);ba(r.wbrels,-1,"vbaProject.bin",ua.VBA)}i.file("[Content_Types].xml",ca(n,r));i.file("_rels/.rels",pa(r.rels));i.file("xl/_rels/workbook."+t+".rels",pa(r.wbrels));delete r.revssf;delete r.ssf;return i}function sp(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3]];case"base64":t=h.decode(e.substr(0,24));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}function op(e,r){if(T.find(e,"EncryptedPackage"))return np(e,r);return vv(e,r)}function lp(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=d&&Buffer.isBuffer(e)?"buffer":"base64";switch(n.type){case"base64":t=new ae(a,{base64:true});break;case"binary":;case"array":t=new ae(a,{base64:false});break;case"buffer":t=new ae(a);break;default:throw new Error("Unrecognized type "+n.type);}return ap(t,n)}function fp(e,r){var t=0;e:while(t=2&&n[3]==0)return ws.to_workbook(a,s);break;case 3:;case 131:;case 139:return ms.to_workbook(a,s);case 123:if(n[1]==92&&n[2]==114&&n[3]==116)return fo.to_workbook(a,s);break;case 10:;case 13:;case 32:return cp(a,s);}if(n[2]<=12&&n[3]<=31)return ms.to_workbook(a,s);if(32>n[0]||n[0]>127)throw new Error("Unsupported file "+n.join("|"));return dp(e,a,s,i)}function pp(e,r){var t=r||{};t.type="file";return vp(e,t)}function bp(e,r){var t=r||{};var a=ip(e,t);var n={};if(t.compression)n.compression="DEFLATE";switch(t.type){case"base64":n.type="base64";break;case"binary":n.type="string";break;case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");case"buffer":;case"file":n.type="nodebuffer";break;default:throw new Error("Unrecognized type "+t.type);}if(t.type==="file")return te.writeFileSync(t.file,a.generate(n));var i=a.generate(n);return t.type=="string"?_e(i):i}function mp(e,r){var t=r||{};var a=pv(e,t);switch(t.type){case"base64":;case"binary":break;case"buffer":;case"array":t.type="";break;case"file":return te.writeFileSync(t.file,T.write(a,{type:"buffer"}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");default:throw new Error("Unrecognized type "+t.type);}return T.write(a,t)}function gp(e,r,t){if(!t)t="";var a=t+e;switch(r.type){case"base64":return h.encode(Te(a));case"binary":return Te(a);case"string":return e;case"file":return te.writeFileSync(r.file,a,"utf8");case"buffer":{if(d)return new Buffer(a,"utf8");else return gp(a,{type:"binary"}).split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Ep(e,r){switch(r.type){case"base64":return h.encode(e);case"binary":return e;case"string":return e;case"file":return te.writeFileSync(r.file,e,"binary");case"buffer":{if(d)return new Buffer(e,"binary");else return e.split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function kp(e,r){switch(r.type){case"string":;case"base64":;case"binary":var t="";for(var a=0;a0)n=0;var v=Ur(f.s.r);var p=[];var b=[];var m=0,g=0;var E=Array.isArray(e);var k=f.s.r,S=0,w=0;if(E&&!e[k])e[k]=[];for(S=f.s.c;S<=f.e.c;++S){p[S]=Vr(S);t=E?e[k][S]:e[p[S]+v];switch(a){case 1:i[S]=S-f.s.c;break;case 2:i[S]=p[S];break;case 3:i[S]=c.header[S-f.s.c];break;default:if(t==null)continue;l=o=rt(t,null,c);g=0;for(w=0;w=0)c='"'+c.replace(Tp,'""')+'"'}else c="";f.push(c)}if(o.blankrows===false&&l)return null;return f.join(s)}function Ip(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=qr(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var o=a.RS!==undefined?a.RS:"\n",l=o.charCodeAt(0);var f=new RegExp((i=="|"?"\\|":i)+"+$");var c="",u=[];a.dense=Array.isArray(e);var h=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var v=n.s.c;v<=n.e.c;++v)if(!(h[v]||{}).hidden)u[v]=Vr(v);for(var p=n.s.r;p<=n.e.r;++p){if((d[p]||{}).hidden)continue;c=xp(e,n,p,u,s,l,i,a);if(c==null){continue}if(a.strip)c=c.replace(f,"");t.push(c+o)}delete a.dense;return t.join("")}function Ap(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=Ip(e,r);if(typeof cptable=="undefined"||r.type=="string")return t;var a=cptable.utils.encode(1200,t,"str");return"ÿþ"+a}function yp(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=qr(e["!ref"]),i="",s=[],o;var l=[];var f=Array.isArray(e);for(o=n.s.c;o<=n.e.c;++o)s[o]=Vr(o);for(var c=n.s.r;c<=n.e.r;++c){i=Ur(c);for(o=n.s.c;o<=n.e.c;++o){r=s[o]+i;t=f?(e[c]||[])[o]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;l[l.length]=r+"="+a}}return l}function Rp(e,r){var t=r||{};var a={};var n;var i={s:{c:0,r:0},e:{c:0,r:e.length}};var s=t.header||[],o=0;for(var l=0;l!=e.length;++l){Object.keys(e[l]).filter(function(r){return e[l].hasOwnProperty(r)}).forEach(function(r){if((o=s.indexOf(r))==-1)s[o=s.length]=r;var i=e[l][r];var f="z";var c="";if(typeof i=="number")f="n";else if(typeof i=="boolean")f="b";else if(typeof i=="string")f="s";else if(i instanceof Date){f="d";if(!t.cellDates){f="n";i=P(i)}c=t.dateNF||E._table[14]}a[Yr({c:o,r:l+1})]=n={t:f,v:i};if(c)n.z=c})}i.e.c=s.length-1;for(o=0;o=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}e.book_new=function(){return{SheetNames:[],Sheets:{}}};e.book_append_sheet=function(e,r,t){if(!t)for(var a=1;a<=65535;++a)if(e.SheetNames.indexOf(t="Sheet"+a)==-1)break;if(!t)throw new Error("Too many worksheets");Jh(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r};e.book_set_sheet_visibility=function(e,r,a){t(e,"Workbook",{});t(e.Workbook,"Sheets",[]);var i=n(e,r);t(e.Workbook.Sheets,i,{});switch(a){case 0:;case 1:;case 2:break;default:throw new Error("Bad sheet visibility setting "+a);}e.Workbook.Sheets[i].Hidden=a};r([["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]]);e.cell_set_number_format=function(e,r){e.z=r;return e};e.cell_set_hyperlink=function(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e};e.cell_add_comment=function(e,r,t){if(!e.c)e.c=[];e.c.push({t:r,a:t||"SheetJS"})};e.sheet_set_array_formula=function(e,r,t){var n=typeof r!="string"?r:qr(r);var i=typeof r=="string"?r:Jr(r);for(var s=n.s.r;s<=n.e.r;++s)for(var o=n.s.c;o<=n.e.c;++o){var l=a(e,s,o);l.t="n";l.F=i;delete l.v;if(s==n.s.r&&o==n.s.c)l.f=t}return e};return e})(Dp);if(d&&typeof require!="undefined")(function(){var e={}.Readable;var t=function(r,t){var a=e();var n="";var i=t==null?{}:t;if(r==null||r["!ref"]==null){a.push(null);return a}var s=qr(r["!ref"]);var o=i.FS!==undefined?i.FS:",",l=o.charCodeAt(0);var f=i.RS!==undefined?i.RS:"\n",c=f.charCodeAt(0);var u=new RegExp((o=="|"?"\\|":o)+"+$");var h="",d=[];i.dense=Array.isArray(r);var v=i.skipHidden&&r["!cols"]||[];var p=i.skipHidden&&r["!rows"]||[];for(var b=s.s.c;b<=s.e.c;++b)if(!(v[b]||{}).hidden)d[b]=Vr(b);var m=s.s.r;a._read=function(){if(m>s.e.r)return a.push(null);while(m<=s.e.r){++m;if((p[m-1]||{}).hidden)continue;h=xp(r,s,m-1,d,l,c,o,i);if(h!=null){if(i.strip)h=h.replace(u,"");a.push(h+f);break}}};return a};var a=function(r,t){var a=e();var n=t||{};var i=n.header!=null?n.header:Dv.BEGIN;var s=n.footer!=null?n.footer:Dv.END;a.push(i);var o=Qr(r["!ref"]);n.dense=Array.isArray(r);a.push(Dv._preamble(r,o,n));var l=o.s.r;var f=false;a._read=function(){if(l>o.e.r){if(!f){f=true;a.push(""+s)}return a.push(null)}while(l<=o.e.r){a.push(Dv._row(r,o,l,n));++l;break}};return a};r.stream={to_html:a,to_csv:t}})();r.parse_xlscfb=vv;r.parse_ods=Nv;r.parse_fods=Lv;r.write_ods=Hv;r.parse_zip=ap;r.read=vp;r.readFile=pp;r.readFileSync=pp;r.write=Sp;r.writeFile=Bp;r.writeFileSync=Bp;r.writeFileAsync=Cp;r.utils=Dp;r.SSF=E})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX;var ODS=XLSX; +var DO_NOT_EXPORT_CODEPAGE=true;var DO_NOT_EXPORT_JSZIP=true;(function(e){if("object"==typeof exports&&"undefined"!=typeof module&&"undefined"==typeof DO_NOT_EXPORT_JSZIP)module.exports=e();else if("function"==typeof define&&define.amd){JSZip=e();define([],e)}else{var r;"undefined"!=typeof window?r=window:"undefined"!=typeof global?r=global:"undefined"!=typeof $&&$.global?r=$.global:"undefined"!=typeof self&&(r=self),r.JSZip=e()}})(function(){var e,r,t;return function a(e,r,t){function n(s,l){if(!r[s]){if(!e[s]){var o=typeof require=="function"&&require;if(!l&&o)return o(s,!0);if(i)return i(s,!0);throw new Error("Cannot find module '"+s+"'")}var f=r[s]={exports:{}};e[s][0].call(f.exports,function(r){var t=e[s][1][r];return n(t?t:r)},f,f.exports,a,e,r,t)}return r[s].exports}var i=typeof require=="function"&&require;for(var s=0;s>2;o=(n&3)<<4|i>>4;f=(i&15)<<2|s>>6;c=s&63;if(isNaN(i)){f=c=64}else if(isNaN(s)){c=64}t=t+a.charAt(l)+a.charAt(o)+a.charAt(f)+a.charAt(c)}return t};t.decode=function(e,r){var t="";var n,i,s;var l,o,f,c;var u=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(u>4;i=(o&15)<<4|f>>2;s=(f&3)<<6|c;t=t+String.fromCharCode(n);if(f!=64){t=t+String.fromCharCode(i)}if(c!=64){t=t+String.fromCharCode(s)}}return t}},{}],2:[function(e,r,t){"use strict";function a(){this.compressedSize=0;this.uncompressedSize=0;this.crc32=0;this.compressionMethod=null;this.compressedContent=null}a.prototype={getContent:function(){return null},getCompressedContent:function(){return null}};r.exports=a},{}],3:[function(e,r,t){"use strict";t.STORE={magic:"\0\0",compress:function(e){return e},uncompress:function(e){return e},compressInputType:null,uncompressInputType:null};t.DEFLATE=e("./flate")},{"./flate":8}],4:[function(e,r,t){"use strict";var a=e("./utils");var n=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];r.exports=function i(e,r){if(typeof e==="undefined"||!e.length){return 0}var t=a.getTypeOf(e)!=="string";if(typeof r=="undefined"){r=0}var i=0;var s=0;var l=0;r=r^-1;for(var o=0,f=e.length;o>>8^i}return r^-1}},{"./utils":21}],5:[function(e,r,t){"use strict";var a=e("./utils");function n(e){this.data=null;this.length=0;this.index=0}n.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;t--){r=(r<<8)+this.byteAt(t)}this.index+=e;return r},readString:function(e){return a.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1)}};r.exports=n},{"./utils":21}],6:[function(e,r,t){"use strict";t.base64=false;t.binary=false;t.dir=false;t.createFolders=false;t.date=null;t.compression=null;t.comment=null},{}],7:[function(e,r,t){"use strict";var a=e("./utils");t.string2binary=function(e){return a.string2binary(e)};t.string2Uint8Array=function(e){return a.transformTo("uint8array",e)};t.uint8Array2String=function(e){return a.transformTo("string",e)};t.string2Blob=function(e){var r=a.transformTo("arraybuffer",e);return a.arrayBuffer2Blob(r)};t.arrayBuffer2Blob=function(e){return a.arrayBuffer2Blob(e)};t.transformTo=function(e,r){return a.transformTo(e,r)};t.getTypeOf=function(e){return a.getTypeOf(e)};t.checkSupport=function(e){return a.checkSupport(e)};t.MAX_VALUE_16BITS=a.MAX_VALUE_16BITS;t.MAX_VALUE_32BITS=a.MAX_VALUE_32BITS;t.pretty=function(e){return a.pretty(e)};t.findCompression=function(e){return a.findCompression(e)};t.isRegExp=function(e){return a.isRegExp(e)}},{"./utils":21}],8:[function(e,r,t){"use strict";var a=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Uint32Array!=="undefined";var n=e("pako");t.uncompressInputType=a?"uint8array":"array";t.compressInputType=a?"uint8array":"array";t.magic="\b\0";t.compress=function(e){return n.deflateRaw(e)};t.uncompress=function(e){return n.inflateRaw(e)}},{pako:24}],9:[function(e,r,t){"use strict";var a=e("./base64");function n(e,r){if(!(this instanceof n))return new n(e,r);this.files={};this.comment=null;this.root="";if(e){this.load(e,r)}this.clone=function(){var e=new n;for(var r in this){if(typeof this[r]!=="function"){e[r]=this[r]}}return e}}n.prototype=e("./object");n.prototype.load=e("./load");n.support=e("./support");n.defaults=e("./defaults");n.utils=e("./deprecatedPublicUtils");n.base64={encode:function(e){return a.encode(e)},decode:function(e){return a.decode(e)}};n.compressions=e("./compressions");r.exports=n},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(e,r,t){"use strict";var a=e("./base64");var n=e("./zipEntries");r.exports=function(e,r){var t,i,s,l;r=r||{};if(r.base64){e=a.decode(e)}i=new n(e,r);t=i.files;for(s=0;s>>8}return t};var k=function(){var e={},r,t;for(r=0;r0?e.substring(0,r):""};var C=function(e,r){if(e.slice(-1)!="/"){e+="/"}r=typeof r!=="undefined"?r:false;if(!this.files[e]){S.call(this,e,null,{dir:true,createFolders:r})}return this.files[e]};var _=function(e,r){var t=new c,a;if(e._data instanceof c){t.uncompressedSize=e._data.uncompressedSize;t.crc32=e._data.crc32;if(t.uncompressedSize===0||e.dir){r=f["STORE"];t.compressedContent="";t.crc32=0}else if(e._data.compressionMethod===r.magic){t.compressedContent=e._data.getCompressedContent()}else{a=e._data.getContent();t.compressedContent=r.compress(n.transformTo(r.compressInputType,a))}}else{a=b(e);if(!a||a.length===0||e.dir){r=f["STORE"];a=""}t.uncompressedSize=a.length;t.crc32=i(a);t.compressedContent=r.compress(n.transformTo(r.compressInputType,a))}t.compressedSize=t.compressedContent.length;t.compressionMethod=r.magic;return t};var T=function(e,r,t,a){var l=t.compressedContent,o=n.transformTo("string",h.utf8encode(r.name)),f=r.comment||"",c=n.transformTo("string",h.utf8encode(f)),u=o.length!==r.name.length,d=c.length!==f.length,v=r.options,p,b,m="",g="",k="",w,S;if(r._initialMetadata.dir!==r.dir){w=r.dir}else{w=v.dir}if(r._initialMetadata.date!==r.date){S=r.date}else{S=v.date}p=S.getHours();p=p<<6;p=p|S.getMinutes();p=p<<5;p=p|S.getSeconds()/2;b=S.getFullYear()-1980;b=b<<4;b=b|S.getMonth()+1;b=b<<5;b=b|S.getDate();if(u){g=E(1,1)+E(i(o),4)+o;m+="up"+E(g.length,2)+g}if(d){k=E(1,1)+E(this.crc32(c),4)+c;m+="uc"+E(k.length,2)+k}var B="";B+="\n\0";B+=u||d?"\0\b":"\0\0";B+=t.compressionMethod;B+=E(p,2);B+=E(b,2);B+=E(t.crc32,4);B+=E(t.compressedSize,4);B+=E(t.uncompressedSize,4);B+=E(o.length,2);B+=E(m.length,2);var C=s.LOCAL_FILE_HEADER+B+o+m;var _=s.CENTRAL_FILE_HEADER+"\0"+B+E(c.length,2)+"\0\0"+"\0\0"+(w===true?"\0\0\0":"\0\0\0\0")+E(a,4)+o+m+c;return{fileRecord:C,dirRecord:_,compressedObject:t}};var x={load:function(e,r){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(e){var r=[],t,a,n,i;for(t in this.files){if(!this.files.hasOwnProperty(t)){continue}n=this.files[t];i=new g(n.name,n._data,k(n.options));a=t.slice(this.root.length,t.length);if(t.slice(0,this.root.length)===this.root&&e(a,i)){r.push(i)}}return r},file:function(e,r,t){if(arguments.length===1){if(n.isRegExp(e)){var a=e;return this.filter(function(e,r){return!r.dir&&a.test(e)})}else{return this.filter(function(r,t){return!t.dir&&r===e})[0]||null}}else{e=this.root+e;S.call(this,e,r,t)}return this},folder:function(e){if(!e){return this}if(n.isRegExp(e)){return this.filter(function(r,t){return t.dir&&e.test(r)})}var r=this.root+e;var t=C.call(this,r);var a=this.clone();a.root=t.name;return a},remove:function(e){e=this.root+e;var r=this.files[e];if(!r){if(e.slice(-1)!="/"){e+="/"}r=this.files[e]}if(r&&!r.dir){delete this.files[e]}else{var t=this.filter(function(r,t){return t.name.slice(0,e.length)===e});for(var a=0;a=0;--i){if(this.data[i]===r&&this.data[i+1]===t&&this.data[i+2]===a&&this.data[i+3]===n){return i}}return-1};n.prototype.readData=function(e){this.checkOffset(e);if(e===0){return new Uint8Array(0)}var r=this.data.subarray(this.index,this.index+e);this.index+=e;return r};r.exports=n},{"./dataReader":5}],19:[function(e,r,t){"use strict";var a=e("./utils");var n=function(e){this.data=new Uint8Array(e);this.index=0};n.prototype={append:function(e){if(e.length!==0){e=a.transformTo("uint8array",e);this.data.set(e,this.index);this.index+=e.length}},finalize:function(){return this.data}};r.exports=n},{"./utils":21}],20:[function(e,r,t){"use strict";var a=e("./utils");var n=e("./support");var i=e("./nodeBuffer");var s=new Array(256);for(var l=0;l<256;l++){s[l]=l>=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1}s[254]=s[254]=1;var o=function(e){var r,t,a,i,s,l=e.length,o=0;for(i=0;i>>6;r[s++]=128|t&63}else if(t<65536){r[s++]=224|t>>>12;r[s++]=128|t>>>6&63;r[s++]=128|t&63}else{r[s++]=240|t>>>18;r[s++]=128|t>>>12&63;r[s++]=128|t>>>6&63;r[s++]=128|t&63}}return r};var f=function(e,r){var t;r=r||e.length;if(r>e.length){r=e.length}t=r-1;while(t>=0&&(e[t]&192)===128){t--}if(t<0){return r}if(t===0){return r}return t+s[e[t]]>r?t:r};var c=function(e){var r,t,n,i,l;var o=e.length;var f=new Array(o*2);for(n=0,t=0;t4){f[n++]=65533;t+=l-1;continue}i&=l===2?31:l===3?15:7;while(l>1&&t1){f[n++]=65533;continue}if(i<65536){f[n++]=i}else{i-=65536;f[n++]=55296|i>>10&1023;f[n++]=56320|i&1023}}if(f.length!==n){if(f.subarray){f=f.subarray(0,n)}else{f.length=n}}return a.applyFromCharCode(f)};t.utf8encode=function u(e){if(n.nodebuffer){return i(e,"utf-8")}return o(e)};t.utf8decode=function h(e){if(n.nodebuffer){return a.transformTo("nodebuffer",e).toString("utf-8")}e=a.transformTo(n.uint8array?"uint8array":"array",e);var r=[],t=0,i=e.length,s=65536;while(t1){try{if(s==="array"||s==="nodebuffer"){a.push(String.fromCharCode.apply(null,e.slice(l,Math.min(l+r,n))))}else{a.push(String.fromCharCode.apply(null,e.subarray(l,Math.min(l+r,n))))}l+=r}catch(f){r=Math.floor(r/2)}}return a.join("")}t.applyFromCharCode=o;function f(e,r){for(var t=0;t1){throw new Error("Multi-volumes zip are not supported")}},readLocalFiles:function(){var e,r;for(e=0;e0){r.windowBits=-r.windowBits}else if(r.gzip&&r.windowBits>0&&r.windowBits<16){r.windowBits+=16}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new l;this.strm.avail_out=0;var t=a.deflateInit2(this.strm,r.level,r.method,r.windowBits,r.memLevel,r.strategy);if(t!==c){throw new Error(s[t])}if(r.header){a.deflateSetHeader(this.strm,r.header)}};p.prototype.push=function(e,r){var t=this.strm;var s=this.options.chunkSize;var l,h;if(this.ended){return false}h=r===~~r?r:r===true?f:o;if(typeof e==="string"){t.input=i.string2buf(e)}else{t.input=e}t.next_in=0;t.avail_in=t.input.length;do{if(t.avail_out===0){t.output=new n.Buf8(s);t.next_out=0;t.avail_out=s}l=a.deflate(t,h);if(l!==u&&l!==c){this.onEnd(l);this.ended=true;return false}if(t.avail_out===0||t.avail_in===0&&h===f){if(this.options.to==="string"){this.onData(i.buf2binstring(n.shrinkBuf(t.output,t.next_out)))}else{this.onData(n.shrinkBuf(t.output,t.next_out))}}}while((t.avail_in>0||t.avail_out===0)&&l!==u);if(h===f){l=a.deflateEnd(this.strm);this.onEnd(l);this.ended=true;return l===c}return true};p.prototype.onData=function(e){this.chunks.push(e)};p.prototype.onEnd=function(e){if(e===c){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=n.flattenChunks(this.chunks)}}this.chunks=[];this.err=e;this.msg=this.strm.msg};function b(e,r){var t=new p(r);t.push(e,true);if(t.err){throw t.msg}return t.result}function m(e,r){r=r||{};r.raw=true;return b(e,r)}function g(e,r){r=r||{};r.gzip=true;return b(e,r)}t.Deflate=p;t.deflate=b;t.deflateRaw=m;t.gzip=g},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(e,r,t){"use strict";var a=e("./zlib/inflate.js");var n=e("./utils/common");var i=e("./utils/strings");var s=e("./zlib/constants");var l=e("./zlib/messages");var o=e("./zlib/zstream");var f=e("./zlib/gzheader");var c=function(e){this.options=n.assign({chunkSize:16384,windowBits:0,to:""},e||{});var r=this.options;if(r.raw&&r.windowBits>=0&&r.windowBits<16){r.windowBits=-r.windowBits;if(r.windowBits===0){r.windowBits=-15}}if(r.windowBits>=0&&r.windowBits<16&&!(e&&e.windowBits)){r.windowBits+=32}if(r.windowBits>15&&r.windowBits<48){if((r.windowBits&15)===0){r.windowBits|=15}}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new o;this.strm.avail_out=0;var t=a.inflateInit2(this.strm,r.windowBits);if(t!==s.Z_OK){throw new Error(l[t])}this.header=new f;a.inflateGetHeader(this.strm,this.header)};c.prototype.push=function(e,r){var t=this.strm;var l=this.options.chunkSize;var o,f;var c,u,h;if(this.ended){return false}f=r===~~r?r:r===true?s.Z_FINISH:s.Z_NO_FLUSH;if(typeof e==="string"){t.input=i.binstring2buf(e)}else{t.input=e}t.next_in=0;t.avail_in=t.input.length;do{if(t.avail_out===0){t.output=new n.Buf8(l);t.next_out=0;t.avail_out=l}o=a.inflate(t,s.Z_NO_FLUSH);if(o!==s.Z_STREAM_END&&o!==s.Z_OK){this.onEnd(o);this.ended=true;return false}if(t.next_out){if(t.avail_out===0||o===s.Z_STREAM_END||t.avail_in===0&&f===s.Z_FINISH){if(this.options.to==="string"){c=i.utf8border(t.output,t.next_out);u=t.next_out-c;h=i.buf2string(t.output,c);t.next_out=u;t.avail_out=l-u;if(u){n.arraySet(t.output,t.output,c,u,0)}this.onData(h)}else{this.onData(n.shrinkBuf(t.output,t.next_out))}}}}while(t.avail_in>0&&o!==s.Z_STREAM_END);if(o===s.Z_STREAM_END){f=s.Z_FINISH}if(f===s.Z_FINISH){o=a.inflateEnd(this.strm);this.onEnd(o);this.ended=true;return o===s.Z_OK}return true};c.prototype.onData=function(e){this.chunks.push(e)};c.prototype.onEnd=function(e){if(e===s.Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=n.flattenChunks(this.chunks)}}this.chunks=[];this.err=e;this.msg=this.strm.msg};function u(e,r){var t=new c(r);t.push(e,true);if(t.err){throw t.msg}return t.result}function h(e,r){r=r||{};r.raw=true;return u(e,r)}t.Inflate=c;t.inflate=u;t.inflateRaw=h;t.ungzip=u},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(e,r,t){"use strict";var a=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";t.assign=function(e){var r=Array.prototype.slice.call(arguments,1);while(r.length){var t=r.shift();if(!t){continue}if(typeof t!=="object"){throw new TypeError(t+"must be non-object")}for(var a in t){if(t.hasOwnProperty(a)){e[a]=t[a]}}}return e};t.shrinkBuf=function(e,r){if(e.length===r){return e}if(e.subarray){return e.subarray(0,r)}e.length=r;return e};var n={arraySet:function(e,r,t,a,n){if(r.subarray&&e.subarray){e.set(r.subarray(t,t+a),n);return}for(var i=0;i=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1}l[254]=l[254]=1;t.string2buf=function(e){var r,t,n,i,s,l=e.length,o=0;for(i=0;i>>6;r[s++]=128|t&63}else if(t<65536){r[s++]=224|t>>>12;r[s++]=128|t>>>6&63;r[s++]=128|t&63}else{r[s++]=240|t>>>18;r[s++]=128|t>>>12&63;r[s++]=128|t>>>6&63;r[s++]=128|t&63}}return r};function f(e,r){if(r<65537){if(e.subarray&&i||!e.subarray&&n){return String.fromCharCode.apply(null,a.shrinkBuf(e,r))}}var t="";for(var s=0;s4){o[a++]=65533;t+=i-1;continue}n&=i===2?31:i===3?15:7;while(i>1&&t1){o[a++]=65533;continue}if(n<65536){o[a++]=n}else{n-=65536;o[a++]=55296|n>>10&1023;o[a++]=56320|n&1023}}return f(o,a)};t.utf8border=function(e,r){var t;r=r||e.length;if(r>e.length){r=e.length}t=r-1;while(t>=0&&(e[t]&192)===128){t--}if(t<0){return r}if(t===0){return r}return t+l[e[t]]>r?t:r}},{"./common":27}],29:[function(e,r,t){"use strict";function a(e,r,t,a){var n=e&65535|0,i=e>>>16&65535|0,s=0;while(t!==0){s=t>2e3?2e3:t;t-=s;do{n=n+r[a++]|0;i=i+n|0}while(--s);n%=65521;i%=65521}return n|i<<16|0}r.exports=a},{}],30:[function(e,r,t){r.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(e,r,t){"use strict";function a(){var e,r=[];for(var t=0;t<256;t++){e=t;for(var a=0;a<8;a++){e=e&1?3988292384^e>>>1:e>>>1}r[t]=e}return r}var n=a();function i(e,r,t,a){var i=n,s=a+t;e=e^-1;for(var l=a;l>>8^i[(e^r[l])&255]}return e^-1}r.exports=i},{}],32:[function(e,r,t){"use strict";var a=e("../utils/common");var n=e("./trees");var i=e("./adler32");var s=e("./crc32");var l=e("./messages");var o=0;var f=1;var c=3;var u=4;var h=5;var d=0;var v=1;var p=-2;var b=-3;var m=-5;var g=-1;var E=1;var k=2;var w=3;var S=4;var B=0;var C=2;var _=8;var T=9;var x=15;var I=8;var A=29;var y=256;var R=y+1+A;var D=30;var O=19;var F=2*R+1;var P=15;var N=3;var L=258;var M=L+N+1;var U=32;var H=42;var W=69;var z=73;var V=91;var X=103;var G=113;var j=666;var K=1;var Y=2;var $=3;var Z=4;var Q=3;function J(e,r){e.msg=l[r];return r}function q(e){return(e<<1)-(e>4?9:0)}function ee(e){var r=e.length;while(--r>=0){e[r]=0}}function re(e){var r=e.state;var t=r.pending;if(t>e.avail_out){t=e.avail_out}if(t===0){return}a.arraySet(e.output,r.pending_buf,r.pending_out,t,e.next_out);e.next_out+=t;r.pending_out+=t;e.total_out+=t;e.avail_out-=t;r.pending-=t;if(r.pending===0){r.pending_out=0}}function te(e,r){n._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,r);e.block_start=e.strstart;re(e.strm)}function ae(e,r){e.pending_buf[e.pending++]=r}function ne(e,r){e.pending_buf[e.pending++]=r>>>8&255;e.pending_buf[e.pending++]=r&255}function ie(e,r,t,n){var l=e.avail_in;if(l>n){l=n}if(l===0){return 0}e.avail_in-=l;a.arraySet(r,e.input,e.next_in,l,t);if(e.state.wrap===1){e.adler=i(e.adler,r,l,t)}else if(e.state.wrap===2){e.adler=s(e.adler,r,l,t)}e.next_in+=l;e.total_in+=l;return l}function se(e,r){var t=e.max_chain_length;var a=e.strstart;var n;var i;var s=e.prev_length;var l=e.nice_match;var o=e.strstart>e.w_size-M?e.strstart-(e.w_size-M):0;var f=e.window;var c=e.w_mask;var u=e.prev;var h=e.strstart+L;var d=f[a+s-1];var v=f[a+s];if(e.prev_length>=e.good_match){t>>=2}if(l>e.lookahead){l=e.lookahead}do{n=r;if(f[n+s]!==v||f[n+s-1]!==d||f[n]!==f[a]||f[++n]!==f[a+1]){continue}a+=2;n++;do{}while(f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&f[++a]===f[++n]&&as){e.match_start=r;s=i;if(i>=l){break}d=f[a+s-1];v=f[a+s]}}while((r=u[r&c])>o&&--t!==0);if(s<=e.lookahead){return s}return e.lookahead}function le(e){var r=e.w_size;var t,n,i,s,l;do{s=e.window_size-e.lookahead-e.strstart;if(e.strstart>=r+(r-M)){a.arraySet(e.window,e.window,r,r,0);e.match_start-=r;e.strstart-=r;e.block_start-=r;n=e.hash_size;t=n;do{i=e.head[--t];e.head[t]=i>=r?i-r:0}while(--n);n=r;t=n;do{i=e.prev[--t];e.prev[t]=i>=r?i-r:0}while(--n);s+=r}if(e.strm.avail_in===0){break}n=ie(e.strm,e.window,e.strstart+e.lookahead,s);e.lookahead+=n;if(e.lookahead+e.insert>=N){l=e.strstart-e.insert;e.ins_h=e.window[l];e.ins_h=(e.ins_h<e.pending_buf_size-5){t=e.pending_buf_size-5}for(;;){if(e.lookahead<=1){le(e);if(e.lookahead===0&&r===o){return K}if(e.lookahead===0){break}}e.strstart+=e.lookahead;e.lookahead=0;var a=e.block_start+t;if(e.strstart===0||e.strstart>=a){e.lookahead=e.strstart-a;e.strstart=a;te(e,false);if(e.strm.avail_out===0){return K}}if(e.strstart-e.block_start>=e.w_size-M){te(e,false);if(e.strm.avail_out===0){return K}}}e.insert=0;if(r===u){te(e,true);if(e.strm.avail_out===0){return $}return Z}if(e.strstart>e.block_start){te(e,false);if(e.strm.avail_out===0){return K}}return K}function fe(e,r){var t;var a;for(;;){if(e.lookahead=N){e.ins_h=(e.ins_h<=N){a=n._tr_tally(e,e.strstart-e.match_start,e.match_length-N);e.lookahead-=e.match_length;if(e.match_length<=e.max_lazy_match&&e.lookahead>=N){e.match_length--;do{e.strstart++;e.ins_h=(e.ins_h<=N){e.ins_h=(e.ins_h<4096)){e.match_length=N-1}}if(e.prev_length>=N&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-N;a=n._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-N);e.lookahead-=e.prev_length-1;e.prev_length-=2;do{if(++e.strstart<=i){e.ins_h=(e.ins_h<=N&&e.strstart>0){i=e.strstart-1;a=l[i];if(a===l[++i]&&a===l[++i]&&a===l[++i]){s=e.strstart+L;do{}while(a===l[++i]&&a===l[++i]&&a===l[++i]&&a===l[++i]&&a===l[++i]&&a===l[++i]&&a===l[++i]&&a===l[++i]&&ie.lookahead){e.match_length=e.lookahead}}}if(e.match_length>=N){t=n._tr_tally(e,1,e.match_length-N);e.lookahead-=e.match_length;e.strstart+=e.match_length;e.match_length=0}else{t=n._tr_tally(e,0,e.window[e.strstart]);e.lookahead--;e.strstart++}if(t){te(e,false);if(e.strm.avail_out===0){return K}}}e.insert=0;if(r===u){te(e,true);if(e.strm.avail_out===0){return $}return Z}if(e.last_lit){te(e,false);if(e.strm.avail_out===0){return K}}return Y}function he(e,r){var t;for(;;){if(e.lookahead===0){le(e);if(e.lookahead===0){if(r===o){return K}break}}e.match_length=0;t=n._tr_tally(e,0,e.window[e.strstart]);e.lookahead--;e.strstart++;if(t){te(e,false);if(e.strm.avail_out===0){return K}}}e.insert=0;if(r===u){te(e,true);if(e.strm.avail_out===0){return $}return Z}if(e.last_lit){te(e,false);if(e.strm.avail_out===0){return K}}return Y}var de=function(e,r,t,a,n){this.good_length=e;this.max_lazy=r;this.nice_length=t;this.max_chain=a;this.func=n};var ve;ve=[new de(0,0,0,0,oe),new de(4,4,8,4,fe),new de(4,5,16,8,fe),new de(4,6,32,32,fe),new de(4,4,16,16,ce),new de(8,16,32,32,ce),new de(8,16,128,128,ce),new de(8,32,128,256,ce),new de(32,128,258,1024,ce),new de(32,258,258,4096,ce)];function pe(e){e.window_size=2*e.w_size;ee(e.head);e.max_lazy_match=ve[e.level].max_lazy;e.good_match=ve[e.level].good_length;e.nice_match=ve[e.level].nice_length;e.max_chain_length=ve[e.level].max_chain;e.strstart=0;e.block_start=0;e.lookahead=0;e.insert=0;e.match_length=e.prev_length=N-1;e.match_available=0;e.ins_h=0}function be(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=_;this.last_flush=-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new a.Buf16(F*2);this.dyn_dtree=new a.Buf16((2*D+1)*2);this.bl_tree=new a.Buf16((2*O+1)*2);ee(this.dyn_ltree);ee(this.dyn_dtree);ee(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new a.Buf16(P+1);this.heap=new a.Buf16(2*R+1);ee(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new a.Buf16(2*R+1);ee(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0;this.bi_buf=0;this.bi_valid=0}function me(e){var r;if(!e||!e.state){return J(e,p)}e.total_in=e.total_out=0;e.data_type=C;r=e.state;r.pending=0;r.pending_out=0;if(r.wrap<0){r.wrap=-r.wrap}r.status=r.wrap?H:G;e.adler=r.wrap===2?0:1;r.last_flush=o;n._tr_init(r);return d}function ge(e){var r=me(e);if(r===d){pe(e.state)}return r}function Ee(e,r){if(!e||!e.state){return p}if(e.state.wrap!==2){return p}e.state.gzhead=r;return d}function ke(e,r,t,n,i,s){if(!e){return p}var l=1;if(r===g){r=6}if(n<0){l=0;n=-n}else if(n>15){l=2;n-=16}if(i<1||i>T||t!==_||n<8||n>15||r<0||r>9||s<0||s>S){return J(e,p)}if(n===8){n=9}var o=new be;e.state=o;o.strm=e;o.wrap=l;o.gzhead=null;o.w_bits=n;o.w_size=1<>1;o.l_buf=(1+2)*o.lit_bufsize;o.level=r;o.strategy=s;o.method=t;return ge(e)}function we(e,r){return ke(e,r,_,x,I,B)}function Se(e,r){var t,a;var i,l;if(!e||!e.state||r>h||r<0){return e?J(e,p):p}a=e.state;if(!e.output||!e.input&&e.avail_in!==0||a.status===j&&r!==u){return J(e,e.avail_out===0?m:p)}a.strm=e;t=a.last_flush;a.last_flush=r;if(a.status===H){if(a.wrap===2){e.adler=0;ae(a,31);ae(a,139);ae(a,8);if(!a.gzhead){ae(a,0);ae(a,0);ae(a,0);ae(a,0);ae(a,0);ae(a,a.level===9?2:a.strategy>=k||a.level<2?4:0);ae(a,Q);a.status=G}else{ae(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(!a.gzhead.extra?0:4)+(!a.gzhead.name?0:8)+(!a.gzhead.comment?0:16));ae(a,a.gzhead.time&255);ae(a,a.gzhead.time>>8&255);ae(a,a.gzhead.time>>16&255);ae(a,a.gzhead.time>>24&255);ae(a,a.level===9?2:a.strategy>=k||a.level<2?4:0);ae(a,a.gzhead.os&255);if(a.gzhead.extra&&a.gzhead.extra.length){ae(a,a.gzhead.extra.length&255);ae(a,a.gzhead.extra.length>>8&255)}if(a.gzhead.hcrc){e.adler=s(e.adler,a.pending_buf,a.pending,0)}a.gzindex=0;a.status=W}}else{var b=_+(a.w_bits-8<<4)<<8;var g=-1;if(a.strategy>=k||a.level<2){g=0}else if(a.level<6){g=1}else if(a.level===6){g=2}else{g=3}b|=g<<6;if(a.strstart!==0){b|=U}b+=31-b%31;a.status=G;ne(a,b);if(a.strstart!==0){ne(a,e.adler>>>16);ne(a,e.adler&65535)}e.adler=1}}if(a.status===W){if(a.gzhead.extra){i=a.pending;while(a.gzindex<(a.gzhead.extra.length&65535)){if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}re(e);i=a.pending;if(a.pending===a.pending_buf_size){break}}ae(a,a.gzhead.extra[a.gzindex]&255);a.gzindex++}if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}if(a.gzindex===a.gzhead.extra.length){a.gzindex=0;a.status=z}}else{a.status=z}}if(a.status===z){if(a.gzhead.name){i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}re(e);i=a.pending;if(a.pending===a.pending_buf_size){l=1;break}}if(a.gzindexi){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}if(l===0){a.gzindex=0;a.status=V}}else{a.status=V}}if(a.status===V){if(a.gzhead.comment){i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}re(e);i=a.pending;if(a.pending===a.pending_buf_size){l=1;break}}if(a.gzindexi){e.adler=s(e.adler,a.pending_buf,a.pending-i,i)}if(l===0){a.status=X}}else{a.status=X}}if(a.status===X){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size){re(e)}if(a.pending+2<=a.pending_buf_size){ae(a,e.adler&255);ae(a,e.adler>>8&255);e.adler=0;a.status=G}}else{a.status=G}}if(a.pending!==0){re(e);if(e.avail_out===0){a.last_flush=-1;return d}}else if(e.avail_in===0&&q(r)<=q(t)&&r!==u){return J(e,m)}if(a.status===j&&e.avail_in!==0){return J(e,m)}if(e.avail_in!==0||a.lookahead!==0||r!==o&&a.status!==j){var E=a.strategy===k?he(a,r):a.strategy===w?ue(a,r):ve[a.level].func(a,r);if(E===$||E===Z){a.status=j}if(E===K||E===$){if(e.avail_out===0){a.last_flush=-1}return d}if(E===Y){if(r===f){n._tr_align(a)}else if(r!==h){n._tr_stored_block(a,0,0,false);if(r===c){ee(a.head);if(a.lookahead===0){a.strstart=0;a.block_start=0;a.insert=0}}}re(e);if(e.avail_out===0){a.last_flush=-1;return d}}}if(r!==u){return d}if(a.wrap<=0){return v}if(a.wrap===2){ae(a,e.adler&255);ae(a,e.adler>>8&255);ae(a,e.adler>>16&255);ae(a,e.adler>>24&255);ae(a,e.total_in&255);ae(a,e.total_in>>8&255);ae(a,e.total_in>>16&255);ae(a,e.total_in>>24&255)}else{ne(a,e.adler>>>16);ne(a,e.adler&65535)}re(e);if(a.wrap>0){a.wrap=-a.wrap}return a.pending!==0?d:v}function Be(e){var r;if(!e||!e.state){return p}r=e.state.status;if(r!==H&&r!==W&&r!==z&&r!==V&&r!==X&&r!==G&&r!==j){return J(e,p)}e.state=null;return r===G?J(e,b):d}t.deflateInit=we;t.deflateInit2=ke;t.deflateReset=ge;t.deflateResetKeep=me;t.deflateSetHeader=Ee;t.deflate=Se;t.deflateEnd=Be;t.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(e,r,t){"use strict";function a(){this.text=0;this.time=0;this.xflags=0;this.os=0;this.extra=null;this.extra_len=0;this.name="";this.comment="";this.hcrc=0;this.done=false}r.exports=a},{}],34:[function(e,r,t){"use strict";var a=30;var n=12;r.exports=function i(e,r){var t;var i;var s;var l;var o;var f;var c;var u;var h;var d;var v;var p;var b;var m;var g;var E;var k;var w;var S;var B;var C;var _;var T;var x,I;t=e.state;i=e.next_in;x=e.input;s=i+(e.avail_in-5);l=e.next_out;I=e.output;o=l-(r-e.avail_out);f=l+(e.avail_out-257);c=t.dmax;u=t.wsize;h=t.whave;d=t.wnext;v=t.window;p=t.hold;b=t.bits;m=t.lencode;g=t.distcode;E=(1<>>24;p>>>=S;b-=S;S=w>>>16&255;if(S===0){I[l++]=w&65535}else if(S&16){B=w&65535;S&=15;if(S){if(b>>=S;b-=S}if(b<15){p+=x[i++]<>>24;p>>>=S;b-=S;S=w>>>16&255;if(S&16){C=w&65535;S&=15;if(bc){e.msg="invalid distance too far back";t.mode=a;break e}p>>>=S;b-=S;S=l-o;if(C>S){S=C-S;if(S>h){if(t.sane){e.msg="invalid distance too far back";t.mode=a;break e}}_=0;T=v;if(d===0){_+=u-S;if(S2){I[l++]=T[_++];I[l++]=T[_++];I[l++]=T[_++];B-=3}if(B){I[l++]=T[_++];if(B>1){I[l++]=T[_++]}}}else{_=l-C;do{I[l++]=I[_++];I[l++]=I[_++];I[l++]=I[_++];B-=3}while(B>2);if(B){I[l++]=I[_++];if(B>1){I[l++]=I[_++]}}}}else if((S&64)===0){w=g[(w&65535)+(p&(1<>3;i-=B;b-=B<<3;p&=(1<>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function ie(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new a.Buf16(320);this.work=new a.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function se(e){var r;if(!e||!e.state){return m}r=e.state;e.total_in=e.total_out=r.total=0;e.msg="";if(r.wrap){e.adler=r.wrap&1}r.mode=S;r.last=0;r.havedict=0;r.dmax=32768;r.head=null;r.hold=0;r.bits=0;r.lencode=r.lendyn=new a.Buf32(ee);r.distcode=r.distdyn=new a.Buf32(re);r.sane=1;r.back=-1;return v}function le(e){var r;if(!e||!e.state){return m}r=e.state;r.wsize=0;r.whave=0;r.wnext=0;return se(e)}function oe(e,r){var t;var a;if(!e||!e.state){return m}a=e.state;if(r<0){t=0;r=-r}else{t=(r>>4)+1;if(r<48){r&=15}}if(r&&(r<8||r>15)){return m}if(a.window!==null&&a.wbits!==r){a.window=null}a.wrap=t;a.wbits=r;return le(e)}function fe(e,r){var t;var a;if(!e){return m}a=new ie;e.state=a;a.window=null;t=oe(e,r);if(t!==v){e.state=null}return t}function ce(e){return fe(e,ae)}var ue=true;var he,de;function ve(e){if(ue){var r;he=new a.Buf32(512);de=new a.Buf32(32);r=0;while(r<144){e.lens[r++]=8}while(r<256){e.lens[r++]=9}while(r<280){e.lens[r++]=7}while(r<288){e.lens[r++]=8}l(f,e.lens,0,288,he,0,e.work,{bits:9});r=0;while(r<32){e.lens[r++]=5}l(c,e.lens,0,32,de,0,e.work,{bits:5});ue=false}e.lencode=he;e.lenbits=9;e.distcode=de;e.distbits=5}function pe(e,r,t,n){var i;var s=e.state;if(s.window===null){s.wsize=1<=s.wsize){a.arraySet(s.window,r,t-s.wsize,s.wsize,0);s.wnext=0;s.whave=s.wsize}else{i=s.wsize-s.wnext;if(i>n){i=n}a.arraySet(s.window,r,t-n,i,s.wnext);n-=i;if(n){a.arraySet(s.window,r,t-n,n,0);s.wnext=n;s.whave=s.wsize}else{s.wnext+=i;if(s.wnext===s.wsize){s.wnext=0}if(s.whave>>8&255;t.check=i(t.check,_e,2,0);le=0;oe=0;t.mode=B;break}t.flags=0;if(t.head){t.head.done=false}if(!(t.wrap&1)||(((le&255)<<8)+(le>>8))%31){e.msg="incorrect header check";t.mode=Q;break}if((le&15)!==w){e.msg="unknown compression method";t.mode=Q;break}le>>>=4;oe-=4;Be=(le&15)+8;if(t.wbits===0){t.wbits=Be}else if(Be>t.wbits){e.msg="invalid window size";t.mode=Q;break}t.dmax=1<>8&1}if(t.flags&512){_e[0]=le&255;_e[1]=le>>>8&255;t.check=i(t.check,_e,2,0)}le=0;oe=0;t.mode=C;case C:while(oe<32){if(ie===0){break e}ie--;le+=ee[te++]<>>8&255;_e[2]=le>>>16&255;_e[3]=le>>>24&255;t.check=i(t.check,_e,4,0)}le=0;oe=0;t.mode=_;case _:while(oe<16){if(ie===0){break e}ie--;le+=ee[te++]<>8}if(t.flags&512){_e[0]=le&255;_e[1]=le>>>8&255;t.check=i(t.check,_e,2,0)}le=0;oe=0;t.mode=T;case T:if(t.flags&1024){while(oe<16){if(ie===0){break e}ie--;le+=ee[te++]<>>8&255;t.check=i(t.check,_e,2,0)}le=0;oe=0}else if(t.head){t.head.extra=null}t.mode=x;case x:if(t.flags&1024){ue=t.length;if(ue>ie){ue=ie}if(ue){if(t.head){Be=t.head.extra_len-t.length;if(!t.head.extra){t.head.extra=new Array(t.head.extra_len)}a.arraySet(t.head.extra,ee,te,ue,Be)}if(t.flags&512){t.check=i(t.check,ee,ue,te)}ie-=ue;te+=ue;t.length-=ue}if(t.length){break e}}t.length=0;t.mode=I;case I:if(t.flags&2048){if(ie===0){break e}ue=0;do{Be=ee[te+ue++];if(t.head&&Be&&t.length<65536){t.head.name+=String.fromCharCode(Be)}}while(Be&&ue>9&1;t.head.done=true}e.adler=t.check=0;t.mode=O;break;case R:while(oe<32){if(ie===0){break e}ie--;le+=ee[te++]<>>=oe&7;oe-=oe&7;t.mode=Y;break}while(oe<3){if(ie===0){break e}ie--;le+=ee[te++]<>>=1;oe-=1;switch(le&3){case 0:t.mode=P;break;case 1:ve(t);t.mode=W;if(r===d){le>>>=2;oe-=2;break e}break;case 2:t.mode=M;break;case 3:e.msg="invalid block type";t.mode=Q;}le>>>=2;oe-=2;break;case P: +le>>>=oe&7;oe-=oe&7;while(oe<32){if(ie===0){break e}ie--;le+=ee[te++]<>>16^65535)){e.msg="invalid stored block lengths";t.mode=Q;break}t.length=le&65535;le=0;oe=0;t.mode=N;if(r===d){break e};case N:t.mode=L;case L:ue=t.length;if(ue){if(ue>ie){ue=ie}if(ue>se){ue=se}if(ue===0){break e}a.arraySet(re,ee,te,ue,ae);ie-=ue;te+=ue;se-=ue;ae+=ue;t.length-=ue;break}t.mode=O;break;case M:while(oe<14){if(ie===0){break e}ie--;le+=ee[te++]<>>=5;oe-=5;t.ndist=(le&31)+1;le>>>=5;oe-=5;t.ncode=(le&15)+4;le>>>=4;oe-=4;if(t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols";t.mode=Q;break}t.have=0;t.mode=U;case U:while(t.have>>=3;oe-=3}while(t.have<19){t.lens[Ie[t.have++]]=0}t.lencode=t.lendyn;t.lenbits=7;Te={bits:t.lenbits};Ce=l(o,t.lens,0,19,t.lencode,0,t.work,Te);t.lenbits=Te.bits;if(Ce){e.msg="invalid code lengths set";t.mode=Q;break}t.have=0;t.mode=H;case H:while(t.have>>24;ge=be>>>16&255;Ee=be&65535;if(me<=oe){break}if(ie===0){break e}ie--;le+=ee[te++]<>>=me;oe-=me;t.lens[t.have++]=Ee}else{if(Ee===16){xe=me+2;while(oe>>=me;oe-=me;if(t.have===0){e.msg="invalid bit length repeat";t.mode=Q;break}Be=t.lens[t.have-1];ue=3+(le&3);le>>>=2;oe-=2}else if(Ee===17){xe=me+3;while(oe>>=me;oe-=me;Be=0;ue=3+(le&7);le>>>=3;oe-=3}else{xe=me+7;while(oe>>=me;oe-=me;Be=0;ue=11+(le&127);le>>>=7;oe-=7}if(t.have+ue>t.nlen+t.ndist){e.msg="invalid bit length repeat";t.mode=Q;break}while(ue--){t.lens[t.have++]=Be}}}if(t.mode===Q){break}if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block";t.mode=Q;break}t.lenbits=9;Te={bits:t.lenbits};Ce=l(f,t.lens,0,t.nlen,t.lencode,0,t.work,Te);t.lenbits=Te.bits;if(Ce){e.msg="invalid literal/lengths set";t.mode=Q;break}t.distbits=6;t.distcode=t.distdyn;Te={bits:t.distbits};Ce=l(c,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,Te);t.distbits=Te.bits;if(Ce){e.msg="invalid distances set";t.mode=Q;break}t.mode=W;if(r===d){break e};case W:t.mode=z;case z:if(ie>=6&&se>=258){e.next_out=ae;e.avail_out=se;e.next_in=te;e.avail_in=ie;t.hold=le;t.bits=oe;s(e,ce);ae=e.next_out;re=e.output;se=e.avail_out;te=e.next_in;ee=e.input;ie=e.avail_in;le=t.hold;oe=t.bits;if(t.mode===O){t.back=-1}break}t.back=0;for(;;){be=t.lencode[le&(1<>>24;ge=be>>>16&255;Ee=be&65535;if(me<=oe){break}if(ie===0){break e}ie--;le+=ee[te++]<>ke)];me=be>>>24;ge=be>>>16&255;Ee=be&65535;if(ke+me<=oe){break}if(ie===0){break e}ie--;le+=ee[te++]<>>=ke;oe-=ke;t.back+=ke}le>>>=me;oe-=me;t.back+=me;t.length=Ee;if(ge===0){t.mode=K;break}if(ge&32){t.back=-1;t.mode=O;break}if(ge&64){e.msg="invalid literal/length code";t.mode=Q;break}t.extra=ge&15;t.mode=V;case V:if(t.extra){xe=t.extra;while(oe>>=t.extra;oe-=t.extra;t.back+=t.extra}t.was=t.length;t.mode=X;case X:for(;;){be=t.distcode[le&(1<>>24;ge=be>>>16&255;Ee=be&65535;if(me<=oe){break}if(ie===0){break e}ie--;le+=ee[te++]<>ke)];me=be>>>24;ge=be>>>16&255;Ee=be&65535;if(ke+me<=oe){break}if(ie===0){break e}ie--;le+=ee[te++]<>>=ke;oe-=ke;t.back+=ke}le>>>=me;oe-=me;t.back+=me;if(ge&64){e.msg="invalid distance code";t.mode=Q;break}t.offset=Ee;t.extra=ge&15;t.mode=G;case G:if(t.extra){xe=t.extra;while(oe>>=t.extra;oe-=t.extra;t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back";t.mode=Q;break}t.mode=j;case j:if(se===0){break e}ue=ce-se;if(t.offset>ue){ue=t.offset-ue;if(ue>t.whave){if(t.sane){e.msg="invalid distance too far back";t.mode=Q;break}}if(ue>t.wnext){ue-=t.wnext;he=t.wsize-ue}else{he=t.wnext-ue}if(ue>t.length){ue=t.length}de=t.window}else{de=re;he=ae-t.offset;ue=t.length}if(ue>se){ue=se}se-=ue;t.length-=ue;do{re[ae++]=de[he++]}while(--ue);if(t.length===0){t.mode=z}break;case K:if(se===0){break e}re[ae++]=t.length;se--;t.mode=z;break;case Y:if(t.wrap){while(oe<32){if(ie===0){break e}ie--;le|=ee[te++]<=1;C--){if(U[C]!==0){break}}if(_>C){_=C}if(C===0){b[m++]=1<<24|64<<16|0;b[m++]=1<<24|64<<16|0;E.bits=1;return 0}for(B=1;B0&&(e===l||C!==1)){return-1}H[1]=0;for(w=1;wi||e===f&&A>s){return 1}var j=0;for(;;){j++;V=w-x;if(g[S]M){X=W[z+g[S]];G=N[L+g[S]]}else{X=32+64;G=0}R=1<>x)+D]=V<<24|X<<16|G|0}while(D!==0);R=1<>=1}if(R!==0){y&=R-1;y+=R}else{y=0}S++;if(--U[w]===0){if(w===C){break}w=r[t+g[S]]}if(w>_&&(y&F)!==O){if(x===0){x=_}P+=B;T=w-x;I=1<i||e===f&&A>s){return 1}O=y&F;b[O]=_<<24|T<<16|P-m|0}}if(y!==0){b[P+y]=w-x<<24|64<<16|0}E.bits=_;return 0}},{"../utils/common":27}],37:[function(e,r,t){"use strict";r.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(e,r,t){"use strict";var a=e("../utils/common");var n=4;var i=0;var s=1;var l=2;function o(e){var r=e.length;while(--r>=0){e[r]=0}}var f=0;var c=1;var u=2;var h=3;var d=258;var v=29;var p=256;var b=p+1+v;var m=30;var g=19;var E=2*b+1;var k=15;var w=16;var S=7;var B=256;var C=16;var _=17;var T=18;var x=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var I=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var A=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var y=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var R=512;var D=new Array((b+2)*2);o(D);var O=new Array(m*2);o(O);var F=new Array(R);o(F);var P=new Array(d-h+1);o(P);var N=new Array(v);o(N);var L=new Array(m);o(L);var M=function(e,r,t,a,n){this.static_tree=e;this.extra_bits=r;this.extra_base=t;this.elems=a;this.max_length=n;this.has_stree=e&&e.length};var U;var H;var W;var z=function(e,r){this.dyn_tree=e;this.max_code=0;this.stat_desc=r};function V(e){return e<256?F[e]:F[256+(e>>>7)]}function X(e,r){e.pending_buf[e.pending++]=r&255;e.pending_buf[e.pending++]=r>>>8&255}function G(e,r,t){if(e.bi_valid>w-t){e.bi_buf|=r<>w-e.bi_valid;e.bi_valid+=t-w}else{e.bi_buf|=r<>>=1;t<<=1}while(--r>0);return t>>>1}function Y(e){if(e.bi_valid===16){X(e,e.bi_buf);e.bi_buf=0;e.bi_valid=0}else if(e.bi_valid>=8){e.pending_buf[e.pending++]=e.bi_buf&255;e.bi_buf>>=8;e.bi_valid-=8}}function $(e,r){var t=r.dyn_tree;var a=r.max_code;var n=r.stat_desc.static_tree;var i=r.stat_desc.has_stree;var s=r.stat_desc.extra_bits;var l=r.stat_desc.extra_base;var o=r.stat_desc.max_length;var f;var c,u;var h;var d;var v;var p=0;for(h=0;h<=k;h++){e.bl_count[h]=0}t[e.heap[e.heap_max]*2+1]=0;for(f=e.heap_max+1;fo){h=o;p++}t[c*2+1]=h;if(c>a){continue}e.bl_count[h]++;d=0;if(c>=l){d=s[c-l]}v=t[c*2];e.opt_len+=v*(h+d);if(i){e.static_len+=v*(n[c*2+1]+d)}}if(p===0){return}do{h=o-1;while(e.bl_count[h]===0){h--}e.bl_count[h]--;e.bl_count[h+1]+=2;e.bl_count[o]--;p-=2}while(p>0);for(h=o;h!==0;h--){c=e.bl_count[h];while(c!==0){u=e.heap[--f];if(u>a){continue}if(t[u*2+1]!==h){e.opt_len+=(h-t[u*2+1])*t[u*2];t[u*2+1]=h}c--}}}function Z(e,r,t){var a=new Array(k+1);var n=0;var i;var s;for(i=1;i<=k;i++){a[i]=n=n+t[i-1]<<1}for(s=0;s<=r;s++){var l=e[s*2+1];if(l===0){continue}e[s*2]=K(a[l]++,l)}}function Q(){var e;var r;var t;var a;var n;var i=new Array(k+1);t=0;for(a=0;a>=7;for(;a8){X(e,e.bi_buf)}else if(e.bi_valid>0){e.pending_buf[e.pending++]=e.bi_buf}e.bi_buf=0;e.bi_valid=0}function ee(e,r,t,n){q(e);if(n){X(e,t);X(e,~t)}a.arraySet(e.pending_buf,e.window,r,t,e.pending);e.pending+=t}function re(e,r,t,a){var n=r*2;var i=t*2;return e[n]>1;s>=1;s--){te(e,t,s)}f=i;do{s=e.heap[1];e.heap[1]=e.heap[e.heap_len--];te(e,t,1);l=e.heap[1];e.heap[--e.heap_max]=s;e.heap[--e.heap_max]=l;t[f*2]=t[s*2]+t[l*2];e.depth[f]=(e.depth[s]>=e.depth[l]?e.depth[s]:e.depth[l])+1;t[s*2+1]=t[l*2+1]=f;e.heap[1]=f++;te(e,t,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1];$(e,r);Z(t,o,e.bl_count)}function ie(e,r,t){var a;var n=-1;var i;var s=r[0*2+1];var l=0;var o=7;var f=4;if(s===0){o=138;f=3}r[(t+1)*2+1]=65535;for(a=0;a<=t;a++){i=s;s=r[(a+1)*2+1];if(++l=3;r--){if(e.bl_tree[y[r]*2+1]!==0){break}}e.opt_len+=3*(r+1)+5+5+4;return r}function oe(e,r,t,a){var n;G(e,r-257,5);G(e,t-1,5);G(e,a-4,4);for(n=0;n>>=1){if(r&1&&e.dyn_ltree[t*2]!==0){return i}}if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0){return s}for(t=32;t0){if(e.strm.data_type===l){e.strm.data_type=fe(e)}ne(e,e.l_desc);ne(e,e.d_desc);o=le(e);i=e.opt_len+3+7>>>3;s=e.static_len+3+7>>>3;if(s<=i){i=s}}else{i=s=t+5}if(t+4<=i&&r!==-1){he(e,r,t,a)}else if(e.strategy===n||s===i){G(e,(c<<1)+(a?1:0),3);ae(e,D,O)}else{G(e,(u<<1)+(a?1:0),3);oe(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1);ae(e,e.dyn_ltree,e.dyn_dtree)}J(e);if(a){q(e)}}function pe(e,r,t){e.pending_buf[e.d_buf+e.last_lit*2]=r>>>8&255;e.pending_buf[e.d_buf+e.last_lit*2+1]=r&255;e.pending_buf[e.l_buf+e.last_lit]=t&255;e.last_lit++;if(r===0){e.dyn_ltree[t*2]++}else{e.matches++;r--;e.dyn_ltree[(P[t]+p+1)*2]++;e.dyn_dtree[V(r)*2]++}return e.last_lit===e.lit_bufsize-1}t._tr_init=ue;t._tr_stored_block=he;t._tr_flush_block=ve;t._tr_tally=pe;t._tr_align=de},{"../utils/common":27}],39:[function(e,r,t){"use strict";function a(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}r.exports=a},{}]},{},[9])(9)});var XLSX={};(function e(r){r.version="0.11.6";var t=1200;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")global.cptable=undefined}function a(){n(1200)}var n=function(e){t=e};function i(e){var r=[];for(var t=0,a=e.length;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return r.join("")}function l(e){var r=[];for(var t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join("")}var o=function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);if(r==255&&t==254)return s(e.substr(2));if(r==254&&t==255)return l(e.substr(2));if(r==65279)return e.substr(1);return e};var f=function Qp(e){return String.fromCharCode(e)};if(typeof cptable!=="undefined"){n=function(e){t=e};o=function(e){if(e.charCodeAt(0)===255&&e.charCodeAt(1)===254){return cptable.utils.decode(1200,i(e.substr(2)))}return e};f=function Jp(e){if(t===1200)return String.fromCharCode(e);return cptable.utils.decode(t,[e&255,e>>8])[0]}}var c=null;var u=true;var h=function qp(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(r){var t="";var a,n,i,s,l,o,f;for(var c=0;c>2;l=(a&3)<<4|n>>4;o=(n&15)<<2|i>>6;f=i&63;if(isNaN(n)){o=f=64}else if(isNaN(i)){f=64}t+=e.charAt(s)+e.charAt(l)+e.charAt(o)+e.charAt(f)}return t},decode:function r(t){var a="";var n,i,s;var l,o,f,c;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var u=0;u>4;i=(o&15)<<4|f>>2;s=(f&3)<<6|c;a+=String.fromCharCode(n);if(f!=64){a+=String.fromCharCode(i)}if(c!=64){a+=String.fromCharCode(s)}}return a}}}();var d=typeof Buffer!=="undefined"&&typeof process!=="undefined"&&typeof process.versions!=="undefined"&&process.versions.node;function v(e){return new(d?Buffer:Array)(e)}function p(e){if(d)return new Buffer(e,"binary");return e.split("").map(function(e){return e.charCodeAt(0)&255})}var b=function(e){return[].concat.apply([],e)};var m=/\u0000/g,g=/[\u0001-\u0006]/;var E={};var k=function eb(e){e.version="0.10.0";function r(e){var r="",t=e.length-1;while(t>=0)r+=e.charAt(t--);return r}function t(e,r){var t="";while(t.length=r?a:t("0",r-a.length)+a}function n(e,r){var a=""+e;return a.length>=r?a:t(" ",r-a.length)+a}function i(e,r){var a=""+e;return a.length>=r?a:a+t(" ",r-a.length)}function s(e,r){var a=""+Math.round(e);return a.length>=r?a:t("0",r-a.length)+a}function l(e,r){var a=""+e;return a.length>=r?a:t("0",r-a.length)+a}var o=Math.pow(2,32);function f(e,r){if(e>o||e<-o)return s(e,r);var t=Math.round(e);return l(t,r)}function c(e,r){r=r||0;return e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var h=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function d(e){e[0]="General";e[1]="0";e[2]="0.00";e[3]="#,##0";e[4]="#,##0.00";e[9]="0%";e[10]="0.00%";e[11]="0.00E+00";e[12]="# ?/?";e[13]="# ??/??";e[14]="m/d/yy";e[15]="d-mmm-yy";e[16]="d-mmm";e[17]="mmm-yy";e[18]="h:mm AM/PM";e[19]="h:mm:ss AM/PM";e[20]="h:mm";e[21]="h:mm:ss";e[22]="m/d/yy h:mm";e[37]="#,##0 ;(#,##0)";e[38]="#,##0 ;[Red](#,##0)";e[39]="#,##0.00;(#,##0.00)";e[40]="#,##0.00;[Red](#,##0.00)";e[45]="mm:ss";e[46]="[h]:mm:ss";e[47]="mmss.0";e[48]="##0.0E+0";e[49]="@";e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "';e[65535]="General"}var v={};d(v);function p(e,r,t){var a=e<0?-1:1;var n=e*a;var i=0,s=1,l=0;var o=1,f=0,c=0;var u=Math.floor(n);while(fr){if(f>r){c=o;l=i}else{c=f;l=s}}if(!t)return[0,a*l,c];var h=Math.floor(a*l/c);return[h,a*l-h*c,c]}function b(e,r,t){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),i=0;var s=[];var l={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(l.u)<1e-6)l.u=0;if(r&&r.date1904)a+=1462;if(l.u>.9999){l.u=0;if(++n==86400){l.T=n=0;++a;++l.D}}if(a===60){s=t?[1317,10,29]:[1900,2,29];i=3}else if(a===0){s=t?[1317,8,29]:[1900,1,0];i=6}else{if(a>60)--a;var o=new Date(1900,0,1);o.setDate(o.getDate()+a-1);s=[o.getFullYear(),o.getMonth()+1,o.getDate()];i=o.getDay();if(a<60)i=(i+6)%7;if(t)i=C(o,s)}l.y=s[0];l.m=s[1];l.d=s[2];l.S=n%60;n=Math.floor(n/60);l.M=n%60;n=Math.floor(n/60);l.H=n;l.q=i;return l}e.parse_date_code=b;var m=new Date(1899,11,31,0,0,0);var g=m.getTime();var E=new Date(1900,2,1,0,0,0);function k(e,r){var t=e.getTime();if(r)t-=1461*24*60*60*1e3;else if(e>=E)t+=24*60*60*1e3;return(t-(g+(e.getTimezoneOffset()-m.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function w(e){return e.toString(10)}e._general_int=w;var S=function M(){var e=/\.(\d*[1-9])0+$/,r=/\.0*$/,t=/\.(\d*[1-9])0+/,a=/\.0*[Ee]/,n=/(E[+-])(\d)$/;function i(e){var r=e<0?12:11;var t=o(e.toFixed(12));if(t.length<=r)return t;t=e.toPrecision(10);if(t.length<=r)return t;return e.toExponential(5)}function s(r){var t=r.toFixed(11).replace(e,".$1");if(t.length>(r<0?12:11))t=r.toPrecision(6);return t}function l(e){for(var r=0;r!=e.length;++r)if((e.charCodeAt(r)|32)===101)return e.replace(t,".$1").replace(a,"E").replace("e","E").replace(n,"$10$2");return e}function o(t){return t.indexOf(".")>-1?t.replace(r,"").replace(e,".$1"):t}return function f(e){var r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),t;if(r>=-4&&r<=-1)t=e.toPrecision(10+r);else if(Math.abs(r)<=9)t=i(e);else if(r===10)t=e.toFixed(10).substr(0,12);else t=s(e);return o(l(t))}}();e._general_num=S;function B(e,r){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?w(e):S(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return N(14,k(e,r&&r.date1904),r);}throw new Error("unsupported value in General format: "+e)}e._general=B;function C(){return 0}function _(e,r,t,n){var i="",s=0,l=0,o=t.y,f,c=0;switch(e){case 98:o=t.y+543;case 121:switch(r.length){case 1:;case 2:f=o%100;c=2;break;default:f=o%1e4;c=4;break;}break;case 109:switch(r.length){case 1:;case 2:f=t.m;c=r.length;break;case 3:return h[t.m-1][1];case 5:return h[t.m-1][0];default:return h[t.m-1][2];}break;case 100:switch(r.length){case 1:;case 2:f=t.d;c=r.length;break;case 3:return u[t.q][0];default:return u[t.q][1];}break;case 104:switch(r.length){case 1:;case 2:f=1+(t.H+11)%12;c=r.length;break;default:throw"bad hour format: "+r;}break;case 72:switch(r.length){case 1:;case 2:f=t.H;c=r.length;break;default:throw"bad hour format: "+r;}break;case 77:switch(r.length){case 1:;case 2:f=t.M;c=r.length;break;default:throw"bad minute format: "+r;}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;if(t.u===0&&(r=="s"||r=="ss"))return a(t.S,r.length);if(n>=2)l=n===3?1e3:100;else l=n===1?10:1;s=Math.round(l*(t.S+t.u));if(s>=60*l)s=0;if(r==="s")return s===0?"0":""+s/l;i=a(s,2+n);if(r==="ss")return i.substr(0,2);return"."+i.substr(2,r.length-1);case 90:switch(r){case"[h]":;case"[hh]":f=t.D*24+t.H;break;case"[m]":;case"[mm]":f=(t.D*24+t.H)*60+t.M;break;case"[s]":;case"[ss]":f=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+r;}c=r.length===3?1:2;break;case 101:f=o;c=1;}if(c>0)return a(f,c);else return""}function T(e){var r=3;if(e.length<=r)return e;var t=e.length%r,a=e.substr(0,t);for(;t!=e.length;t+=r)a+=(a.length>0?",":"")+e.substr(t,r);return a}var x=function U(){var e=/%/g;function s(r,a,n){var i=a.replace(e,""),s=a.length-i.length;return x(r,i,n*Math.pow(10,2*s))+t("%",s)}function l(e,r,t){var a=r.length-1;while(r.charCodeAt(a-1)===44)--a;return x(e,r.substr(0,a),t/Math.pow(10,3*(r.length-a)))}function o(e,r){var t;var a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";else if(r<0)return"-"+o(e,-r);var n=e.indexOf(".");if(n===-1)n=e.indexOf("E");var i=Math.floor(Math.log(r)*Math.LOG10E)%n;if(i<0)i+=n;t=(r/Math.pow(10,i)).toPrecision(a+1+(n+i)%n);if(t.indexOf("e")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);if(t.indexOf(".")===-1)t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+i);else t+="E+"+(s-i);while(t.substr(0,2)==="0."){t=t.charAt(0)+t.substr(2,n)+"."+t.substr(2+n);t=t.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(e,r,t,a){return r+t+a.substr(0,(n+i)%n)+"."+a.substr(i)+"E"})}else t=r.toExponential(a);if(e.match(/E\+00$/)&&t.match(/e[+-]\d$/))t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1);if(e.match(/E\-/)&&t.match(/e\+/))t=t.replace(/e\+/,"e");return t.replace("e","E")}var c=/# (\?+)( ?)\/( ?)(\d+)/;function u(e,r,i){var s=parseInt(e[4],10),l=Math.round(r*s),o=Math.floor(l/s);var f=l-o*s,c=s;return i+(o===0?"":""+o)+" "+(f===0?t(" ",e[1].length+1+e[4].length):n(f,e[1].length)+e[2]+"/"+e[3]+a(c,e[4].length))}function h(e,r,a){return a+(r===0?"":""+r)+t(" ",e[1].length+2+e[4].length)}var d=/^#*0*\.([0#]+)/;var v=/\).*[0#]/;var b=/\(###\) ###\\?-####/;function m(e){var r="",t;for(var a=0;a!=e.length;++a)switch(t=e.charCodeAt(a)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t);}return r}function g(e,r){var t=Math.pow(10,r);return""+Math.round(e*t)/t}function E(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 0}return Math.round((e-Math.floor(e))*Math.pow(10,r))}function k(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 1}return 0}function w(e){if(e<2147483647&&e>-2147483648)return""+(e>=0?e|0:e-1|0);return""+Math.floor(e)}function S(e,h,B){if(e.charCodeAt(0)===40&&!h.match(v)){var C=h.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(B>=0)return S("n",C,B);return"("+S("n",C,-B)+")"}if(h.charCodeAt(h.length-1)===44)return l(e,h,B);if(h.indexOf("%")!==-1)return s(e,h,B);if(h.indexOf("E")!==-1)return o(h,B);if(h.charCodeAt(0)===36)return"$"+S(e,h.substr(h.charAt(1)==" "?2:1),B);var _;var I,A,y,R=Math.abs(B),D=B<0?"-":"";if(h.match(/^00+$/))return D+f(R,h.length);if(h.match(/^[#?]+$/)){_=f(B,0);if(_==="0")_="";return _.length>h.length?_:m(h.substr(0,h.length-_.length))+_}if(I=h.match(c))return u(I,R,D);if(h.match(/^#+0+$/))return D+f(R,h.length-h.indexOf("0"));if(I=h.match(d)){_=g(B,I[1].length).replace(/^([^\.]+)$/,"$1."+m(I[1])).replace(/\.$/,"."+m(I[1])).replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(I[1]).length-r.length)});return h.indexOf("0.")!==-1?_:_.replace(/^0\./,".")}h=h.replace(/^#+([0.])/,"$1");if(I=h.match(/^(0*)\.(#*)$/)){return D+g(R,I[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,I[1].length?"0.":".")}if(I=h.match(/^#{1,3},##0(\.?)$/))return D+T(f(R,0));if(I=h.match(/^#,##0\.([#0]*0)$/)){return B<0?"-"+S(e,h,-B):T(""+(Math.floor(B)+k(B,I[1].length)))+"."+a(E(B,I[1].length),I[1].length)}if(I=h.match(/^#,#*,#0/))return S(e,h.replace(/^#,#*,/,""),B);if(I=h.match(/^([0#]+)(\\?-([0#]+))+$/)){_=r(S(e,h.replace(/[\\-]/g,""),B));A=0;return r(r(h.replace(/\\/g,"")).replace(/[0#]/g,function(e){return A<_.length?_.charAt(A++):e==="0"?"0":""}))}if(h.match(b)){_=S(e,"##########",B);return"("+_.substr(0,3)+") "+_.substr(3,3)+"-"+_.substr(6)}var O="";if(I=h.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)){A=Math.min(I[4].length,7);y=p(R,Math.pow(10,A)-1,false);_=""+D;O=x("n",I[1],y[1]);if(O.charAt(O.length-1)==" ")O=O.substr(0,O.length-1)+"0";_+=O+I[2]+"/"+I[3];O=i(y[2],A);if(O.length=0)return I("n",o,l);return"("+I("n",o,-l)+")"}if(s.charCodeAt(s.length-1)===44)return B(e,s,l);if(s.indexOf("%")!==-1)return C(e,s,l);if(s.indexOf("E")!==-1)return _(s,l);if(s.charCodeAt(0)===36)return"$"+I(e,s.substr(s.charAt(1)==" "?2:1),l);var f;var u,g,E,k=Math.abs(l),w=l<0?"-":"";if(s.match(/^00+$/))return w+a(k,s.length);if(s.match(/^[#?]+$/)){f=""+l;if(l===0)f="";return f.length>s.length?f:m(s.substr(0,s.length-f.length))+f}if(u=s.match(c))return h(u,k,w);if(s.match(/^#+0+$/))return w+a(k,s.length-s.indexOf("0"));if(u=s.match(d)){f=(""+l).replace(/^([^\.]+)$/,"$1."+m(u[1])).replace(/\.$/,"."+m(u[1]));f=f.replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(u[1]).length-r.length)});return s.indexOf("0.")!==-1?f:f.replace(/^0\./,".")}s=s.replace(/^#+([0.])/,"$1");if(u=s.match(/^(0*)\.(#*)$/)){return w+(""+k).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,u[1].length?"0.":".")}if(u=s.match(/^#{1,3},##0(\.?)$/))return w+T(""+k);if(u=s.match(/^#,##0\.([#0]*0)$/)){return l<0?"-"+I(e,s,-l):T(""+l)+"."+t("0",u[1].length)}if(u=s.match(/^#,#*,#0/))return I(e,s.replace(/^#,#*,/,""),l);if(u=s.match(/^([0#]+)(\\?-([0#]+))+$/)){f=r(I(e,s.replace(/[\\-]/g,""),l));g=0;return r(r(s.replace(/\\/g,"")).replace(/[0#]/g,function(e){return g-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r-1){}break;case" ":++r;break;default:++r;break;}}return false}e.is_date=y;function R(e,r,t,a){var n=[],i="",s=0,l="",o="t",f,u,h;var d="H";while(s=12?"P":"A";m.t="T";d="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(f!=null)m.v=f.H>=12?"PM":"AM";m.t="T";s+=5;d="h"}else{m.t="t";++s}if(f==null&&m.t==="T")return"";n[n.length]=m;o=l;break;case"[":i=l;while(e.charAt(s++)!=="]"&&s-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!y(e))n[n.length]={t:"t",v:i}}break;case".":if(f!=null){i=l;while(++s-1||l=="\\"&&e.charAt(s+1)=="-"&&s-1)i+=l;n[n.length]={t:"n",v:i};break;case"?":i=l;while(e.charAt(++s)===l)i+=l;n[n.length]={t:l,v:i};o=l;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":l,v:l};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=l;while(s-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:l,v:l};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(l)===-1)throw new Error("unrecognized character "+l+" in "+e);n[n.length]={t:"t",v:l};++s;break;}}var g=0,E=0,k;for(s=n.length-1,o="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=d;o="h";if(g<1)g=1;break;case"s":if(k=n[s].v.match(/\.0+$/))E=Math.max(E,k[0].length-1);if(g<3)g=3;case"d":;case"y":;case"M":;case"e":o=n[s].t;break;case"m":if(o==="s"){n[s].t="M";if(g<2)g=2}break;case"X":break;case"Z":if(g<1&&n[s].v.match(/[Hh]/))g=1;if(g<2&&n[s].v.match(/[Mm]/))g=2;if(g<3&&n[s].v.match(/[Ss]/))g=3;}}switch(g){case 0:break;case 1:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}if(f.M>=60){f.M=0;++f.H}break;case 2:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}break;}var w="",S;for(s=0;s0){if(w.charCodeAt(0)==40){T=r<0&&w.charCodeAt(0)===45?-r:r;I=x("(",w,T)}else{T=r<0&&a>1?-r:r;I=x("n",w,T);if(T<0&&n[0]&&n[0].t=="t"){I=I.substr(1);n[0].v="-"+n[0].v}}S=I.length-1;var R=n.length;for(s=0;s-1){R=s;break}var D=n.length;if(R===n.length&&I.indexOf("E")===-1){for(s=n.length-1;s>=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;if(S>=n[s].v.length-1){S-=n[s].v.length;n[s].v=I.substr(S+1,n[s].v.length)}else if(S<0)n[s].v="";else{n[s].v=I.substr(0,S+1);S=-1}n[s].t="t";D=s}if(S>=0&&D=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;u=n[s].v.indexOf(".")>-1&&s===R?n[s].v.indexOf(".")-1:n[s].v.length-1;C=n[s].v.substr(u+1);for(;u>=0;--u){if(S>=0&&(n[s].v.charAt(u)==="0"||n[s].v.charAt(u)==="#"))C=I.charAt(S--)+C}n[s].v=C;n[s].t="t";D=s}if(S>=0&&D-1&&s===R?n[s].v.indexOf(".")+1:0;C=n[s].v.substr(0,u);for(;u-1){T=a>1&&r<0&&s>0&&n[s-1].v==="-"?-r:r;n[s].v=x(n[s].t,n[s].v,T);n[s].t="t"}var O="";for(s=0;s!==n.length;++s)if(n[s]!=null)O+=n[s].v;return O}e._eval=R;var D=/\[[=<>]/;var O=/\[([=<>]*)(-?\d+\.?\d*)\]/;function F(e,r){if(r==null)return false;var t=parseFloat(r[2]);switch(r[1]){case"=":if(e==t)return true;break;case">":if(e>t)return true;break;case"<":if(e":if(e!=t)return true;break;case">=":if(e>=t)return true;break;case"<=":if(e<=t)return true;break;}return false}function P(e,r){var t=I(e);var a=t.length,n=t[a-1].indexOf("@");if(a<4&&n>-1)--a;if(t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if(typeof r!=="number")return[4,t.length===4||n>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=n>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=n>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=n>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"];break;case 4:break;}var i=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf("[")===-1&&t[1].indexOf("[")===-1)return[a,i];if(t[0].match(D)!=null||t[1].match(D)!=null){var s=t[0].match(O);var l=t[1].match(O);return F(r,s)?[a,t[0]]:F(r,l)?[a,t[1]]:[a,t[s!=null&&l!=null?2:1]]}return[a,i]}function N(e,r,t){if(t==null)t={};var a="";switch(typeof e){case"string":if(e=="m/d/yy"&&t.dateNF)a=t.dateNF;else a=e;break;case"number":if(e==14&&t.dateNF)a=t.dateNF;else a=(t.table!=null?t.table:v)[e];break;}if(c(a,0))return B(r,t);if(r instanceof Date)r=k(r,t.date1904);var n=P(a,r);if(c(n[1]))return B(r,t);if(r===true)r="TRUE";else if(r===false)r="FALSE";else if(r===""||r==null)return"";return R(n[1],r,t,n[0])}function L(e,r){if(typeof r!="number"){r=+r||-1;for(var t=0;t<392;++t){if(v[t]==undefined){if(r<0)r=t;continue}if(v[t]==e){r=t;break}}if(r<0)r=391}v[r]=e;return r}e.load=L;e._table=v;e.get_table=function H(){return v};e.load_table=function W(e){for(var r=0;r!=392;++r)if(e[r]!==undefined)L(e[r],r)};e.init_table=d;e.format=N};k(E);var w={"General Number":"General","General Date":E._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":E._table[15],"Short Date":E._table[14],"Long Time":E._table[19],"Medium Time":E._table[18],"Short Time":E._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:E._table[2],Standard:E._table[4],Percent:E._table[10],Scientific:E._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var S=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function B(e){var r=typeof e=="number"?E._table[e]:e;r=r.replace(S,"(\\d+)");return new RegExp("^"+r+"$")}function C(e,r,t){var a=-1,n=-1,i=-1,s=-1,l=-1,o=-1;(r.match(S)||[]).forEach(function(e,r){var f=parseInt(t[r+1],10);switch(e.toLowerCase().charAt(0)){case"y":a=f;break;case"d":i=f;break;case"h":s=f;break;case"s":o=f;break;case"m":if(s>=0)l=f;else n=f;break;}});if(o>=0&&l==-1&&n>=0){l=n;n=-1}var f=(""+(a>=0?a:(new Date).getFullYear())).slice(-4)+"-"+("00"+(n>=1?n:1)).slice(-2)+"-"+("00"+(i>=1?i:1)).slice(-2);if(f.length==7)f="0"+f;if(f.length==8)f="20"+f;var c=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2);if(s==-1&&l==-1&&o==-1)return f;if(a==-1&&n==-1&&i==-1)return c;return f+"T"+c}var _=true;var T=function rb(){var e={};e.version="0.13.1";function r(e,r){var t=e.split("/"),a=r.split("/");for(var n=0,i=0,s=Math.min(t.length,a.length);n0&&v!==A)C[v].name="!MiniFAT";C[b[0]].name="!FAT";C.fat_addrs=b;C.ssz=a;var _={},T=[],x=[],I=[],y={};d(h,C,B,T,n,_,x);o(x,y,I,T);T.shift();var R={FileIndex:x,FullPaths:I,FullPathDir:y};if(r&&r.raw)R.raw={header:E,sectors:B};return R}function i(e){e.chk(y,"Header Signature: ");e.chk(D,"CLSID: ");var r=e._R(2,"u");return[e._R(2,"u"),r]}function s(e,r){var t=9;e.l+=2;switch(t=e._R(2)){case 9:if(r!=3)throw new Error("Sector Shift: Expected 9 saw "+t);break;case 12:if(r!=4)throw new Error("Sector Shift: Expected 12 saw "+t);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+t);}e.chk("0600","Mini Sector Shift: ");e.chk("000000000000","Reserved: ")}function l(e,r){var t=Math.ceil(e.length/r)-1;var a=[];for(var n=1;n>>2)-1;if(!s)return;for(var o=0;o=0;){n[o]=true;i[i.length]=o;s.push(e[o]);var c=t[Math.floor(o*4/a)];f=o*4&l;if(a<4+f)throw new Error("FAT boundary crossed: "+o+" 4 "+a);if(!e[c])break;o=pr(e[c],f)}return{nodes:i,data:je([s])}}function u(e,r,t,a){var n=e.length,i=[];var s=[],l=[],o=[];var f=a-1,c=0,u=0,h=0,d=0;for(c=0;c=n)h-=n;if(s[h])continue;o=[];for(u=h;u>=0;){s[u]=true;l[l.length]=u;o.push(e[u]);var v=t[Math.floor(u*4/a)];d=u*4&f;if(a<4+d)throw new Error("FAT boundary crossed: "+u+" 4 "+a);if(!e[v])break;u=pr(e[v],d)}i[h]={nodes:l,data:je([o])}}return i}function d(e,r,t,a,n,i,s){var l=0,o=a.length?2:0;var f=r[e].data;var u=0,h=0,d;for(;u0&&l!==A)r[l].name="!StreamData"}else if(b.size>=4096){b.storage="fat";if(r[b.start]===undefined)r[b.start]=c(t,b.start,r.fat_addrs,r.ssz);r[b.start].name=b.name;b.content=r[b.start].data.slice(0,b.size);_r(b.content,0)}else{b.storage="minifat";if(l!==A&&b.start!==A&&r[l]){b.content=r[l].data.slice(b.start*I,b.start*I+b.size);_r(b.content,0)}}i[d]=b;s.push(b)}}function v(e,r){return new Date((vr(e,r+4)/1e7*Math.pow(2,32)+vr(e,r)/1e7-11644473600)*1e3)}var E;function k(e,r){if(E==null)E=require("fs");return n(E.readFileSync(e),r)}function w(e,r){switch(r&&r.type||"base64"){case"file":return k(e,r);case"base64":return n(p(h.decode(e)),r);case"binary":return n(p(e),r);}return n(e,r)}function S(e,r){var t=r||{},a=t.root||"Root Entry";if(!e.FullPaths)e.FullPaths=[];if(!e.FileIndex)e.FileIndex=[];if(e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");if(e.FullPaths.length===0){e.FullPaths[0]=a+"/";e.FileIndex[0]={name:a,type:5}}if(t.CLSID)e.FileIndex[0].clsid=t.CLSID;B(e)}function B(e){var r="Sh33tJ5";if(T.find(e,"/"+r))return;var t=Ar(4);t[0]=55;t[1]=t[3]=50;t[2]=54;e.FileIndex.push({name:r,type:2,content:t,size:4,L:69,R:69,C:69});e.FullPaths.push(e.FullPaths[0]+r);C(e)}function C(e,n){S(e);var i=false,s=false;for(var l=e.FullPaths.length-1;l>=0;--l){var o=e.FileIndex[l];switch(o.type){case 0:if(s)i=true;else{e.FileIndex.pop();e.FullPaths.pop()}break;case 1:;case 2:;case 5:s=true;if(isNaN(o.R*o.L*o.C))i=true;if(o.R>-1&&o.L>-1&&o.R==o.L)i=true;break;default:i=true;break;}}if(!i&&!n)return;var f=new Date(1987,1,19),c=0;var u=[];for(l=0;l1?1:-1;d.size=0;d.type=5}else if(v.slice(-1)=="/"){for(c=l+1;c=u.length?-1:c;for(c=l+1;c=u.length?-1:c;d.type=1}else{if(t(e.FullPaths[l+1]||"")==t(v))d.R=l+1;d.type=2}}}function _(e,r){C(e);var t=function(e){var r=0,t=0;for(var a=0;a>6;else t+=i+511>>9}var s=e.FullPaths.length+3>>2;var l=r+7>>3;var o=r+127>>7;var f=l+t+s+o;var c=f+127>>7;var u=c<=109?0:Math.ceil((c-109)/127);while(f+c+u+127>>7>c)u=++c<=109?0:Math.ceil((c-109)/127);var h=[1,u,c,o,s,t,r,0];e.FileIndex[0].size=r<<6;h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3);return h}(e);var a=Ar(t[7]<<9);var n=0,i=0;{for(n=0;n<8;++n)a._W(1,R[n]);for(n=0;n<8;++n)a._W(2,0);a._W(2,62);a._W(2,3);a._W(2,65534);a._W(2,9);a._W(2,6);for(n=0;n<3;++n)a._W(2,0);a._W(4,0);a._W(4,t[2]);a._W(4,t[0]+t[1]+t[2]+t[3]-1);a._W(4,0);a._W(4,1<<12);a._W(4,t[3]?t[0]+t[1]+t[2]-1:A);a._W(4,t[3]);a._W(-4,t[1]?t[0]-1:A);a._W(4,t[1]);for(n=0;n<109;++n)a._W(-4,n>9)}s(t[6]+7>>3);while(a.l&511)a._W(-4,O.ENDOFCHAIN);i=n=0;for(l=0;l=4096)continue;f.start=i;s(o+63>>6)}while(a.l&511)a._W(-4,O.ENDOFCHAIN);for(n=0;n=4096){a.l=f.start+1<<9;for(l=0;l0&&f.size<4096){for(l=0;l3)a=true;switch(n[i].substr(n[i].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+n[i].substr(n[i].length-1));case"D":t*=24;case"H":t*=60;case"M":if(!a)throw new Error("Unsupported ISO Duration Field: M");else t*=60;case"S":break;}r+=t*parseInt(n[i],10)}return r}var M=new Date("2017-02-19T19:06:09.000Z");if(isNaN(M.getFullYear()))M=new Date("2/19/17");var U=M.getFullYear()==2017;function H(e,r){var t=new Date(e);if(U){if(r>0)t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3);else if(r<0)t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3);return t}if(e instanceof Date)return e;if(M.getFullYear()==1917&&!isNaN(t.getFullYear())){var a=t.getFullYear();if(e.indexOf(""+a)>-1)return t;t.setFullYear(t.getFullYear()+100);return t}var n=e.match(/\d+/g)||["2017","2","19","0","0","0"];var i=new Date(+n[0],+n[1]-1,+n[2],+n[3]||0,+n[4]||0,+n[5]||0);if(e.indexOf("Z")>-1)i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3);return i}function W(e){var r="";for(var t=0;t!=e.length;++t)r+=String.fromCharCode(e[t]);return r}function z(e){var r=[];for(var t=0;t!=e.length;++t)r.push(e.charCodeAt(t));return r}function V(e){if(typeof JSON!="undefined"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;var r={};for(var t in e)if(e.hasOwnProperty(t))r[t]=V(e[t]);return r}function X(e,r){var t="";while(t.length8099)return t;if((n>0||i>1)&&a!=101)return r;if(e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/))return r;if(e.match(/[^-0-9:,\/\\]/))return t;return r}var K="abacaba".split(/(:?b)/i).length==5;function Y(e,r,t){if(K||typeof r=="string")return e.split(r);var a=e.split(r),n=[a[0]];for(var i=1;i\/]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;var oe=/<[\/\?]?[a-zA-Z0-9:]+(?:\s+[^"\s?>\/]+=(?:"[^"]*"|'[^']*'|[^'">\s]+))*\s?[\/\?]?>/g;if(!se.match(oe))oe=/<[^>]*>/g;var fe=/<\w*:/,ce=/<(\/?)\w+:/;function ue(e,r){var t={};var a=0,n=0;for(;a!==e.length;++a)if((n=e.charCodeAt(a))===32||n===10||n===13)break;if(!r)t[0]=e.substr(0,a);if(a===e.length)return t;var i=e.match(le),s=0,l="",o=0,f="",c="",u=1;if(i)for(o=0;o!=i.length;++o){c=i[o];for(n=0;n!=c.length;++n)if(c.charCodeAt(n)===61)break;f=c.substr(0,n);u=(a=c.charCodeAt(n+1))==34||a==39?1:0;l=c.substring(n+1+u,c.length-u);for(s=0;s!=f.length;++s)if(f.charCodeAt(s)===58)break;if(s===f.length){if(f.indexOf("_")>0)f=f.substr(0,f.indexOf("_"));t[f]=l}else{var h=(s===5&&f.substr(0,5)==="xmlns"?"xmlns":"")+f.substr(s+1);if(t[h]&&f.substr(s-3,3)=="ext")continue;t[h]=l}}return t}function he(e){return e.replace(ce,"<$1")}var de={""":'"',"'":"'",">":">","<":"<","&":"&"};var ve=y(de);var pe=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/g,r=/_x([\da-fA-F]{4})_/g;return function t(a){var n=a+"",i=n.indexOf("-1?16:10))||e}).replace(r,function(e,r){return String.fromCharCode(parseInt(r,16))});var s=n.indexOf("]]>");return t(n.slice(0,i))+n.slice(i+9,s)+t(n.slice(s+3))}}();var be=/[&<>'"]/g,me=/[\u0000-\u0008\u000b-\u001f]/g;function ge(e,r){var t=e+"";return t.replace(be,function(e){return ve[e]}).replace(me,function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"})}function Ee(e){return ge(e).replace(/ /g,"_x0020_")}var ke=/[\u0000-\u001f]/g;function we(e){var r=e+"";return r.replace(be,function(e){return ve[e]}).replace(ke,function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"})}var Se=function(){var e=/&#(\d+);/g;function r(e,r){return String.fromCharCode(parseInt(r,10))}return function t(a){return a.replace(e,r)}}();var Be=function(){return function e(r){return r.replace(/(\r\n|[\r\n])/g," ")}}();function Ce(e,r){switch(e){case 1:;case true:;case"1":;case"true":;case"TRUE":return true;default:return false;}}var _e=function tb(e){var r="",t=0,a=0,n=0,i=0,s=0,l=0;while(t191&&a<224){s=(a&31)<<6;s|=n&63;r+=String.fromCharCode(s);continue}i=e.charCodeAt(t++);if(a<240){r+=String.fromCharCode((a&15)<<12|(n&63)<<6|i&63);continue}s=e.charCodeAt(t++);l=((a&7)<<18|(n&63)<<12|(i&63)<<6|s&63)-65536;r+=String.fromCharCode(55296+(l>>>10&1023));r+=String.fromCharCode(56320+(l&1023))}return r};var Te=function(e){var r=[],t=0,a=0,n=0;while(t>6)));r.push(String.fromCharCode(128+(a&63)));break;case a>=55296&&a<57344:a-=55296;n=e.charCodeAt(t++)-56320+(a<<10);r.push(String.fromCharCode(240+(n>>18&7)));r.push(String.fromCharCode(144+(n>>12&63)));r.push(String.fromCharCode(128+(n>>6&63)));r.push(String.fromCharCode(128+(n&63)));break;default:r.push(String.fromCharCode(224+(a>>12)));r.push(String.fromCharCode(128+(a>>6&63)));r.push(String.fromCharCode(128+(a&63)));}}return r.join("")};if(d){var xe=function ab(e){var r=new Buffer(2*e.length),t,a,n=1,i=0,s=0,l;for(a=0;a>>10&1023);t=56320+(t&1023)}if(s!==0){r[i++]=s&255;r[i++]=s>>>8;s=0}r[i++]=t%256;r[i++]=t>>>8}return r.slice(0,i).toString("ucs2")};var Ie="foo bar baz☃🍣";if(_e(Ie)==xe(Ie))_e=xe;var Ae=function nb(e){return Buffer(e,"binary").toString("utf8")};if(_e(Ie)==Ae(Ie))_e=Ae;Te=function(e){return new Buffer(e,"utf8").toString("binary")}}var ye=function(){var e={};return function r(t,a){var n=t+"|"+(a||"");if(e[n])return e[n];return e[n]=new RegExp("<(?:\\w+:)?"+t+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",a||"")}}();function Re(e){return e.trim().replace(/\s+/g," ").replace(/<\s*[bB][rR]\s*\/?/g,"\n").replace(/<[^>]*>/g,"").replace(/ /g," ")}var De=function(){var e={};return function r(t){if(e[t]!==undefined)return e[t];return e[t]=new RegExp("<(?:vt:)?"+t+">([\\s\\S]*?)","g")}}();var Oe=/<\/?(?:vt:)?variant>/g,Fe=/<(?:vt:)([^>]*)>([\s\S]*)"+r+""; +}function Me(e){return I(e).map(function(r){return" "+r+'="'+e[r]+'"'}).join("")}function Ue(e,r,t){return"<"+e+(x(t)?Me(t):"")+(x(r)?(r.match(Ne)?' xml:space="preserve"':"")+">"+r+""}function He(e,r){try{return e.toISOString().replace(/\.\d*/,"")}catch(t){if(r)throw t}return""}function We(e){switch(typeof e){case"string":return Ue("vt:lpwstr",e);case"number":return Ue((e|0)==e?"vt:i4":"vt:r8",String(e));case"boolean":return Ue("vt:bool",e?"true":"false");}if(e instanceof Date)return Ue("vt:filetime",He(e));throw new Error("Unable to serialize "+e)}var ze={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};ze.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];var Ve={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function Xe(e,r){var t=1-2*(e[r+7]>>>7);var a=((e[r+7]&127)<<4)+(e[r+6]>>>4&15);var n=e[r+6]&15;for(var i=5;i>=0;--i)n=n*256+e[r+i];if(a==2047)return n==0?t*Infinity:NaN;if(a==0)a=-1022;else{a-=1023;n+=Math.pow(2,52)}return t*Math.pow(2,a-52)*n}function Ge(e,r,t){var a=(r<0||1/r==-Infinity?1:0)<<7,n=0,i=0;var s=a?-r:r;if(!isFinite(s)){n=2047;i=isNaN(r)?26985:0}else if(s==0)n=i=0;else{n=Math.floor(Math.log(s)/Math.LN2);i=s*Math.pow(2,52-n);if(n<=-1023&&(!isFinite(i)||i>4|a}var je=function(e){var r=[];for(var t=0;t0?Je(e,r+4,r+4+t-1):""};var rr=er;var tr=function(e,r){var t=2*vr(e,r);return t>0?Je(e,r+4,r+4+t-1):""};var ar=tr;var nr,ir;nr=ir=function ib(e,r){var t=vr(e,r);return t>0?Ye(e,r+4,r+4+t):""};var sr=function(e,r){var t=vr(e,r);return t>0?Je(e,r+4,r+4+t):""};var lr=sr;var or,fr;or=fr=function(e,r){return Xe(e,r)};var cr=function sb(e){return Array.isArray(e)};if(d){Ye=function(e,r,t){if(!Buffer.isBuffer(e))return $e(e,r,t);return e.toString("utf16le",r,t).replace(m,"")};Ze=function(e,r,t){return Buffer.isBuffer(e)?e.toString("hex",r,r+t):Qe(e,r,t)};er=function lb(e,r){if(!Buffer.isBuffer(e))return rr(e,r);var t=e.readUInt32LE(r);return t>0?e.toString("utf8",r+4,r+4+t-1):""};tr=function ob(e,r){if(!Buffer.isBuffer(e))return ar(e,r);var t=2*e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t-1)};nr=function fb(e,r){if(!Buffer.isBuffer(e))return ir(e,r);var t=e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t)};sr=function cb(e,r){if(!Buffer.isBuffer(e))return lr(e,r);var t=e.readUInt32LE(r);return e.toString("utf8",r+4,r+4+t)};Je=function ub(e,r,t){return Buffer.isBuffer(e)?e.toString("utf8",r,t):Je(e,r,t)};je=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):Ke(e)};b=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)};or=function hb(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return fr(e,r)};cr=function db(e){return Buffer.isBuffer(e)||Array.isArray(e)}}if(typeof cptable!=="undefined"){Ye=function(e,r,t){return cptable.utils.decode(1200,e.slice(r,t)).replace(m,"")};Je=function(e,r,t){return cptable.utils.decode(65001,e.slice(r,t))};er=function(e,r){var a=vr(e,r);return a>0?cptable.utils.decode(t,e.slice(r+4,r+4+a-1)):""};tr=function(e,r){var t=2*vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};nr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t)):""};sr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(65001,e.slice(r+4,r+4+t)):""}}var ur=function(e,r){return e[r]};var hr=function(e,r){return e[r+1]*(1<<8)+e[r]};var dr=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var vr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var pr=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var br=function(e,r){return e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]};var mr=function(e){return(e.match(/../g)||[]).map(function(e){return parseInt(e,16)})};var gr=typeof Buffer!=="undefined"?function(e){return Buffer.isBuffer(e)?new Buffer(e,"hex"):mr(e)}:mr;function Er(e,r){var a="",n,i,s=[],l,o,c,u;switch(r){case"dbcs":u=this.l;if(d&&Buffer.isBuffer(this))a=this.slice(this.l,this.l+2*e).toString("utf16le");else for(c=0;c!=e;++c){a+=String.fromCharCode(hr(this,u));u+=2}e*=2;break;case"utf8":a=Je(this,this.l,this.l+e);break;case"utf16le":e*=2;a=Ye(this,this.l,this.l+e);break;case"wstr":if(typeof cptable!=="undefined")a=cptable.utils.decode(t,this.slice(this.l,this.l+2*e));else return Er.call(this,e,"dbcs");e=2*e;break;case"lpstr":a=er(this,this.l);e=5+a.length;break;case"lpwstr":a=tr(this,this.l);e=5+a.length;if(a[a.length-1]=="\0")e+=2;break;case"lpp4":e=4+vr(this,this.l);a=nr(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+vr(this,this.l);a=sr(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;a="";while((l=ur(this,this.l+e++))!==0)s.push(f(l));a=s.join("");break;case"_wstr":e=0;a="";while((l=hr(this,this.l+e))!==0){s.push(f(l));e+=2}e+=2;a=s.join("");break;case"dbcs-cont":a="";u=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(u)!==-1){l=ur(this,u);this.l=u+1;o=Er.call(this,e-c,l?"dbcs-cont":"sbcs-cont");return s.join("")+o}s.push(f(hr(this,u)));u+=2}a=s.join("");e*=2;break;case"sbcs-cont":a="";u=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(u)!==-1){l=ur(this,u);this.l=u+1;o=Er.call(this,e-c,l?"dbcs-cont":"sbcs-cont");return s.join("")+o}s.push(f(ur(this,u)));u+=1}a=s.join("");break;default:switch(e){case 1:n=ur(this,this.l);this.l++;return n;case 2:n=(r==="i"?dr:hr)(this,this.l);this.l+=2;return n;case 4:;case-4:if(r==="i"||(this[this.l+3]&128)===0){n=(e>0?pr:br)(this,this.l);this.l+=4;return n}else{i=vr(this,this.l);this.l+=4}return i;case 8:;case-8:if(r==="f"){if(e==8)i=or(this,this.l);else i=or([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0);this.l+=8;return i}else e=8;case 16:a=Ze(this,this.l,e);break;};}this.l+=e;return a}var kr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var wr=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var Sr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function Br(e,r,t){var a=0,n=0;if(t==="dbcs"){for(n=0;n!=r.length;++n)Sr(this,r.charCodeAt(n),this.l+2*n);a=2*r.length}else if(t==="sbcs"){r=r.replace(/[^\x00-\x7F]/g,"_");for(n=0;n!=r.length;++n)this[this.l+n]=r.charCodeAt(n)&255;a=r.length}else if(t==="hex"){for(;n>8}while(this.l>>=8;this[this.l+1]=r&255;break;case 3:a=3;this[this.l]=r&255;r>>>=8;this[this.l+1]=r&255;r>>>=8;this[this.l+2]=r&255;break;case 4:a=4;kr(this,r,this.l);break;case 8:a=8;if(t==="f"){Ge(this,r,this.l);break};case 16:break;case-4:a=4;wr(this,r,this.l);break;}this.l+=a;return this}function Cr(e,r){var t=Ze(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function _r(e,r){e.l=r;e._R=Er;e.chk=Cr;e._W=Br}function Tr(e,r){e.l+=r}function xr(e,r){if(typeof console!="undefined")console.log(e.slice(e.l,e.l+r));e.l+=r}function Ir(e,r){e.l+=r}function Ar(e){var r=v(e);_r(r,0);return r}function yr(e,r,t){if(!e)return;var a,n,i;_r(e,e.l||0);var s=e.length,l=0,o=0;while(e.la.l)a=a.slice(0,a.l);if(a.length>0)e.push(a);a=null};var i=function c(e){if(a&&e=128?1:0)+1+a;if(a>=128)++i;if(a>=16384)++i;if(a>=2097152)++i;var s=e.next(i);if(n<=127)s._W(1,n);else{s._W(1,(n&127)+128);s._W(1,n>>7)}for(var l=0;l!=4;++l){if(a>=128){s._W(1,(a&127)+128);a>>=7}else{s._W(1,a);break}}if(a>0&&cr(t))e.push(t)}function Or(e,r,t){var a=V(e);if(r.s){if(a.cRel)a.c+=r.s.c;if(a.rRel)a.r+=r.s.r}else{a.c+=r.c;a.r+=r.r}if(!t||t.biff<12){while(a.c>=256)a.c-=256;while(a.r>=65536)a.r-=65536}return a}function Fr(e,r,t){var a=V(e);a.s=Or(a.s,r.s,t);a.e=Or(a.e,r.s,t);return a}function Pr(e){var r=$r(e);if(e.cRel===0)r=Gr(r);if(e.rRel===0)r=Wr(r);return r}function Nr(e,r){if(e.s.r==0&&!e.s.rRel){if(e.e.r==(r.biff>=12?1048575:65535)&&!e.e.rRel){return(e.s.cRel?"":"$")+Xr(e.s.c)+":"+(e.e.cRel?"":"$")+Xr(e.e.c)}}if(e.s.c==0&&!e.s.cRel){if(e.e.c==(r.biff>=12?65535:255)&&!e.e.cRel){return(e.s.rRel?"":"$")+Hr(e.s.r)+":"+(e.e.rRel?"":"$")+Hr(e.e.r)}}return Pr(e.s)+":"+Pr(e.e)}var Lr={};var Mr=function(e,r){var t;if(typeof r!=="undefined")t=r;else if(typeof require!=="undefined"){try{t=undefined}catch(a){t=null}}e.rc4=function(e,r){var t=new Array(256);var a=0,n=0,i=0,s=0;for(n=0;n!=256;++n)t[n]=n;for(n=0;n!=256;++n){i=i+t[n]+e[n%e.length].charCodeAt(0)&255;s=t[n];t[n]=t[i];t[i]=s}n=i=0;var l=Buffer(r.length);for(a=0;a!=r.length;++a){n=n+1&255;i=(i+t[n])%256;s=t[n];t[n]=t[i];t[i]=s;l[a]=r[a]^t[t[n]+t[i]&255]}return l};e.md5=function(e){if(!t)throw new Error("Unsupported crypto");return t.createHash("md5").update(e).digest("hex")}};Mr(Lr,typeof crypto!=="undefined"?crypto:undefined);function Ur(e){return parseInt(zr(e),10)-1}function Hr(e){return""+(e+1)}function Wr(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function zr(e){return e.replace(/\$(\d+)$/,"$1")}function Vr(e){var r=jr(e),t=0,a=0;for(;a!==r.length;++a)t=26*t+r.charCodeAt(a)-64;return t-1}function Xr(e){var r="";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function Gr(e){return e.replace(/^([A-Z])/,"$$$1")}function jr(e){return e.replace(/^\$([A-Z])/,"$1")}function Kr(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Yr(e){var r=Kr(e);return{c:Vr(r[0]),r:Ur(r[1])}}function $r(e){return Xr(e.c)+Hr(e.r)}function Zr(e){return Gr(Wr(e))}function Qr(e){return jr(zr(e))}function Jr(e){var r=e.split(":").map(Yr);return{s:r[0],e:r[r.length-1]}}function qr(e,r){if(typeof r==="undefined"||typeof r==="number"){return qr(e.s,e.e)}if(typeof e!=="string")e=$r(e);if(typeof r!=="string")r=$r(r);return e==r?e:e+":"+r}function et(e){var r={s:{c:0,r:0},e:{c:0,r:0}};var t=0,a=0,n=0;var i=e.length;for(t=0;a26)break;t=26*t+n}r.s.c=--t;for(t=0;a9)break;t=10*t+n}r.s.r=--t;if(a===i||e.charCodeAt(++a)===58){r.e.c=r.s.c;r.e.r=r.s.r;return r}for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-64)<1||n>26)break;t=26*t+n}r.e.c=--t;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-48)<0||n>9)break;t=10*t+n}r.e.r=--t;return r}function rt(e,r){var t=e.t=="d"&&r instanceof Date;if(e.z!=null)try{return e.w=E.format(e.z,t?P(r):r)}catch(a){}try{return e.w=E.format((e.XF||{}).numFmtId||(t?14:0),t?P(r):r)}catch(a){return""+r}}function tt(e,r,t){if(e==null||e.t==null||e.t=="z")return"";if(e.w!==undefined)return e.w;if(e.t=="d"&&!e.z&&t&&t.dateNF)e.z=t.dateNF;if(r==undefined)return rt(e,e.v);return rt(e,r)}function at(e,r){var t=r&&r.sheet?r.sheet:"Sheet1";var a={};a[t]=e;return{SheetNames:[t],Sheets:a}}function nt(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=t.dense?[]:{};var n={s:{c:1e7,r:1e7},e:{c:0,r:0}};for(var i=0;i!=e.length;++i){for(var s=0;s!=e[i].length;++s){if(typeof e[i][s]==="undefined")continue;var l={v:e[i][s]};if(Array.isArray(l.v)){l.f=e[i][s][1];l.v=l.v[0]}if(n.s.r>i)n.s.r=i;if(n.s.c>s)n.s.c=s;if(n.e.r0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}function ot(e,r){return{ich:e._R(2),ifnt:e._R(2)}}function ft(e,r){if(!r)r=Ar(4);r._W(2,e.ich||0);r._W(2,e.ifnt||0);return r}function ct(e,r){var t=e.l;var a=e._R(1);var n=st(e);var i=[];var s={t:n,h:n};if((a&1)!==0){var l=e._R(4);for(var o=0;o!=l;++o)i.push(ot(e));s.r=i}else s.r=[{ich:0,ifnt:0}];e.l=t+r;return s}function ut(e,r){var t=false;if(r==null){t=true;r=Ar(15+4*e.t.length)}r._W(1,0);lt(e.t,r);return t?r.slice(0,r.l):r}var ht=ct;function dt(e,r){var t=false;if(r==null){t=true;r=Ar(23+4*e.t.length)}r._W(1,1);lt(e.t,r);r._W(4,1);ft({ich:0,ifnt:0},r);return t?r.slice(0,r.l):r}function vt(e){var r=e._R(4);var t=e._R(2);t+=e._R(1)<<16;var a=e._R(1);return{c:r,iStyleRef:t}}function pt(e,r){if(r==null)r=Ar(8);r._W(-4,e.c);r._W(3,e.iStyleRef||e.s);r._W(1,0);return r}var bt=st;var mt=lt;function gt(e){var r=e._R(4);return r===0||r===4294967295?"":e._R(r,"dbcs")}function Et(e,r){var t=false;if(r==null){t=true;r=Ar(127)}r._W(4,e.length>0?e.length:4294967295);if(e.length>0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}var kt=st;var wt=lt;var St=gt;var Bt=Et;function Ct(e){var r=e.slice(e.l,e.l+4);var t=r[0]&1,a=r[0]&2;e.l+=4;r[0]&=252;var n=a===0?or([0,0,0,0,r[0],r[1],r[2],r[3]],0):pr(r,0)>>2;return t?n/100:n}function _t(e,r){if(r==null)r=Ar(4);var t=0,a=0,n=e*100;if(e==(e|0)&&e>=-(1<<29)&&e<1<<29){a=1}else if(n==(n|0)&&n>=-(1<<29)&&n<1<<29){a=1;t=1}if(a)r._W(-4,((t?n:e)<<2)+(t+2));else throw new Error("unsupported RkNumber "+e)}function Tt(e){var r={s:{},e:{}};r.s.r=e._R(4);r.e.r=e._R(4);r.s.c=e._R(4);r.e.c=e._R(4);return r}function xt(e,r){if(!r)r=Ar(16);r._W(4,e.s.r);r._W(4,e.e.r);r._W(4,e.s.c);r._W(4,e.e.c);return r}var It=Tt;var At=xt;function yt(e,r){return e._R(8,"f")}function Rt(e,r){return(r||Ar(8))._W(8,e,"f")}var Dt={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var Ot=R(Dt);function Ft(e,r){var t={};var a=e._R(1);var n=a&1;var i=a>>>1;var s=e._R(1);var l=e._R(2,"i");var o=e._R(1);var f=e._R(1);var c=e._R(1);var u=e._R(1);switch(i){case 0:t.auto=1;break;case 1:t.index=s;var h=aa[s];if(h)t.rgb=hl(h);break;case 2:t.rgb=hl([o,f,c]);break;case 3:t.theme=s;break;}if(l!=0)t.tint=l>0?l/32767:l/32768;return t}function Pt(e,r){if(!r)r=Ar(8);if(!e||e.auto){r._W(4,0);r._W(4,0);return r}if(e.index){r._W(1,2);r._W(1,e.index)}else if(e.theme){r._W(1,6);r._W(1,e.theme)}else{r._W(1,5);r._W(1,0)}var t=e.tint||0;if(t>0)t*=32767;else if(t<0)t*=32768;r._W(2,t);if(!e.rgb){r._W(2,0);r._W(1,0);r._W(1,0)}else{var a=e.rgb||"FFFFFF";r._W(1,parseInt(a.substr(0,2),16));r._W(1,parseInt(a.substr(2,2),16));r._W(1,parseInt(a.substr(4,2),16));r._W(1,255)}return r}function Nt(e,r,t){var a=e._R(1);e.l++;var n={fItalic:a&2,fStrikeout:a&8,fOutline:a&16,fShadow:a&32,fCondense:a&64,fExtend:a&128};return n}function Lt(e,r){if(!r)r=Ar(2);var t=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);r._W(1,t);r._W(1,0);return r}var Mt=2;var Ut=3;var Ht=11;var Wt=12;var zt=19;var Vt=21;var Xt=30;var Gt=64;var jt=71;var Kt=4096;var Yt=80;var $t=81;var Zt=[Yt,$t];var Qt={1:{n:"CodePage",t:Mt},2:{n:"Category",t:Yt},3:{n:"PresentationFormat",t:Yt},4:{n:"ByteCount",t:Ut},5:{n:"LineCount",t:Ut},6:{n:"ParagraphCount",t:Ut},7:{n:"SlideCount",t:Ut},8:{n:"NoteCount",t:Ut},9:{n:"HiddenCount",t:Ut},10:{n:"MultimediaClipCount",t:Ut},11:{n:"Scale",t:Ht},12:{n:"HeadingPair",t:Kt|Wt},13:{n:"DocParts",t:Kt|Xt},14:{n:"Manager",t:Yt},15:{n:"Company",t:Yt},16:{n:"LinksDirty",t:Ht},17:{n:"CharacterCount",t:Ut},19:{n:"SharedDoc",t:Ht},22:{n:"HLinksChanged",t:Ht},23:{n:"AppVersion",t:Ut,p:"version"},26:{n:"ContentType",t:Yt},27:{n:"ContentStatus",t:Yt},28:{n:"Language",t:Yt},29:{n:"Version",t:Yt},255:{}};var Jt={1:{n:"CodePage",t:Mt},2:{n:"Title",t:Yt},3:{n:"Subject",t:Yt},4:{n:"Author",t:Yt},5:{n:"Keywords",t:Yt},6:{n:"Comments",t:Yt},7:{n:"Template",t:Yt},8:{n:"LastAuthor",t:Yt},9:{n:"RevNumber",t:Yt},10:{n:"EditTime",t:Gt},11:{n:"LastPrinted",t:Gt},12:{n:"CreatedDate",t:Gt},13:{n:"ModifiedDate",t:Gt},14:{n:"PageCount",t:Ut},15:{n:"WordCount",t:Ut},16:{n:"CharCount",t:Ut},17:{n:"Thumbnail",t:jt},18:{n:"ApplicationName",t:Xt},19:{n:"DocumentSecurity",t:Ut},255:{}};var qt={2147483648:{n:"Locale",t:zt},2147483651:{n:"Behavior",t:zt},1919054434:{}};(function(){for(var e in qt)if(qt.hasOwnProperty(e))Qt[e]=Jt[e]=qt[e]})();var ea={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var ra=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function ta(e){return e.map(function(e){return[e>>16&255,e>>8&255,e&255]})}var aa=ta([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var na={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"};var ia=function(){var e={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};I(e).forEach(function(r){if(!e[r].xlsm)e[r].xlsm=e[r].xlsx});I(e).forEach(function(r){I(e[r]).forEach(function(t){na[e[r][t]]=r})});return e}();var sa=D(na);ze.CT="http://schemas.openxmlformats.org/package/2006/content-types";function la(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""}}function oa(e,r){var t=la();if(!e||!e.match)return t;var a={};(e.match(oe)||[]).forEach(function(e){var r=ue(e);switch(r[0].replace(fe,"<")){case"0?t.calcchains[0]:"";t.sst=t.strs.length>0?t.strs[0]:"";t.style=t.styles.length>0?t.styles[0]:"";t.defaults=a;delete t.calcchains;return t}var fa=Ue("Types",null,{xmlns:ze.CT,"xmlns:xsd":ze.xsd,"xmlns:xsi":ze.xsi});var ca=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",sa.rels[0]]].map(function(e){return Ue("Default",null,{Extension:e[0],ContentType:e[1]})});function ua(e,r){var t=[],a;t[t.length]=se;t[t.length]=fa;t=t.concat(ca);var n=function(n){if(e[n]&&e[n].length>0){a=e[n][0];t[t.length]=Ue("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:ia[n][r.bookType||"xlsx"]})}};var i=function(a){(e[a]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:ia[a][r.bookType||"xlsx"]})})};var s=function(r){(e[r]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:sa[r][0]})})};n("workbooks");i("sheets");i("charts");s("themes");["strs","styles"].forEach(n);["coreprops","extprops","custprops"].forEach(s);s("vba");s("comments");s("drawings");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var ha={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function da(e){var r=e.lastIndexOf("/");return e.substr(0,r+1)+"_rels/"+e.substr(r+1)+".rels"}function va(e,r){if(!e)return e;if(r.charAt(0)!=="/"){r="/"+r}var t={};var a={};(e.match(oe)||[]).forEach(function(e){var n=ue(e);if(n[0]==="2){r[r.length]="";r[1]=r[1].replace("/>",">")}return r.join("")}function ma(e,r,t,a,n){if(!n)n={};if(!e["!id"])e["!id"]={};if(r<0)for(r=1;e["!id"]["rId"+r];++r){}n.Id="rId"+r;n.Type=a;n.Target=t;if(n.Type==ha.HLINK)n.TargetMode="External";if(e["!id"][n.Id])throw new Error("Cannot rewrite rId "+r);e["!id"][n.Id]=n;e[("/"+n.Target).replace("//","/")]=n;return r}var ga="application/vnd.oasis.opendocument.spreadsheet";function Ea(e,r){var t=uv(e);var a;var n;while(a=hv.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=ue(a[0],false);if(n.path=="/"&&n.type!==ga)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function ka(e,r){var t=[se];t.push('\n');t.push(' \n');for(var a=0;a\n');t.push("");return t.join("")}function wa(e,r,t){return[' \n',' \n'," \n"].join("")}function Sa(e,r){return[' \n',' \n'," \n"].join("")}function Ba(e,r){var t=[se];t.push('\n');for(var a=0;a!=e.length;++a){t.push(wa(e[a][0],e[a][1]));t.push(Sa("",e[a][0]))}t.push(wa("","Document","pkg"));t.push("");return t.join("")}var Ca=function(){var e='Sheet'+"JS "+r.version+"";return function t(r,a){return e}}();var _a=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]]; +ze.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";ha.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var Ta=function(){var e=new Array(_a.length);for(var r=0;r<_a.length;++r){var t=_a[r];var a="(?:"+t[0].substr(0,t[0].indexOf(":"))+":)"+t[0].substr(t[0].indexOf(":")+1);e[r]=new RegExp("<"+a+"[^>]*>([\\s\\S]*?)")}return e}();function xa(e){var r={};e=_e(e);for(var t=0;t<_a.length;++t){var a=_a[t],n=e.match(Ta[t]);if(n!=null&&n.length>0)r[a[1]]=n[1];if(a[2]==="date"&&r[a[1]])r[a[1]]=H(r[a[1]])}return r}var Ia=Ue("cp:coreProperties",null,{"xmlns:cp":ze.CORE_PROPS,"xmlns:dc":ze.dc,"xmlns:dcterms":ze.dcterms,"xmlns:dcmitype":ze.dcmitype,"xmlns:xsi":ze.xsi});function Aa(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;a[a.length]=t?Ue(e,r,t):Le(e,r)}function ya(e,r){var t=r||{};var a=[se,Ia],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)Aa("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:He(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)Aa("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:He(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=_a.length;++i){var s=_a[i];var l=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(l===true)l="1";else if(l===false)l="0";else if(typeof l=="number")l=String(l);if(l!=null)Aa(s[0],l,null,a,n)}if(a.length>2){a[a.length]="";a[1]=a[1].replace("/>",">")}return a.join("")}var Ra=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];ze.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";ha.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function Da(e,r,t){var a={};if(!r)r={};e=_e(e);Ra.forEach(function(t){switch(t[2]){case"string":r[t[1]]=(e.match(ye(t[0]))||[])[1];break;case"bool":r[t[1]]=(e.match(ye(t[0]))||[])[1]==="true";break;case"raw":var n=e.match(new RegExp("<"+t[0]+"[^>]*>([\\s\\S]*?)"));if(n&&n.length>0)a[t[1]]=n[1];break;}});if(a.HeadingPairs&&a.TitlesOfParts){var n=Pe(a.HeadingPairs,t);var i=Pe(a.TitlesOfParts,t).map(function(e){return e.v});var s=0,l=0;if(i.length>0)for(var o=0;o!==n.length;o+=2){l=+n[o+1].v;switch(n[o].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Werkbladen":r.Worksheets=l;r.SheetNames=i.slice(s,s+l);break;case"Named Ranges":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":r.NamedRanges=l;r.DefinedNames=i.slice(s,s+l);break;case"Charts":;case"Diagramme":r.Chartsheets=l;r.ChartNames=i.slice(s,s+l);break;}s+=l}}return r}var Oa=Ue("Properties",null,{xmlns:ze.EXT_PROPS,"xmlns:vt":ze.vt});function Fa(e,r){var t=[],a={},n=Ue;if(!e)e={};e.Application="SheetJS";t[t.length]=se;t[t.length]=Oa;Ra.forEach(function(r){if(e[r[1]]===undefined)return;var a;switch(r[2]){case"string":a=String(e[r[1]]);break;case"bool":a=e[r[1]]?"true":"false";break;}if(a!==undefined)t[t.length]=n(r[0],a)});t[t.length]=n("HeadingPairs",n("vt:vector",n("vt:variant","Worksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"}));t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map(function(e){return""+ge(e)+""}).join(""),{size:e.Worksheets,baseType:"lpstr"}));if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}ze.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";ha.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var Pa=/<[^>]+>[^<]*/g;function Na(e,r){var t={},a="";var n=e.match(Pa);if(n)for(var i=0;i!=n.length;++i){var s=n[i],l=ue(s);switch(l[0]){case"":a=null;break;default:if(s.indexOf("");var f=o[0].substring(4),c=o[1];switch(f){case"lpstr":;case"bstr":;case"lpwstr":t[a]=pe(c);break;case"bool":t[a]=Ce(c,"");break;case"i1":;case"i2":;case"i4":;case"i8":;case"int":;case"uint":t[a]=parseInt(c,10);break;case"r4":;case"r8":;case"decimal":t[a]=parseFloat(c);break;case"filetime":;case"date":t[a]=H(c);break;case"cy":;case"error":t[a]=pe(c);break;default:if(f.slice(-1)=="/")break;if(r.WTF&&typeof console!=="undefined")console.warn("Unexpected",s,f,o);}}else if(s.substr(0,2)==="2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var Ua={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};var Ha=y(Ua);function Wa(e,r,t){r=Ha[r]||r;e[r]=t}function za(e,r){var t=[];I(Ua).map(function(e){for(var r=0;r<_a.length;++r)if(_a[r][1]==e)return _a[r];for(r=0;r'+i.join("")+""}function Xa(e){var r=e._R(4),t=e._R(4);return new Date((t/1e7*Math.pow(2,32)+r/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function Ga(e,r,t){var a=e._R(0,"lpstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function ja(e,r,t){var a=e._R(0,"lpwstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function Ka(e,r,t){if(r===31)return ja(e);return Ga(e,r,t)}function Ya(e,r,t){return Ka(e,r,t===false?0:4)}function $a(e,r){if(!r)throw new Error("VtUnalignedString must have positive length");return Ka(e,r,0)}function Za(e){var r=e._R(4);var t=[];for(var a=0;a!=r;++a)t[a]=e._R(0,"lpstr");return t}function Qa(e){return Za(e)}function Ja(e){var r=sn(e,$t);var t=sn(e,Ut);return[r,t]}function qa(e){var r=e._R(4);var t=[];for(var a=0;a!=r/2;++a)t.push(Ja(e));return t}function en(e){return qa(e)}function rn(e,r){var t=e._R(4);var a={};for(var n=0;n!=t;++n){var i=e._R(4);var s=e._R(4);a[i]=e._R(s,r===1200?"utf16le":"utf8").replace(m,"").replace(g,"!")}if(e.l&3)e.l=e.l>>2+1<<2;return a}function tn(e){var r=e._R(4);var t=e.slice(e.l,e.l+r);if((r&3)>0)e.l+=4-(r&3)&3;return t}function an(e){var r={};r.Size=e._R(4);e.l+=r.Size;return r}function nn(e,r){}function sn(e,r,t){var a=e._R(2),n,i=t||{};e.l+=2;if(r!==Wt)if(a!==r&&Zt.indexOf(r)===-1)throw new Error("Expected type "+r+" saw "+a);switch(r===Wt?a:r){case 2:n=e._R(2,"i");if(!i.raw)e.l+=2;return n;case 3:n=e._R(4,"i");return n;case 11:return e._R(4)!==0;case 19:n=e._R(4);return n;case 30:return Ga(e,a,4).replace(m,"");case 31:return ja(e);case 64:return Xa(e);case 65:return tn(e);case 71:return an(e);case 80:return Ya(e,a,!i.raw).replace(m,"");case 81:return $a(e,a).replace(m,"");case 4108:return en(e);case 4126:return Qa(e);default:throw new Error("TypedPropertyValue unrecognized type "+r+" "+a);}}function ln(e,r){var t=e.l;var a=e._R(4);var i=e._R(4);var s=[],l=0;var o=0;var f=-1,c={};for(l=0;l!=i;++l){var u=e._R(4);var h=e._R(4);s[l]=[u,h+t]}var d={};for(l=0;l!=i;++l){if(e.l!==s[l][1]){var v=true;if(l>0&&r)switch(r[s[l-1][0]].t){case 2:if(e.l+2===s[l][1]){e.l+=2;v=false}break;case 80:if(e.l<=s[l][1]){e.l=s[l][1];v=false}break;case 4108:if(e.l<=s[l][1]){e.l=s[l][1];v=false}break;}if(!r&&e.l<=s[l][1]){v=false;e.l=s[l][1]}if(v)throw new Error("Read Error: Expected address "+s[l][1]+" at "+e.l+" :"+l)}if(r){var p=r[s[l][0]];d[p.n]=sn(e,p.t,{raw:true});if(p.p==="version")d[p.n]=String(d[p.n]>>16)+"."+String(d[p.n]&65535);if(p.n=="CodePage")switch(d[p.n]){case 0:d[p.n]=1252;case 874:;case 932:;case 936:;case 949:;case 950:;case 1250:;case 1251:;case 1253:;case 1254:;case 1255:;case 1256:;case 1257:;case 1258:;case 1e4:;case 1200:;case 1201:;case 1252:;case 65e3:;case-536:;case 65001:;case-535:n(o=d[p.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[p.n]);}}else{if(s[l][0]===1){o=d.CodePage=sn(e,Mt);n(o);if(f!==-1){var b=e.l;e.l=s[f][1];c=rn(e,o);e.l=b}}else if(s[l][0]===0){if(o===0){f=l;e.l=s[l+1][1];continue}c=rn(e,o)}else{var m=c[s[l][0]];var g;switch(e[e.l]){case 65:e.l+=4;g=tn(e);break;case 30:e.l+=4;g=Ya(e,e[e.l-4]);break;case 31:e.l+=4;g=Ya(e,e[e.l-4]);break;case 3:e.l+=4;g=e._R(4,"i");break;case 19:e.l+=4;g=e._R(4);break;case 5:e.l+=4;g=e._R(8,"f");break;case 11:e.l+=4;g=hn(e,4);break;case 64:e.l+=4;g=H(Xa(e));break;default:throw new Error("unparsed value: "+e[e.l]);}d[m]=g}}}e.l=t+a;return d}function on(e,r){var t=e.content;if(!t)return{};_r(t,0);var a,n,i,s,l=0;t.chk("feff","Byte Order: ");var o=t._R(2);var f=t._R(4);t.chk(T.utils.consts.HEADER_CLSID,"CLSID: ");a=t._R(4);if(a!==1&&a!==2)throw new Error("Unrecognized #Sets: "+a);n=t._R(16);s=t._R(4);if(a===1&&s!==t.l)throw new Error("Length mismatch: "+s+" !== "+t.l);else if(a===2){i=t._R(16);l=t._R(4)}var c=ln(t,r);var u={SystemIdentifier:f};for(var h in c)u[h]=c[h];u.FMTID=n;if(a===1)return u;if(t.l!==l)throw new Error("Length mismatch 2: "+t.l+" !== "+l);var d;try{d=ln(t,null)}catch(v){}for(h in d)u[h]=d[h];u.FMTID=[n,i];return u}function fn(e,r){e._R(r);return null}function cn(e,r){if(!r)r=Ar(e);for(var t=0;t=12?2:1);var i=1,s="sbcs-cont";var l=t;if(a&&a.biff>=8)t=1200;if(!a||a.biff==8){var o=e._R(1);if(o){i=2;s="dbcs-cont"}}else if(a.biff==12){i=2;s="wstr"}var f=n?e._R(n,s):"";t=l;return f}function kn(e){var r=t;t=1200;var a=e._R(2),n=e._R(1);var i=n&1,s=n&4,l=n&8;var o=1+(n&1);var f=0,c;var u={};if(l)f=e._R(2);if(s)c=e._R(4);var h=n&1?"dbcs-cont":"sbcs-cont";var d=a===0?"":e._R(a,h);if(l)e.l+=4*f;if(s)e.l+=c;u.t=d;if(!l){u.raw=""+u.t+"";u.r=u.t}t=r;return u}function wn(e,r,t){var a;if(t){if(t.biff>=2&&t.biff<=5)return e._R(r,"sbcs-cont");if(t.biff>=12)return e._R(r,"dbcs-cont")}var n=e._R(1);if(n===0){a=e._R(r,"sbcs-cont")}else{a=e._R(r,"dbcs-cont")}return a}function Sn(e,r,t){var a=e._R(t&&t.biff==2?1:2);if(a===0){e.l++;return""}return wn(e,a,t)}function Bn(e,r,t){if(t.biff>5)return Sn(e,r,t);var a=e._R(1);if(a===0){e.l++;return""}return e._R(a,"sbcs-cont")}function Cn(e,r,t){var a=e._R(1);e.l++;var n=e._R(2);e.l+=2;return[a,n]}function _n(e){var r=e._R(4),t=e.l;var a=false;if(r>24){e.l+=r-24;if(e._R(16)==="795881f43b1d7f48af2c825dc4852763")a=true;e.l=t}var n=e._R((a?r-24:r)>>1,"utf16le").replace(m,"");if(a)e.l+=24;return n}function Tn(e,r){var t=e._R(2);var a=e._R(4);var n=e._R(a,"cstr");var i=e._R(2);var s=e._R(2);var l=e._R(4);if(l===0)return n.replace(/\\/g,"/");var o=e._R(4);var f=e._R(2);var c=e._R(o>>1,"utf16le").replace(m,"");return c}function xn(e,r){var t=e._R(16);r-=16;switch(t){case"e0c9ea79f9bace118c8200aa004ba90b":return _n(e,r);case"0303000000000000c000000000000046":return Tn(e,r);default:throw new Error("Unsupported Moniker "+t);}}function In(e,r){var t=e._R(4);var a=e._R(t,"utf16le").replace(m,"");return a}function An(e,r){var t=e.l+r;var a=e._R(4);if(a!==2)throw new Error("Unrecognized streamVersion: "+a);var n=e._R(2);e.l+=2;var i,s,l,o,f,c,u;if(n&16)i=In(e,t-e.l);if(n&128)s=In(e,t-e.l);if((n&257)===257)l=In(e,t-e.l);if((n&257)===1)o=xn(e,t-e.l);if(n&8)f=In(e,t-e.l);if(n&32)c=e._R(16);if(n&64)u=Xa(e);e.l=t;var h=s||l||o;if(f)h+="#"+f;return{Target:h}}function yn(e,r){var t=e._R(1),a=e._R(1),n=e._R(1),i=e._R(1);return[t,a,n,i]}function Rn(e,r){var t=yn(e,r);t[3]=0;return t}function Dn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);return{r:t,c:a,ixfe:n}}function On(e,r,t,a){if(!a)a=Ar(6);a._W(2,e);a._W(2,r);a._W(2,t||0);return a}function Fn(e){var r=e._R(2);var t=e._R(2);e.l+=8;return{type:r,flags:t}}function Pn(e,r,t){return r===0?"":Bn(e,r,t)}function Nn(e,r,t){var a=t.biff>8?4:2;var n=e._R(a),i=e._R(a,"i"),s=e._R(a,"i");return[n,i,s]}function Ln(e,r){var t=e._R(2);var a=Ct(e);return[t,a]}function Mn(e,r,t){e.l+=4;r-=4;var a=e.l+r;var n=En(e,r,t);var i=e._R(2);a-=e.l;if(i!==a)throw new Error("Malformed AddinUdf: padding = "+a+" != "+i);e.l+=i;return n}function Un(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);var i=e._R(2);return{s:{c:n,r:t},e:{c:i,r:a}}}function Hn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(1);var i=e._R(1);return{s:{c:n,r:t},e:{c:i,r:a}}}var Wn=Hn;function zn(e,r){e.l+=4;var t=e._R(2);var a=e._R(2);var n=e._R(2);e.l+=12;return[a,t,n]}function Vn(e,r){var t={};e.l+=4;e.l+=16;t.fSharedNote=e._R(2);e.l+=4;return t}function Xn(e,r){var t={};e.l+=4;e.cf=e._R(2);return t}function Gn(e,r){e.l+=2;e.l+=e._R(2)}var jn={0:Gn,4:Gn,5:Gn,6:Gn,7:Xn,8:Gn,9:Gn,10:Gn,11:Gn,12:Gn,13:Vn,14:Gn,15:Gn,16:Gn,17:Gn,18:Gn,19:Gn,20:Gn,21:zn};function Kn(e,r,t){var a=e.l+r;var n=[];while(e.l=2){t.dt=e._R(2);e.l-=2}switch(t.BIFFVer){case 1536:;case 1280:;case 2:;case 7:break;default:if(r>6)throw new Error("Unexpected BIFF Ver "+t.BIFFVer);}e._R(r);return t}function $n(e,r,t){var a=1536,n=16;switch(t.bookType){case"biff8":break;case"biff5":a=1280;n=8;break;case"biff4":a=4;n=6;break;case"biff3":a=3;n=6;break;case"biff2":a=2;n=4;break;default:throw new Error("unsupported BIFF version");}var i=Ar(n);i._W(2,a);i._W(2,r);if(n>4)i._W(2,29282);if(n>6)i._W(2,1997);if(n>8){i._W(2,49161);i._W(2,1);i._W(2,1798);i._W(2,0)}return i}function Zn(e,r){if(r===0)return 1200;var t;if((t=e._R(2))!==1200){}return 1200}function Qn(e,r,t){if(t.enc){e.l+=r;return""}var a=e.l;var n=Sn(e,0,t);e._R(r+a-e.l);return n}function Jn(e,r){var t=!r||r.biff==8;var a=Ar(t?112:54);a._W(r.biff==8?2:1,7);a._W(1,0);a._W(4,859007059);a._W(4,5458548);while(a.l=8?2:1;var a=Ar(8+t*e.name.length);a._W(4,e.pos);a._W(1,e.hs||0);a._W(1,e.dt);a._W(1,e.name.length);if(r.biff>=8)a._W(1,1);a._W(t*e.name.length,e.name,r.biff<8?"sbcs":"utf16le");return a.slice(0,a.l)}function ri(e,r){var t=e.l+r;var a=e._R(4);var n=e._R(4);var i=[];for(var s=0;s!=n&&e.l>15);n&=32767}var i={Unsynced:a&1,DyZero:(a&2)>>1,ExAsc:(a&4)>>2,ExDsc:(a&8)>>3};return[i,n]}function li(e,r){var t=e._R(2),a=e._R(2),n=e._R(2),i=e._R(2);var s=e._R(2),l=e._R(2),o=e._R(2);var f=e._R(2),c=e._R(2);return{Pos:[t,a],Dim:[n,i],Flags:s,CurTab:l,FirstTab:o,Selected:f,TabRatio:c}}function oi(e){var r=Ar(18);r._W(2,0);r._W(2,0);r._W(2,29280);r._W(2,17600);r._W(2,56);r._W(2,0);r._W(2,0);r._W(2,1);r._W(2,500);return r}function fi(e,r,t){var a={dyHeight:e._R(2),fl:e._R(2)};switch(t&&t.biff||8){case 2:break;case 3:;case 4:e.l+=2;break;default:e.l+=10;break;}a.name=En(e,0,t);return a}function ci(e,r){var t=Dn(e);t.isst=e._R(4);return t}function ui(e,r,t){var a=e.l+r;var n=Dn(e,6);if(t.biff==2)e.l++;var i=Sn(e,a-e.l,t);n.val=i;return n}function hi(e,r,t,a){var n=!a||a.biff==8;var i=Ar(6+2+ +n+(1+n)*t.length);On(e,r,0,i);i._W(2,t.length);if(n)i._W(1,1);i._W((1+n)*t.length,t,n?"utf16le":"sbcs");return i}function di(e,r,t){var a=e._R(2);var n=Bn(e,0,t);return[a,n]}var vi=Bn;function pi(e,r,t){var a=e.l+r;var n=t.biff==8||!t.biff?4:2;var i=e._R(n),s=e._R(n);var l=e._R(2),o=e._R(2);e.l=a;return{s:{r:i,c:l},e:{r:s,c:o}}}function bi(e,r){var t=r.biff==8||!r.biff?4:2;var a=Ar(2*t+6);a._W(t,e.s.r);a._W(t,e.e.r+1);a._W(2,e.s.c);a._W(2,e.e.c+1);a._W(2,0);return a}function mi(e,r){var t=e._R(2),a=e._R(2);var n=Ln(e);return{r:t,c:a,ixfe:n[0],rknum:n[1]}}function gi(e,r){var t=e.l+r-2;var a=e._R(2),n=e._R(2);var i=[];while(e.l>26];if(!a.cellStyles)return n;n.alc=i&7;n.fWrap=i>>3&1;n.alcV=i>>4&7;n.fJustLast=i>>7&1;n.trot=i>>8&255;n.cIndent=i>>16&15;n.fShrinkToFit=i>>20&1;n.iReadOrder=i>>22&2;n.fAtrNum=i>>26&1;n.fAtrFnt=i>>27&1;n.fAtrAlc=i>>28&1;n.fAtrBdr=i>>29&1;n.fAtrPat=i>>30&1;n.fAtrProt=i>>31&1;n.dgLeft=s&15;n.dgRight=s>>4&15;n.dgTop=s>>8&15;n.dgBottom=s>>12&15;n.icvLeft=s>>16&127;n.icvRight=s>>23&127;n.grbitDiag=s>>30&3;n.icvTop=l&127;n.icvBottom=l>>7&127;n.icvDiag=l>>14&127;n.dgDiag=l>>21&15;n.icvFore=o&127;n.icvBack=o>>7&127;n.fsxButton=o>>14&1;return n}function wi(e,r,t){return ki(e,r,0,t)}function Si(e,r,t){return ki(e,r,1,t)}function Bi(e,r,t){var a={};a.ifnt=e._R(2);a.numFmtId=e._R(2);a.flags=e._R(2);a.fStyle=a.flags>>2&1;r-=6;a.data=ki(e,r,a.fStyle,t);return a}function Ci(e,r){e.l+=4;var t=[e._R(2),e._R(2)];if(t[0]!==0)t[0]--;if(t[1]!==0)t[1]--;if(t[0]>7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}function _i(e){var r=Ar(8);r._W(4,0);r._W(2,e[0]?e[0]+1:0);r._W(2,e[1]?e[1]+1:0);return r}function Ti(e,r,t){var a=Dn(e,6);if(t.biff==2)++e.l;var n=mn(e,2);a.val=n;a.t=n===true||n===false?"b":"e";return a}function xi(e,r,t,a,n){var i=Ar(8);On(e,r,0,i);gn(t,n,i);return i}function Ii(e,r){var t=Dn(e,6);var a=yt(e,8);t.val=a;return t}function Ai(e,r,t,a){var n=Ar(14);On(e,r,0,n);Rt(t,n);return n}var yi=Pn;function Ri(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(2);t.sbcch=i;if(i==1025||i==14849)return[i,n];if(i<1||i>255)throw new Error("Unexpected SupBook type: "+i);var s=wn(e,i);var l=[];while(a>e.l)l.push(Sn(e));return[i,n,s,l]}function Di(e,r,t){var a=e._R(2);var n;var i={fBuiltIn:a&1,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=Mn(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}var Oi=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function Fi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var l=e._R(t&&t.biff==2?1:2);var o=0;if(!t||t.biff>=5){e.l+=2;o=e._R(2);e.l+=4}var f=wn(e,s,t);if(n&32)f=Oi[f.charCodeAt(0)];var c=a-e.l;if(t&&t.biff==2)--c;var u=a==e.l||l===0?[]:fu(e,c,t,l);return{chKey:i,Name:f,itab:o,rgce:u}}function Pi(e,r,t){if(t.biff<8)return Ni(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(Nn(e,t.biff>8?12:6,t));var s=[];return a}function Ni(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=En(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function Li(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=wn(e,a,t);var s=wn(e,n,t);return[i,s]}function Mi(e,r,t){var a=Hn(e,6);e.l++;var n=e._R(1);r-=8;return[cu(e,r,t),n]}function Ui(e,r,t){var a=Wn(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,lu(e,r,t,a)]}function Hi(e,r){var t=e._R(4)!==0;var a=e._R(4)!==0;var n=e._R(4);return[t,a,n]}function Wi(e,r,t){if(t.biff<8)return;var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var l=Bn(e,0,t);if(t.biff<8)e._R(1);return[{r:a,c:n},l,s,i]}function zi(e,r,t){return Wi(e,r,t)}function Vi(e,r){var t=[];var a=e._R(2);while(a--)t.push(Un(e,r));return t}function Xi(e,r,t){if(t&&t.biff<8)return ji(e,r,t);var a=zn(e,22);var n=Kn(e,r-22,a[1]);return{cmo:a,ft:n}}var Gi=[];Gi[8]=function(e,r,t){var a=e.l+r;e.l+=10;var n=e._R(2);e.l+=4;var i=e._R(2);e.l+=2;var s=e._R(2);e.l+=4;var l=e._R(1);e.l+=l;e.l=a;return{fmt:n}};function ji(e,r,t){var a=e._R(4);var n=e._R(2);var i=e._R(2);var s=e._R(2);var l=e._R(2);var o=e._R(2);var f=e._R(2);var c=e._R(2);var u=e._R(2);var h=e._R(2);var d=e._R(2);var v=e._R(2);var p=e._R(2);e.l+=6;r-=36;var b=[];b.push((Gi[n]||Tr)(e,r,t));return{cmo:[i,n,s],ft:b}}function Ki(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=Cn(e,6,t);var l=e._R(2);var o=e._R(2);var f=vn(e,2);var c=e._R(2);e.l+=c;for(var u=1;u=(h?l:2*l))break}if(n.length!==l&&n.length!==l*2){throw new Error("cchText: "+l+" != "+n.length)}e.l=a+r;return{t:n}}catch(v){e.l=a+r;return{t:n}}}function Yi(e,r){var t=Un(e,8);e.l+=16;var a=An(e,r-24);return[t,a]}function $i(e,r){var t=e.l+r;e._R(2);var a=Un(e,8);var n=e._R((r-10)/2,"dbcs-cont");n=n.replace(m,"");return[a,n]}function Zi(e,r){var t=[],a;a=e._R(2);t[0]=ea[a]||a;a=e._R(2);t[1]=ea[a]||a;return t}function Qi(e){if(!e)e=Ar(4);e._W(2,1);e._W(2,1);return e}function Ji(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Rn(e,8));return a}function qi(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Rn(e,8));return a}function es(e,r){e.l+=2;var t={cxfs:0,crc:0};t.cxfs=e._R(2);t.crc=e._R(4);return t}function rs(e,r,t){if(!t.cellStyles)return Tr(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var l=e._R(a);var o=e._R(2);if(a==2)e.l+=2;return{s:n,e:i,w:s,ixfe:l,flags:o}}function ts(e,r,t){var a={};e.l+=16;a.header=yt(e,8);a.footer=yt(e,8);e.l+=2;return a}function as(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function ns(e){var r=Ar(2*e);for(var t=0;t0){if(n[n.l]===42){n.l+=d;continue}++n.l;a[++S]=[];B=0;for(B=0;B!=g.length;++B){var C=n.slice(n.l,n.l+g[B].len);n.l+=g[B].len;_r(C,0);var _=cptable.utils.decode(m,C);switch(g[B].type){case"C":a[S][B]=cptable.utils.decode(m,C);a[S][B]=a[S][B].trim();break;case"D":if(_.length===8)a[S][B]=new Date(+_.substr(0,4),+_.substr(4,2)-1,+_.substr(6,2));else a[S][B]=_;break;case"F":a[S][B]=parseFloat(_.trim());break;case"+":;case"I":a[S][B]=o?C._R(-4,"i")^2147483648:C._R(4,"i");break;case"L":switch(_.toUpperCase()){case"Y":;case"T":a[S][B]=true;break;case"N":;case"F":a[S][B]=false;break;case" ":;case"?":a[S][B]=false;break;default:throw new Error("DBF Unrecognized L:|"+_+"|");}break;case"M":if(!s)throw new Error("DBF Unexpected MEMO for type "+i.toString(16));a[S][B]="##MEMO##"+(o?parseInt(_.trim(),10):C._R(4));break;case"N":a[S][B]=+_.replace(/\u0000/g,"").trim();break;case"@":a[S][B]=new Date(C._R(-8,"f")-621356832e5);break;case"T":a[S][B]=new Date((C._R(4)-2440588)*864e5+C._R(4));break;case"Y":a[S][B]=C._R(4,"i")/1e4;break;case"O":a[S][B]=-C._R(-8,"f");break;case"B":if(l&&g[B].len==8){a[S][B]=C._R(8,"f");break};case"G":;case"P":C.l+=g[B].len;break;case"0":if(g[B].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+g[B].type);}}}if(i!=2)if(n.l0)switch(g){case"ID":break;case"E":break;case"B":break;case"O":break;case"P":if(m[1].charAt(0)=="P")o.push(b.substr(3).replace(/;;/g,";"));break;case"C":for(s=1;s0){u[a].hpt=v;u[a].hpx=Dl(v)}else if(v===0)u[a].hidden=true;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+b);}if(S<1)f=null;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+b);}}if(u.length>0)c["!rows"]=u;if(h.length>0)c["!cols"]=h;return[l,c]}function t(r,t){var a=e(r,t);var n=a[0],i=a[1];var s=nt(n,t);I(i).forEach(function(e){s[e]=i[e]});return s}function a(e,r){return at(t(e,r),r)}function n(e,r,t,a,n){var i="C;Y"+(t+1)+";X"+(a+1)+";K";switch(e.t){case"n":i+=e.v||0;if(e.f&&!e.F)i+=";E"+df(e.f,{r:t,c:a});break;case"b":i+=e.v?"TRUE":"FALSE";break;case"e":i+=e.w||e.v;break;case"d":i+='"'+(e.w||e.v)+'"';break;case"s":i+='"'+e.v.replace(/"/g,"")+'"';break;}return i}function i(e,r){r.forEach(function(r,t){var a="F;W"+(t+1)+" "+(t+1)+" ";if(r.hidden)a+="0";else{if(typeof r.width=="number")r.wpx=kl(r.width);if(typeof r.wpx=="number")r.wch=wl(r.wpx);if(typeof r.wch=="number")a+=Math.round(r.wch)}if(a.charAt(a.length-1)!=" ")e.push(a)})}function s(e,r){r.forEach(function(r,t){var a="F;";if(r.hidden)a+="M0;";else if(r.hpt)a+="M"+20*r.hpt+";";else if(r.hpx)a+="M"+20*Rl(r.hpx)+";";if(a.length>2)e.push(a+"R"+(t+1))})}function l(e,r){var t=["ID;PWXL;N;E"],a=[];var l=et(e["!ref"]),o;var f=Array.isArray(e);var c="\r\n";t.push("P;PGeneral");t.push("F;P0;DG0G8;M255");if(e["!cols"])i(t,e["!cols"]);if(e["!rows"])s(t,e["!rows"]);t.push("B;Y"+(l.e.r-l.s.r+1)+";X"+(l.e.c-l.s.c+1)+";D"+[l.s.c,l.s.r,l.e.c,l.e.r].join(" "));for(var u=l.s.r;u<=l.e.r;++u){for(var h=l.s.c;h<=l.e.c;++h){var d=$r({r:u,c:h});o=f?(e[u]||[])[h]:e[d];if(!o||o.v==null&&(!o.f||o.F))continue;a.push(n(o,e,u,h,r))}}return t.join(c)+c+a.join(c)+c+"E"+c}return{to_workbook:a,to_sheet:t,from_sheet:l}}();var ks=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=e.split("\n"),a=-1,n=-1,i=0,s=[];for(;i!==t.length;++i){if(t[i].trim()==="BOT"){s[++a]=[];n=0;continue}if(a<0)continue;var l=t[i].trim().split(",");var o=l[0],f=l[1];++i;var c=t[i].trim();switch(+o){case-1:if(c==="BOT"){s[++a]=[];n=0;continue}else if(c!=="EOD")throw new Error("Unrecognized DIF special command "+c);break;case 0:if(c==="TRUE")s[a][n]=true;else if(c==="FALSE")s[a][n]=false;else if(!isNaN(G(f)))s[a][n]=G(f);else if(!isNaN(j(f).getDate()))s[a][n]=H(f);else s[a][n]=f;++n;break;case 1:c=c.substr(1,c.length-2);s[a][n++]=c!==""?c:null;break;}if(c==="EOD")break}return s}function t(r,t){return nt(e(r,t),t)}function a(e,r){return at(t(e,r),r)}var n=function(){var e=function t(e,r,a,n,i){e.push(r);e.push(a+","+n);e.push('"'+i.replace(/"/g,'""')+'"')};var r=function a(e,r,t,n){e.push(r+","+t);e.push(r==1?'"'+n.replace(/"/g,'""')+'"':n)};return function n(t,a){var n=[];var i=et(t["!ref"]),s;var l=Array.isArray(t);e(n,"TABLE",0,1,"sheetjs");e(n,"VECTORS",0,i.e.r-i.s.r+1,"");e(n,"TUPLES",0,i.e.c-i.s.c+1,"");e(n,"DATA",0,0,"");for(var o=i.s.r;o<=i.e.r;++o){r(n,-1,0,"BOT");for(var f=i.s.c;f<=i.e.c;++f){var c=$r({r:o,c:f});s=l?(t[o]||[])[f]:t[c];if(!s){r(n,1,0,"");continue}switch(s.t){case"n":var h=u?s.w:s.v;if(!h&&s.v!=null)h=s.v;if(h==null){if(u&&s.f&&!s.F)r(n,1,0,"="+s.f);else r(n,1,0,"")}else r(n,0,h,"V");break;case"b":r(n,0,s.v?1:0,s.v?"TRUE":"FALSE");break;case"s":r(n,1,0,!u||isNaN(s.v)?s.v:'="'+s.v+'"');break;case"d":if(!s.w)s.w=E.format(s.z||E._table[14],P(H(s.v)));if(u)r(n,0,s.w,"V");else r(n,1,0,s.w);break;default:r(n,1,0,"");}}}r(n,-1,0,"EOD");var d="\r\n";var v=n.join(d);return v}}();return{to_workbook:a,to_sheet:t,from_sheet:n}}();var ws=function(){function e(e,r,t,a,n){if(n.raw)r[t][a]=e;else if(e==="TRUE")r[t][a]=true;else if(e==="FALSE")r[t][a]=false;else if(e===""){}else if(!isNaN(G(e)))r[t][a]=G(e);else if(!isNaN(j(e).getDate()))r[t][a]=H(e);else r[t][a]=e}function r(r,t){var a=t||{};var n=[];if(!r||r.length===0)return n;var i=r.split(/[\r\n]/);var s=i.length-1;while(s>=0&&i[s].length===0)--s;var l=10,o=0;var f=0;for(;f<=s;++f){o=i[f].indexOf(" ");if(o==-1)o=i[f].length;else o++;l=Math.max(l,o)}for(f=0;f<=s;++f){n[f]=[];var c=0;e(i[f].slice(0,l).trim(),n,f,c,a);for(c=1;c<=(i[f].length-l)/10+1;++c)e(i[f].slice(l+(c-1)*10,l+c*10).trim(),n,f,c,a)}return n}var t={44:",",9:"\t",59:";"};var a={44:3,9:2,59:1};function n(e){var r={},n=false,i=0,s=0;for(;i0)m();i["!ref"]=qr(s);return i}function s(e,t){if(e.substr(0,4)=="sep=")return i(e,t);if(e.indexOf("\t")>=0||e.indexOf(",")>=0)return i(e,t);return nt(r(e,t),t)}function l(e,r){var t="",a=r.type=="string"?[0,0,0,0]:Cp(e,r);switch(r.type){case"base64":t=h.decode(e);break;case"binary":t=e;break;case"buffer":t=e.toString("binary");break;case"array":t=W(e);break;case"string":t=e;break;default:throw new Error("Unrecognized type "+r.type);}if(a[0]==239&&a[1]==187&&a[2]==191)t=_e(t.slice(3));return s(t,r)}function o(e,r){return at(l(e,r),r)}function f(e,r){var t=[];var a=et(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){var l=[];for(var o=a.s.c;o<=a.e.c;++o){var f=$r({r:s,c:o});n=i?(e[s]||[])[o]:e[f];if(!n||n.v==null){l.push(" ");continue}var c=(n.w||(tt(n),n.w)||"").substr(0,10);while(c.length<10)c+=" ";l.push(c+(o===0?" ":""))}t.push(l.join(""))}return t.join("\n")}return{to_workbook:o,to_sheet:l,from_sheet:f}}();function Ss(e,r){var t=r||{},a=!!t.WTF;t.WTF=true;try{var n=Es.to_workbook(e,t);t.WTF=a;return n}catch(i){t.WTF=a;if(!i.message.match(/SYLK bad record ID/)&&a)throw i;return ws.to_workbook(e,r)}}var Bs=function(){function e(e,r,t){if(!e)return;_r(e,e.l||0);var a=t.Enum||w;while(e.l=4096)a.qpro=true;break;case 6:f=e;break;case 15:if(!a.qpro)e[1].v=e[1].v.substr(1);case 13:;case 14:;case 16:;case 51:if(c==14&&(e[2]&112)==112&&(e[2]&15)>1&&(e[2]&15)<15){e[1].z=a.dateNF||E._table[14];if(a.cellDates){e[1].t="d";e[1].v=N(e[1].v)}}if(a.dense){if(!n[e[0].r])n[e[0].r]=[];n[e[0].r][e[0].c]=e[1]}else n[$r(e[0])]=e[1];break;}else switch(c){case 22:e[1].v=e[1].v.substr(1);case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>s){n["!ref"]=qr(f);l[i]=n;n=a.dense?[]:{};f={s:{r:0,c:0},e:{r:0,c:0}};s=e[3];i="Sheet"+(s+1);o.push(i)}n[$r(e[0])]=e[1];if(f.e.c>1;if(t[1].v&1){switch(a&7){case 1:a=(a>>3)*500;break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(a&7);}}t[1].v=a;return t}function v(e,r){var t=f(e,r);var a=e._R(4);var n=e._R(4);var i=e._R(2);if(i==65535){t[1].v=0;return t}var s=i&32768;i=(i&32767)-16446;t[1].v=(i>0?n<>>-i)+(i>-32?a<>>-(i+32));return t}function b(e,r){var t=v(e,14);e.l+=r-14;return t}function m(e,r){var t=f(e,r);var a=e._R(4);t[1].v=a>>6;return t}function g(e,r){var t=f(e,r);var a=e._R(8,"f");t[1].v=a;return t}function k(e,r){var t=g(e,14);e.l+=r-10;return t}var w={0:{n:"BOF",f:vn},1:{n:"EOF",f:Tr},2:{n:"CALCMODE",f:Tr},3:{n:"CALCORDER",f:Tr},4:{n:"SPLIT",f:Tr},5:{n:"SYNC",f:Tr},6:{n:"RANGE",f:a},7:{n:"WINDOW1",f:Tr},8:{n:"COLW1",f:Tr},9:{n:"WINTWO",f:Tr},10:{n:"COLW2",f:Tr},11:{n:"NAME",f:Tr},12:{n:"BLANK",f:Tr},13:{n:"INTEGER",f:s},14:{n:"NUMBER",f:l},15:{n:"LABEL",f:i},16:{n:"FORMULA",f:o},24:{n:"TABLE",f:Tr},25:{n:"ORANGE",f:Tr},26:{n:"PRANGE",f:Tr},27:{n:"SRANGE",f:Tr},28:{n:"FRANGE",f:Tr},29:{n:"KRANGE1",f:Tr},32:{n:"HRANGE",f:Tr},35:{n:"KRANGE2",f:Tr},36:{n:"PROTEC",f:Tr},37:{n:"FOOTER",f:Tr},38:{n:"HEADER",f:Tr},39:{n:"SETUP",f:Tr},40:{n:"MARGINS",f:Tr},41:{n:"LABELFMT",f:Tr},42:{n:"TITLES",f:Tr},43:{n:"SHEETJS",f:Tr},45:{n:"GRAPH",f:Tr},46:{n:"NGRAPH",f:Tr},47:{n:"CALCCOUNT",f:Tr},48:{n:"UNFORMATTED",f:Tr},49:{n:"CURSORW12",f:Tr},50:{n:"WINDOW",f:Tr},51:{n:"STRING",f:i},55:{n:"PASSWORD",f:Tr},56:{n:"LOCKED",f:Tr},60:{n:"QUERY",f:Tr},61:{n:"QUERYNAME",f:Tr},62:{n:"PRINT",f:Tr},63:{n:"PRINTNAME",f:Tr},64:{n:"GRAPH2",f:Tr},65:{n:"GRAPHNAME",f:Tr},66:{n:"ZOOM",f:Tr},67:{n:"SYMSPLIT",f:Tr},68:{n:"NSROWS",f:Tr},69:{n:"NSCOLS",f:Tr},70:{n:"RULER",f:Tr},71:{n:"NNAME",f:Tr},72:{n:"ACOMM",f:Tr},73:{n:"AMACRO",f:Tr},74:{n:"PARSE",f:Tr},255:{n:"",f:Tr}};var S={0:{n:"BOF",f:Tr},1:{n:"EOF",f:Tr},3:{n:"??",f:Tr},4:{n:"??",f:Tr},5:{n:"??",f:Tr},6:{n:"??",f:Tr},7:{n:"??",f:Tr},9:{n:"??",f:Tr},10:{n:"??",f:Tr},11:{n:"??",f:Tr},12:{n:"??",f:Tr},14:{n:"??",f:Tr},15:{n:"??",f:Tr},16:{n:"??",f:Tr},17:{n:"??",f:Tr},18:{n:"??",f:Tr},19:{n:"??",f:Tr},21:{n:"??",f:Tr},22:{n:"LABEL16",f:u},23:{n:"NUMBER17",f:v},24:{n:"NUMBER18",f:d},25:{n:"FORMULA19",f:b},26:{n:"??",f:Tr},27:{n:"??",f:Tr},28:{n:"??",f:Tr},29:{n:"??",f:Tr},30:{n:"??",f:Tr},31:{n:"??",f:Tr},33:{n:"??",f:Tr},37:{n:"NUMBER25",f:m},39:{n:"NUMBER27",f:g},40:{n:"FORMULA28",f:k},255:{n:"",f:Tr}};return{to_workbook:r}}();var Cs={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var _s=function vb(){var e=ye("t"),r=ye("rPr"),t=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/,n=/\r\n/g;var i=function l(e,r,t){var a={},n=65001,i="";var s=e.match(oe),l=0;if(s)for(;l!=s.length;++l){var o=ue(s[l]);switch(o[0].replace(/\w*:/g,"")){case"":;case"":a.shadow=1;break;case"":break;case"":;case"":a.outline=1;break;case"":break;case"":;case"":a.strike=1;break;case"":break;case"":;case"":a.u=1;break;case"":break;case"":;case"":a.b=1;break;case"":break;case"":;case"":a.i=1;break;case"":break;case"');if(a.b){r.push("");t.push("")}if(a.i){r.push("");t.push("")}if(a.strike){r.push("");t.push("")}if(i=="superscript")i="sup";else if(i=="subscript")i="sub";if(i!=""){r.push("<"+i+">");t.push("")}t.push("");return n};function s(t){var a=[[],"",[]];var s=t.match(e),l=65001;if(!x(s))return"";a[1]=s[1];var o=t.match(r);if(x(o))l=i(o[1],a[0],a[2]);return a[0].join("")+a[1].replace(n,"
    ")+a[2].join("")}return function o(e){return e.replace(t,"").split(a).map(s).join("")}}();var Ts=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,xs=/<(?:\w+:)?r>/;var Is=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function As(e,r){var t=r?r.cellHTML:true;var a={};if(!e)return null;var n;if(e.match(/^\s*<(?:\w+:)?t[^>]*>/)){a.t=pe(_e(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||""));a.r=_e(e);if(t)a.h=we(a.t)}else if(n=e.match(xs)){a.r=_e(e);a.t=pe(_e((e.replace(Is,"").match(Ts)||[]).join("").replace(oe,"")));if(t)a.h=_s(a.r)}return a}var ys=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/;var Rs=/<(?:\w+:)?(?:si|sstItem)>/g;var Ds=/<\/(?:\w+:)?(?:si|sstItem)>/;function Os(e,r){var t=[],a="";if(!e)return t;var n=e.match(ys);if(x(n)){a=n[2].replace(Rs,"").split(Ds);for(var i=0;i!=a.length;++i){var s=As(a[i].trim(),r);if(s!=null)t[t.length]=s}n=ue(n[1]);t.Count=n.count;t.Unique=n.uniqueCount}return t}ha.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Fs=/^\s|\s$|[\t\n\r]/;function Ps(e,r){if(!r.bookSST)return"";var t=[se];t[t.length]=Ue("sst",null,{xmlns:ze.main[0],count:e.Count,uniqueCount:e.Unique});for(var a=0;a!=e.length;++a){if(e[a]==null)continue;var n=e[a];var i="";if(n.r)i+=n.r;else{i+=""}i+="";t[t.length]=i}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Ns(e,r){return[e._R(4),e._R(4)]}function Ls(e,r){var t=[];var a=false;yr(e,function n(e,i,s){switch(s){case 159:t.Count=e[0];t.Unique=e[1];break;case 19:t.push(e);break;case 160:return true;case 35:a=true;break;case 36:a=false;break;default:if(i.indexOf("Begin")>0){}else if(i.indexOf("End")>0){}if(!a||r.WTF)throw new Error("Unexpected record "+s+" "+i);}});return t}function Ms(e,r){if(!r)r=Ar(8);r._W(4,e.Count);r._W(4,e.Unique);return r}var Us=ut;function Hs(e,r){var t=Rr();Dr(t,"BrtBeginSst",Ms(e));for(var a=0;a=4)e.l+=r-4;return t}function Vs(e,r){var t={};t.id=e._R(0,"lpp4");t.R=zs(e,4);t.U=zs(e,4);t.W=zs(e,4);return t}function Xs(e){var r=e._R(4);var t=e.l+r-4;var a={};var n=e._R(4);var i=[];while(n-- >0){var s={};s.t=e._R(4);s.v=e._R(0,"lpp4");i.push(s)}a.name=e._R(0,"lpp4");a.comps=i;return a}function Gs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(Xs(e));return t}function js(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(e._R(0,"lpp4"));return t}function Ks(e,r){var t={};var a=e._R(4);var n=e.l+a-4;e.l+=4;t.id=e._R(0,"lpp4");t.name=e._R(0,"lpp4");t.R=zs(e,4);t.U=zs(e,4);t.W=zs(e,4);return t}function Ys(e,r){var t=Ks(e);t.ename=e._R(0,"8lpp4");t.blksz=e._R(4);t.cmode=e._R(4);if(e._R(4)!=4)throw new Error("Bad !Primary record");return t}function $s(e,r){var t=e.l+r;var a={};a.Flags=e._R(4)&63;e.l+=4;a.AlgID=e._R(4);var n=false;switch(a.AlgID){case 26126:;case 26127:;case 26128:n=a.Flags==36;break;case 26625:n=a.Flags==4;break;case 0:n=a.Flags==16||a.Flags==4||a.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+a.AlgID;}if(!n)throw new Error("Encryption Flags/AlgID mismatch");a.AlgIDHash=e._R(4);a.KeySize=e._R(4);a.ProviderType=e._R(4);e.l+=8;a.CSPName=e._R(t-e.l>>1,"utf16le").slice(0,-1);e.l=t;return a}function Zs(e,r){var t={};e.l+=4;t.Salt=e.slice(e.l,e.l+16);e.l+=16;t.Verifier=e.slice(e.l,e.l+16);e.l+=16;var a=e._R(4);t.VerifierHash=e.slice(e.l,e.l+a);e.l+=a;return t}function Qs(e,r){var t=zs(e);switch(t.Minor){case 2:return[t.Minor,Js(e,t)];case 3:return[t.Minor,qs(e,t)];case 4:return[t.Minor,el(e,t)];}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}function Js(e,r){var t=e._R(4);if((t&63)!=36)throw new Error("EncryptionInfo mismatch");var a=e._R(4);var n=e.l+a;var i=$s(e,a);var s=Zs(e,e.length-e.l);return{t:"Std",h:i,v:s}}function qs(e,r){throw new Error("File is password-protected: ECMA-376 Extensible")}function el(e,r){e.l+=4;return e._R(e.length-e.l,"utf8")}function rl(e,r){var t={};var a=t.EncryptionVersionInfo=zs(e,4);r-=4;if(a.Minor!=2)throw new Error("unrecognized minor version code: "+a.Minor);if(a.Major>4||a.Major<2)throw new Error("unrecognized major version code: "+a.Major);t.Flags=e._R(4);r-=4;var n=e._R(4);r-=4;t.EncryptionHeader=$s(e,n);r-=n;t.EncryptionVerifier=Zs(e,r);return t}function tl(e,r){var t={};var a=t.EncryptionVersionInfo=zs(e,4);r-=4;if(a.Major!=1||a.Minor!=1)throw"unrecognized version code "+a.Major+" : "+a.Minor;t.Salt=e._R(16);t.EncryptedVerifier=e._R(16);t.EncryptedVerifierHash=e._R(16);return t}function al(e){var r=0,t;var a=Ws(e);var n=a.length+1,i,s;var l,o,f;t=v(n);t[0]=a.length;for(i=1;i!=n;++i)t[i]=a[i-1];for(i=n-1;i>=0;--i){s=t[i];l=(r&16384)===0?0:1;o=r<<1&32767;f=l|o;r=f^s}return r^52811}var nl=function(){var e=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0];var r=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163];var t=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628];var a=function(e){return(e/2|e*128)&255};var n=function(e,r){return a(e^r)};var i=function(e){var a=r[e.length-1];var n=104;for(var i=e.length-1;i>=0;--i){var s=e[i];for(var l=0;l!=7;++l){if(s&64)a^=t[n];s*=2;--n}}return a};return function(r){var t=Ws(r);var a=i(t);var s=t.length;var l=v(16);for(var o=0;o!=16;++o)l[o]=0;var f,c,u;if((s&1)===1){f=a>>8;l[s]=n(e[0],f);--s;f=a&255;c=t[t.length-1];l[s]=n(c,f)}while(s>0){--s;f=a>>8;l[s]=n(t[s],f);--s;f=a&255;l[s]=n(t[s],f)}s=15;u=15-t.length;while(u>0){f=a>>8;l[s]=n(e[u],f);--s;--u;f=a&255;l[s]=n(t[s],f);--s;--u}return l}}();var il=function(e,r,t,a,n){if(!n)n=r;if(!a)a=nl(e);var i,s;for(i=0;i!=r.length;++i){s=r[i];s^=a[t];s=(s>>5|s<<3)&255;n[i]=s;++t}return[n,t,a]};var sl=function(e){var r=0,t=nl(e);return function(e){var a=il("",e,r,t);r=a[1];return a[0]}};function ll(e,r,t,a){var n={key:vn(e),verificationBytes:vn(e)};if(t.password)n.verifier=al(t.password);a.valid=n.verificationBytes===n.verifier;if(a.valid)a.insitu=sl(t.password);return n}function ol(e,r,t){var a=t||{};a.Info=e._R(2);e.l-=2;if(a.Info===1)a.Data=tl(e,r);else a.Data=rl(e,r);return a}function fl(e,r,t){var a={Type:t.biff>=8?e._R(2):0};if(a.Type)ol(e,r-2,a);else ll(e,r-2,t,a);return a}var cl=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=r||{};var a={};var n={s:{c:0,r:0},e:{c:0,r:0}};if(!e.match(/\\trowd/))throw new Error("RTF missing table");a["!ref"]=qr(n);return a}function t(r,t){return at(e(r,t),t)}function a(e,r){var t=["{\\rtf1\\ansi"];var a=et(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){t.push("\\trowd\\trautofit1");for(var l=a.s.c;l<=a.e.c;++l)t.push("\\cellx"+(l+1));t.push("\\pard\\intbl");for(l=a.s.c;l<=a.e.c;++l){var o=$r({r:s,c:l});n=i?(e[s]||[])[l]:e[o];if(!n||n.v==null&&(!n.f||n.F))continue;t.push(" "+(n.w||(tt(n),n.w)));t.push("\\cell")}t.push("\\pard\\intbl\\row")}return t.join("")+"}"}return{to_workbook:t,to_sheet:e,from_sheet:a}}();function ul(e){var r=e.substr(e[0]==="#"?1:0,6);return[parseInt(r.substr(0,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(4,2),16)]}function hl(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().substr(1)}function dl(e){var r=e[0]/255,t=e[1]/255,a=e[2]/255;var n=Math.max(r,t,a),i=Math.min(r,t,a),s=n-i;if(s===0)return[0,0,r];var l=0,o=0,f=n+i;o=s/(f>1?2-f:f);switch(n){case r:l=((t-a)/s+6)%6;break;case t:l=(a-r)/s+2;break;case a:l=(r-t)/s+4;break;}return[l/6,o,f/2]}function vl(e){var r=e[0],t=e[1],a=e[2];var n=t*2*(a<.5?a:1-a),i=a-n/2;var s=[i,i,i],l=6*r;var o;if(t!==0)switch(l|0){case 0:;case 6:o=n*l;s[0]+=n;s[1]+=o;break;case 1:o=n*(2-l);s[0]+=o;s[1]+=n;break;case 2:o=n*(l-2);s[1]+=n;s[2]+=o;break;case 3:o=n*(4-l);s[1]+=o;s[2]+=n;break;case 4:o=n*(l-4);s[2]+=n;s[0]+=o;break;case 5:o=n*(6-l);s[2]+=o;s[0]+=n;break;}for(var f=0;f!=3;++f)s[f]=Math.round(s[f]*255);return s}function pl(e,r){if(r===0)return e;var t=dl(ul(e));if(r<0)t[2]=t[2]*(1+r);else t[2]=1-(1-t[2])*(1-r);return hl(vl(t))}var bl=6,ml=15,gl=1,El=bl;function kl(e){return Math.floor((e+Math.round(128/El)/256)*El)}function wl(e){return Math.floor((e-5)/El*100+.5)/100}function Sl(e){return Math.round((e*El+5)/El*256)/256}function Bl(e){return((e-5)/El*100+.5)/100}function Cl(e){return(e*El+5)/El*256/256}function _l(e){return Sl(wl(kl(e)))}function Tl(e){var r=Math.abs(e-_l(e)),t=El;if(r>.005)for(El=gl;El.5)t--;if(Math.abs(t)":;case"":break;case"":;case"":n={};if(t.diagonalUp){n.diagonalUp=t.diagonalUp}if(t.diagonalDown){n.diagonalDown=t.diagonalDown}r.Borders.push(n);break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in borders");}})}function Pl(e,r,t,a){r.Fills=[];var n={};e[0].match(oe).forEach(function(e){var t=ue(e);switch(t[0]){case"":;case"":break;case"":;case"":n={};r.Fills.push(n);break;case"":break;case"":break;case"":r.Fills.push(n);n={};break;case"":if(t.patternType)n.patternType=t.patternType;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":break;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in fills");}})}function Nl(e,r,t,a){r.Fonts=[];var n={};e[0].match(oe).forEach(function(e){var i=ue(e);switch(i[0]){case"":;case"":break;case"":break;case"
    ":;case"":r.Fonts.push(n);n={};break;case"":;case"":break;case"":n.bold=1;break;case"":n.italic=1;break;case"":n.underline=1;break;case"":n.strike=1;break;case"":n.outline=1;break;case"":n.shadow=1;break;case"":n.condense=1;break;case"":n.extend=1;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+i[0]+" in fonts");}})}function Ll(e,r,t){r.NumberFmt=[];var a=I(E._table);for(var n=0;n":;case"":;case"":break;case"0){if(o>392){for(o=392;o>60;--o)if(r.NumberFmt[o]==null)break;r.NumberFmt[o]=l}E.load(l,o)}}break;case"":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function Ml(e,r){var t=[""];[[5,8],[23,26],[41,44],[50,392]].forEach(function(r){for(var a=r[0];a<=r[1];++a)if(e[a]!=null)t[t.length]=Ue("numFmt",null,{numFmtId:a,formatCode:ge(e[a])})});if(t.length===1)return"";t[t.length]="";t[0]=Ue("numFmts",null,{count:t.length-2}).replace("/>",">"); +return t.join("")}var Ul=["numFmtId","fillId","fontId","borderId","xfId"];var Hl=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function Wl(e,r,t){r.CellXf=[];var a;e[0].match(oe).forEach(function(e){var n=ue(e),i=0;switch(n[0]){case"":;case"":;case"":break;case"":a=n;delete a[0];for(i=0;i392){for(i=392;i>60;--i)if(r.NumberFmt[a.numFmtId]==r.NumberFmt[i]){a.numFmtId=i;break}}r.CellXf.push(a);break;case"":break;case"":var s={};if(n.vertical)s.vertical=n.vertical;if(n.horizontal)s.horizontal=n.horizontal;if(n.textRotation!=null)s.textRotation=n.textRotation;if(n.indent)s.indent=n.indent;if(n.wrapText)s.wrapText=n.wrapText;a.alignment=s;break;case"":break;case"":;case"":break;case"":break;case"";if(r.length===2)return"";r[0]=Ue("cellXfs",null,{count:r.length-2}).replace("/>",">");return r.join("")}var Vl=function pb(){var e=/]*)>[\S\s]*?<\/numFmts>/;var r=/]*)>[\S\s]*?<\/cellXfs>/;var t=/]*)>[\S\s]*?<\/fills>/;var a=/]*)>[\S\s]*?<\/fonts>/;var n=/]*)>[\S\s]*?<\/borders>/;return function i(s,l,o){var f={};if(!s)return f;s=s.replace(//gm,"").replace(//gm,"");var c;if(c=s.match(e))Ll(c,f,o);if(c=s.match(a))Nl(c,f,l,o);if(c=s.match(t))Pl(c,f,l,o);if(c=s.match(n))Fl(c,f,l,o);if(c=s.match(r))Wl(c,f,o);return f}}();var Xl=Ue("styleSheet",null,{xmlns:ze.main[0],"xmlns:vt":ze.vt});ha.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function Gl(e,r){var t=[se,Xl],a;if(e.SSF&&(a=Ml(e.SSF))!=null)t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';if(a=zl(r.cellXfs))t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function jl(e,r){var t=e._R(2);var a=st(e,r-2);return[t,a]}function Kl(e,r,t){if(!t)t=Ar(6+4*r.length);t._W(2,e);lt(r,t);return t.length>t.l?t.slice(0,t.l):t}function Yl(e,r,t){var a={};a.sz=e._R(2)/20;var n=Nt(e,2,t);if(n.fCondense)a.condense=1;if(n.fExtend)a.extend=1;if(n.fShadow)a.shadow=1;if(n.fOutline)a.outline=1;if(n.fStrikeout)a.strike=1;if(n.fItalic)a.italic=1;var i=e._R(2);if(i===700)a.bold=1;switch(e._R(2)){case 1:a.vertAlign="superscript";break;case 2:a.vertAlign="subscript";break;}var s=e._R(1);if(s!=0)a.underline=s;var l=e._R(1);if(l>0)a.family=l;var o=e._R(1);if(o>0)a.charset=o;e.l++;a.color=Ft(e,8);switch(e._R(1)){case 1:a.scheme="major";break;case 2:a.scheme="minor";break;}a.name=st(e,r-21);return a}function $l(e,r){if(!r)r=Ar(25+4*32);r._W(2,e.sz*20);Lt(e,r);r._W(2,e.bold?700:400);var t=0;if(e.vertAlign=="superscript")t=1;else if(e.vertAlign=="subscript")t=2;r._W(2,t);r._W(1,e.underline||0);r._W(1,e.family||0);r._W(1,e.charset||0);r._W(1,0);Pt(e.color,r);var a=0;if(e.scheme=="major")a=1;if(e.scheme=="minor")a=2;r._W(1,a);lt(e.name,r);return r.length>r.l?r.slice(0,r.l):r}var Zl=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];var Ql=y(Zl);var Jl=Tr;function ql(e,r){if(!r)r=Ar(4*3+8*7+16*1);var t=Ql[e.patternType];if(t==null)t=40;r._W(4,t);var a=0;if(t!=40){Pt({auto:1},r);Pt({auto:1},r);for(;a<12;++a)r._W(4,0)}else{for(;a<4;++a)r._W(4,0);for(;a<12;++a)r._W(4,0)}return r.length>r.l?r.slice(0,r.l):r}function eo(e,r){var t=e._R(2);var a=e._R(2);Tr(e,r-4);return{ixfe:t,numFmtId:a}}function ro(e,r,t){if(!t)t=Ar(16);t._W(2,r||0);t._W(2,e.numFmtId||0);t._W(2,0);t._W(2,0);t._W(2,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);return t}function to(e,r){if(!r)r=Ar(10);r._W(1,0);r._W(1,0);r._W(4,0);r._W(4,0);return r}var ao=Tr;function no(e,r){if(!r)r=Ar(51);r._W(1,0);to(null,r);to(null,r);to(null,r);to(null,r);to(null,r);return r.length>r.l?r.slice(0,r.l):r}function io(e,r){if(!r)r=Ar(12+4*10);r._W(4,e.xfId);r._W(2,1);r._W(1,+e.builtinId);r._W(1,0);Et(e.name||"",r);return r.length>r.l?r.slice(0,r.l):r}function so(e,r,t){var a=Ar(4+256*2*4);a._W(4,e);Et(r,a);Et(t,a);return a.length>a.l?a.slice(0,a.l):a}function lo(e,r,t){var a={};a.NumberFmt=[];for(var n in E._table)a.NumberFmt[n]=E._table[n];a.CellXf=[];a.Fonts=[];var i=[];var s=false;yr(e,function l(e,n,o){switch(o){case 44:a.NumberFmt[e[0]]=e[1];E.load(e[1],e[0]);break;case 43:a.Fonts.push(e);if(e.color.theme!=null&&r&&r.themeElements&&r.themeElements.clrScheme){e.color.rgb=pl(r.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0)}break;case 1025:break;case 45:break;case 46:break;case 47:if(i[i.length-1]=="BrtBeginCellXFs"){a.CellXf.push(e)}break;case 48:;case 507:;case 572:;case 475:break;case 1171:;case 2102:;case 1130:;case 512:;case 2095:break;case 35:s=true;break;case 36:s=false;break;case 37:i.push(n);break;case 38:i.pop();break;default:if((n||"").indexOf("Begin")>0)i.push(n);else if((n||"").indexOf("End")>0)i.pop();else if(!s||t.WTF)throw new Error("Unexpected record "+o+" "+n);}});return a}function oo(e,r){if(!r)return;var t=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(e){for(var a=e[0];a<=e[1];++a)if(r[a]!=null)++t});if(t==0)return;Dr(e,"BrtBeginFmts",it(t));[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(r[a]!=null)Dr(e,"BrtFmt",Kl(a,r[a]))});Dr(e,"BrtEndFmts")}function fo(e,r){var t=1;if(t==0)return;Dr(e,"BrtBeginFonts",it(t));Dr(e,"BrtFont",$l({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}));Dr(e,"BrtEndFonts")}function co(e,r){var t=2;if(t==0)return;Dr(e,"BrtBeginFills",it(t));Dr(e,"BrtFill",ql({patternType:"none"}));Dr(e,"BrtFill",ql({patternType:"gray125"}));Dr(e,"BrtEndFills")}function uo(e,r){var t=1;if(t==0)return;Dr(e,"BrtBeginBorders",it(t));Dr(e,"BrtBorder",no({}));Dr(e,"BrtEndBorders")}function ho(e,r){var t=1;Dr(e,"BrtBeginCellStyleXFs",it(t));Dr(e,"BrtXF",ro({numFmtId:0,fontId:0,fillId:0,borderId:0},65535));Dr(e,"BrtEndCellStyleXFs")}function vo(e,r){Dr(e,"BrtBeginCellXFs",it(r.length));r.forEach(function(r){Dr(e,"BrtXF",ro(r,0))});Dr(e,"BrtEndCellXFs")}function po(e,r){var t=1;Dr(e,"BrtBeginStyles",it(1));Dr(e,"BrtStyle",io({xfId:0,builtinId:0,name:"Normal"}));Dr(e,"BrtEndStyles")}function bo(e,r){var t=0;Dr(e,"BrtBeginDXFs",it(t));Dr(e,"BrtEndDXFs")}function mo(e,r){var t=0;Dr(e,"BrtBeginTableStyles",so(t,"TableStyleMedium9","PivotStyleMedium4"));Dr(e,"BrtEndTableStyles")}function go(e,r){return}function Eo(e,r){var t=Rr();Dr(t,"BrtBeginStyleSheet");oo(t,e.SSF);fo(t,e);co(t,e);uo(t,e);ho(t,e);vo(t,r.cellXfs);po(t,e);bo(t,e);mo(t,e);go(t,e);Dr(t,"BrtEndStyleSheet");return t.end()}ha.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function ko(e,r,t){r.themeElements.clrScheme=[];var a={};(e[0].match(oe)||[]).forEach(function(e){var n=ue(e);switch(n[0]){case"":break;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":if(n[0].charAt(1)==="/"){r.themeElements.clrScheme.push(a);a={}}else{a.name=n[0].substring(3,n[0].length-1)}break;default:if(t&&t.WTF)throw new Error("Unrecognized "+n[0]+" in clrScheme");}})}function wo(e,r,t){}function So(e,r,t){}var Bo=/]*)>[\s\S]*<\/a:clrScheme>/;var Co=/]*)>[\s\S]*<\/a:fontScheme>/;var _o=/]*)>[\s\S]*<\/a:fmtScheme>/;function To(e,r,t){r.themeElements={};var a;[["clrScheme",Bo,ko],["fontScheme",Co,wo],["fmtScheme",_o,So]].forEach(function(n){if(!(a=e.match(n[1])))throw new Error(n[0]+" not found in themeElements");n[2](a,r,t)})}var xo=/]*)>[\s\S]*<\/a:themeElements>/;function Io(e,r){if(!e||e.length===0)return Io(Ao());var t;var a={};if(!(t=e.match(xo)))throw new Error("themeElements not found in theme");To(t[0],a,r);return a}function Ao(e,r){if(r&&r.themeXLSX)return r.themeXLSX;var t=[se];t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";return t.join("")}function yo(e,r,t){var a=e._R(4);if(a===124226)return;e.l+=r-4}function Ro(e,r){return e._R(4)}function Do(e,r){var t={};t.xclrType=e._R(2);t.nTintShade=e._R(2);switch(t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=Oo(e,4);break;case 2:t.xclrValue=yn(e,4);break;case 3:t.xclrValue=Ro(e,4);break;case 4:e.l+=4;break;}e.l+=8;return t}function Oo(e,r){return Tr(e,r)}function Fo(e,r){return Tr(e,r)}function Po(e,r){var t=e._R(2);var a=e._R(2);var n=[t];switch(t){case 4:;case 5:;case 7:;case 8:;case 9:;case 10:;case 11:;case 13:n[1]=Do(e,a);break;case 6:n[1]=Fo(e,a);break;case 14:;case 15:n[1]=e._R(a===5?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+a);}return n}function No(e,r){var t=e.l+r;e.l+=2;var a=e._R(2);e.l+=2;var n=e._R(2);var i=[];while(n-- >0)i.push(Po(e,t-e.l));return{ixfe:a,ext:i}}function Lo(e,r){r.forEach(function(e){switch(e[0]){case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 13:break;case 14:break;case 15:break;}})}function Mo(e,r,t){var a=[];if(!e)return a;var n=0,i=1;(e.match(oe)||[]).forEach(function(e){var r=ue(e);switch(r[0]){case"":;case"":break;case"0){}else if((r||"").indexOf("End")>0){}else if(!n||t.WTF)throw new Error("Unexpected record "+s+" "+r);}});return a}function zo(e,r){}function Vo(e,r,t){var a=t||{}}function Xo(e,r,t){if(!e)return e;var a=t||{};var n=false,i=false;yr(e,function s(e,r,t){if(i)return;switch(t){case 359:;case 363:;case 364:;case 366:;case 367:;case 368:;case 369:;case 370:;case 371:;case 472:;case 577:;case 578:;case 579:;case 580:;case 581:;case 582:;case 583:;case 584:;case 585:;case 586:;case 587:break;case 35:n=true;break;case 36:n=false;break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!n||a.WTF)throw new Error("Unexpected record "+t.toString(16)+" "+r);}},a)}ha.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";ha.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";function Go(e,r){if(!e)return"??";var t=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return r["!id"][t].Target}var jo=1024;function Ko(e,r){var t=[21600,21600];var a=["m0,0l0",t[1],t[0],t[1],t[0],"0xe"].join(",");var n=[Ue("xml",null,{"xmlns:v":Ve.v,"xmlns:o":Ve.o,"xmlns:x":Ve.x,"xmlns:mv":Ve.mv}).replace(/\/>/,">"),Ue("o:shapelayout",Ue("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ue("v:shapetype",[Ue("v:stroke",null,{joinstyle:"miter"}),Ue("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:t.join(","),path:a})];while(jo",Ue("v:fill",Ue("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}),{color2:"#BEFF82",angle:"-180",type:"gradient"}),Ue("v:shadow",null,{on:"t",obscured:"t"}),Ue("v:path",null,{"o:connecttype":"none"}),'
    ','',"","",Le("x:Anchor",[e.c,0,e.r,0,e.c+3,100,e.r+5,100].join(",")),Le("x:AutoFill","False"),Le("x:Row",String(e.r)),Le("x:Column",String(e.c)),"","",""])});n.push("");return n.join("")}ha.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";function Yo(e,r,t,a,n){for(var i=0;i!=r.length;++i){var s=r[i];var l=Gd(ee(e,s.replace(/^\//,""),true),s,n);if(!l||!l.length)continue;var o=I(t);for(var f=0;f!=o.length;++f){var c=o[f];var u=a[c];if(u){var h=u[s];if(h)$o(c,t[c],l)}}}}function $o(e,r,t){var a=Array.isArray(r);var n,i;t.forEach(function(e){if(a){i=Yr(e.ref);if(!r[i.r])r[i.r]=[];n=r[i.r][i.c]}else n=r[e.ref];if(!n){n={};if(a)r[i.r][i.c]=n;else r[e.ref]=n;var t=et(r["!ref"]||"BDWGO1000001:A1");var s=Yr(e.ref);if(t.s.r>s.r)t.s.r=s.r;if(t.e.rs.c)t.s.c=s.c;if(t.e.c/))return[];var t=[];var a=[];var n=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^>]*>(.*)/);if(r)t.push(r[1])});var i=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e,n){if(e===""||e.trim()==="")return;var i=e.match(/<(?:\w+:)?comment[^>]*>/);if(!i)return;var s=ue(i[0]);var l={author:s.authorId&&t[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid};var o=Yr(s.ref);if(r.sheetRows&&r.sheetRows<=o.r)return;var f=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/);var c=!!f&&!!f[1]&&As(f[1])||{r:"",t:"",h:""};l.r=c.r;if(c.r=="")c.t=c.h="";l.t=c.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)l.h=c.h;a.push(l)});return a}var Qo=Ue("comments",null,{xmlns:ze.main[0]});function Jo(e,r){var t=[se,Qo];var a=[];t.push("");e.map(function(e){return e[1]}).forEach(function(e){e.map(function(e){return ge(e.a)}).forEach(function(e){if(a.indexOf(e)>-1)return;a.push(e);t.push(""+e+"")})});t.push("");t.push("");e.forEach(function(e){e[1].forEach(function(r){t.push('');t.push(Le("t",r.t==null?"":r.t));t.push("")})});t.push("");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function qo(e,r){var t={};t.iauthor=e._R(4);var a=It(e,16);t.rfx=a.s;t.ref=$r(a.s);e.l+=16;return t}function ef(e,r){if(r==null)r=Ar(36);r._W(4,e[1].iauthor);At(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var rf=st;function tf(e){return lt(e.slice(0,54))}function af(e,r){var t=[];var a=[];var n={};var i=false;yr(e,function s(e,l,o){switch(o){case 632:a.push(e);break;case 635:n=e;break;case 637:n.t=e.t;n.h=e.h;n.r=e.r;break;case 636:n.author=a[n.iauthor];delete n.iauthor;if(r.sheetRows&&r.sheetRows<=n.rfx.r)break;if(!n.t)n.t="";delete n.rfx;t.push(n);break;case 35:i=true;break;case 36:i=false;break;case 37:break;case 38:break;default:if((l||"").indexOf("Begin")>0){}else if((l||"").indexOf("End")>0){}else if(!i||r.WTF)throw new Error("Unexpected record "+o+" "+l);}});return t}function nf(e,r){var t=Rr();var a=[];Dr(t,"BrtBeginComments");{Dr(t,"BrtBeginCommentAuthors");e.forEach(function(e){e[1].forEach(function(e){if(a.indexOf(e.a)>-1)return;a.push(e.a.slice(0,54));Dr(t,"BrtCommentAuthor",tf(e.a))})});Dr(t,"BrtEndCommentAuthors")}{Dr(t,"BrtBeginCommentList");e.forEach(function(e){e[1].forEach(function(r){r.iauthor=a.indexOf(r.a);var n={s:Yr(e[0]),e:Yr(e[0])};Dr(t,"BrtBeginComment",ef([n,r]));if(r.t&&r.t.length>0)Dr(t,"BrtCommentText",dt(r));Dr(t,"BrtEndComment");delete r.iauthor})});Dr(t,"BrtEndCommentList")}Dr(t,"BrtEndComments");return t.end()}function sf(e){var r=T.utils.cfb_new({root:"R"});e.FullPaths.forEach(function(t,a){if(t.slice(-1)==="/"||!t.match(/_VBA_PROJECT_CUR/))return;var n=t.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");T.utils.cfb_add(r,n,e.FileIndex[a].content)});return T.write(r)}ha.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet";ha.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";function lf(e,r,t,a,n,i){return{"!type":"dialog"}}function of(e,r,t,a,n,i){return{"!type":"dialog"}}function ff(e,r,t,a,n,i){return{"!type":"macro"}}function cf(e,r,t,a,n,i){return{"!type":"macro"}}var uf=function(){var e=/(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g;var r={r:0,c:0};function t(e,t,a,n,i,s){var l=n.length>0?parseInt(n,10)|0:0,o=s.length>0?parseInt(s,10)|0:0;if(o<0&&i.length===0)o=0;var f=false,c=false;if(i.length>0||s.length==0)f=true;if(f)o+=r.c;else--o;if(a.length>0||n.length==0)c=true;if(c)l+=r.r;else--l;return t+(f?"":"$")+Xr(o)+(c?"":"$")+Hr(l)}return function a(n,i){r=i;return n.replace(e,t)}}();var hf=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)([1-9]\d{0,5}|10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6])(?![_.\(A-Za-z0-9])/g;var df=function(){return function e(r,t){return r.replace(hf,function(e,r,a,n,i,s,l,o){var f=Vr(n)-t.c;var c=Ur(s)-t.r;return r+"R"+(c==0?"":"["+c+"]")+"C"+(f==0?"":"["+f+"]")})}}();function vf(e,r){return e.replace(hf,function(e,t,a,n,i,s,l,o){return t+(a=="$"?a+n:Xr(Vr(n)+r.c))+(i=="$"?i+s:Hr(Ur(s)+r.r))})}function pf(e,r,t){var a=Jr(r),n=a.s,i=Yr(t);var s={r:i.r-n.r,c:i.c-n.c};return vf(e,s)}function bf(e){if(e.length==1)return false;return true}function mf(e){return function(r,t){r.l+=e;return}}function gf(e){e.l+=1;return}function Ef(e,r){var t=e._R(r==1?1:2);return[t&16383,t>>14&1,t>>15&1]}function kf(e,r,t){var a=2;if(t){if(t.biff>=2&&t.biff<=5)return wf(e,r,t);else if(t.biff==12)a=4}var n=e._R(a),i=e._R(a);var s=Ef(e,2);var l=Ef(e,2);return{s:{r:n,c:s[0],cRel:s[1],rRel:s[2]},e:{r:i,c:l[0],cRel:l[1],rRel:l[2]}}}function wf(e){var r=Ef(e,2),t=Ef(e,2);var a=e._R(1);var n=e._R(1);return{s:{r:r[0],c:a,cRel:r[1],rRel:r[2]},e:{r:t[0],c:n,cRel:t[1],rRel:t[2]}}}function Sf(e,r){var t=e._R(r==12?4:2),a=e._R(r==12?4:2);var n=Ef(e,2);var i=Ef(e,2);return{s:{r:t,c:n[0],cRel:n[1],rRel:n[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}function Bf(e,r,t){if(t&&t.biff>=2&&t.biff<=5)return Cf(e,r,t);var a=e._R(t&&t.biff==12?4:2);var n=Ef(e,2);return{r:a,c:n[0],cRel:n[1],rRel:n[2]}}function Cf(e,r,t){var a=Ef(e,2);var n=e._R(1);return{r:a[0],c:n,cRel:a[1],rRel:a[2]}}function _f(e,r,t){var a=e._R(2);var n=e._R(2);return{r:a,c:n&255,fQuoted:!!(n&16384),cRel:n>>15,rRel:n>>15}}function Tf(e,r,t){var a=t&&t.biff?t.biff:8;if(a>=2&&a<=5)return xf(e,r,t);var n=e._R(a>=12?4:2);var i=e._R(2);var s=(i&32768)>>15,l=(i&16384)>>14;i&=16383;if(l==1)while(n>524287)n-=1048576;if(s==1)while(i>8191)i=i-16384;return{r:n,c:i,cRel:s,rRel:l}}function xf(e,r){var t=e._R(2);var a=e._R(1);var n=(t&32768)>>15,i=(t&16384)>>14;t&=16383;if(n==1&&t>=8192)t=t-16384;if(i==1&&a>=128)a=a-256;return{r:t,c:a,cRel:i,rRel:n}}function If(e,r,t){var a=(e[e.l++]&96)>>5;var n=kf(e,t.biff>=2&&t.biff<=5?6:8,t);return[a,n]}function Af(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2,"i");var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}var s=kf(e,i,t);return[a,n,s]}function yf(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t&&t.biff>8?12:8;return[a]}function Rf(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}e.l+=i;return[a,n]}function Df(e,r,t){var a=(e[e.l++]&96)>>5;var n=Sf(e,t&&t.biff>8?12:8,t);return[a,n]}function Of(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t.biff==2?6:t.biff==12?14:7;return[a]}function Ff(e,r){var t=e[e.l+1]&1;var a=1;e.l+=4;return[t,a]}function Pf(e,r,t){e.l+=2;var a=e._R(t&&t.biff==2?1:2);var n=[];for(var i=0;i<=a;++i)n.push(e._R(t&&t.biff==2?1:2));return n}function Nf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Lf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Mf(e,r){var t=e[e.l+1]&255?1:0;e.l+=2;return[t,e._R(2)]}function Uf(e,r,t){var a=e[e.l+1]&255?1:0; +e.l+=t&&t.biff==2?3:4;return[a]}function Hf(e,r){var t=e._R(1),a=e._R(1);return[t,a]}function Wf(e,r){e._R(2);return Hf(e,2)}function zf(e,r){e._R(2);return Hf(e,2)}function Vf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=Bf(e,0,t);return[n,i]}function Xf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=Tf(e,0,t);return[a,n]}function Gf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=e._R(2);var i=Bf(e,0,t);return[a,n,i]}function jf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=e._R(t&&t.biff<=3?1:2);return[wu[i],ku[i],n]}function Kf(e,r,t){e.l++;var a=e._R(1),n=t&&t.biff<=3?[0,e._R(1)]:Yf(e);return[a,(n[0]===0?ku:Eu)[n[1]]]}function Yf(e,r){return[e[e.l+1]>>7,e._R(2)&32767]}function $f(e,r,t){e.l+=t&&t.biff==2?3:4;return}var Zf=gf;function Qf(e,r,t){e.l++;if(t&&t.biff==12)return[e._R(4,"i"),0];var a=e._R(2);var n=e._R(t&&t.biff==2?1:2);return[a,n]}function Jf(e,r){e.l++;return Dt[e._R(1)]}function qf(e,r){e.l++;return e._R(2)}function ec(e,r){e.l++;return e._R(1)!==0}function rc(e,r){e.l++;return yt(e,8)}function tc(e,r,t){e.l++;return En(e,r-1,t)}function ac(e,r){var t=[e._R(1)];if(r==12)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2;break;}switch(t[0]){case 4:t[1]=hn(e,1)?"TRUE":"FALSE";e.l+=7;break;case 16:t[1]=Dt[e[e.l]];e.l+=8;break;case 0:e.l+=8;break;case 1:t[1]=yt(e,8);break;case 2:t[1]=Bn(e,0,{biff:r>0&&r<8?2:r});break;}return t}function nc(e,r){var t=e._R(2);var a=[];for(var n=0;n!=t;++n)a.push(Un(e,8));return a}function ic(e,r,t){var a=0,n=0;if(t.biff==12){a=e._R(4);n=e._R(4)}else{n=1+e._R(1);a=1+e._R(2)}if(t.biff>=2&&t.biff<8){--a;if(--n==0)n=256}for(var i=0,s=[];i!=a&&(s[i]=[]);++i)for(var l=0;l!=n;++l)s[i][l]=ac(e,t.biff);return s}function sc(e,r,t){var a=e._R(1)>>>5&3;var n=!t||t.biff>=8?4:2;var i=e._R(n);switch(t.biff){case 2:e.l+=5;break;case 3:;case 4:e.l+=8;break;case 5:e.l+=12;break;}return[a,0,i]}function lc(e,r,t){if(t.biff==5)return oc(e,r,t);var a=e._R(1)>>>5&3;var n=e._R(2);var i=e._R(4);return[a,n,i]}function oc(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(2,"i");e.l+=8;var i=e._R(2);e.l+=12;return[a,n,i]}function fc(e,r,t){var a=e._R(1)>>>5&3;e.l+=t&&t.biff==2?3:4;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function cc(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function uc(e,r,t){var a=e._R(1)>>>5&3;e.l+=4;if(t.biff==12)e.l+=2;return[a]}function hc(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=4;if(t)switch(t.biff){case 5:throw new Error("PtgRefErr3d -- 5");case 12:i=6;break;}e.l+=i;return[a,n]}var dc=gf;var vc=gf;var pc=gf;var bc=gf;var mc=gf;var gc=gf;var Ec=gf;var kc=gf;var wc=gf;var Sc=gf;var Bc=gf;var Cc=gf;var _c=gf;var Tc=gf;var xc=gf;var Ic=gf;var Ac=gf;var yc=gf;var Rc=gf;var Dc=Tr;var Oc=Tr;var Fc=Tr;function Pc(e,r,t){e.l+=2;return[_f(e,4,t)]}function Nc(e,r,t){e.l+=6;return[]}var Lc=Pc;var Mc=Nc;var Uc=Nc;var Hc=Pc;function Wc(e,r,t){e.l+=2;return[vn(e),e._R(2)&1]}var zc=Pc;var Vc=Wc;var Xc=Nc;var Gc=Pc;var jc=Pc;function Kc(e,r,t){e.l+=2;var a=e._R(2);e.l+=10;return{}}function Yc(e,r,t){e.l+=2;return[e._R(4)]}var $c={1:{n:"PtgExp",f:Qf},2:{n:"PtgTbl",f:Fc},3:{n:"PtgAdd",f:dc},4:{n:"PtgSub",f:Ic},5:{n:"PtgMul",f:Sc},6:{n:"PtgDiv",f:vc},7:{n:"PtgPower",f:Tc},8:{n:"PtgConcat",f:Zf},9:{n:"PtgLt",f:kc},10:{n:"PtgLe",f:Ec},11:{n:"PtgEq",f:pc},12:{n:"PtgGe",f:bc},13:{n:"PtgGt",f:mc},14:{n:"PtgNe",f:Bc},15:{n:"PtgIsect",f:gc},16:{n:"PtgUnion",f:yc},17:{n:"PtgRange",f:xc},18:{n:"PtgUplus",f:Rc},19:{n:"PtgUminus",f:Ac},20:{n:"PtgPercent",f:_c},21:{n:"PtgParen",f:Cc},22:{n:"PtgMissArg",f:wc},23:{n:"PtgStr",f:tc},28:{n:"PtgErr",f:Jf},29:{n:"PtgBool",f:ec},30:{n:"PtgInt",f:qf},31:{n:"PtgNum",f:rc},32:{n:"PtgArray",f:Of},33:{n:"PtgFunc",f:jf},34:{n:"PtgFuncVar",f:Kf},35:{n:"PtgName",f:sc},36:{n:"PtgRef",f:Vf},37:{n:"PtgArea",f:If},38:{n:"PtgMemArea",f:fc},39:{n:"PtgMemErr",f:Dc},40:{n:"PtgMemNoMem",f:Oc},41:{n:"PtgMemFunc",f:cc},42:{n:"PtgRefErr",f:uc},43:{n:"PtgAreaErr",f:yf},44:{n:"PtgRefN",f:Xf},45:{n:"PtgAreaN",f:Df},57:{n:"PtgNameX",f:lc},58:{n:"PtgRef3d",f:Gf},59:{n:"PtgArea3d",f:Af},60:{n:"PtgRefErr3d",f:hc},61:{n:"PtgAreaErr3d",f:Rf},255:{}};var Zc={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};(function(){for(var e in Zc)$c[e]=$c[Zc[e]]})();var Qc={1:{n:"PtgElfLel",f:Wc},2:{n:"PtgElfRw",f:Gc},3:{n:"PtgElfCol",f:Lc},6:{n:"PtgElfRwV",f:jc},7:{n:"PtgElfColV",f:Hc},10:{n:"PtgElfRadical",f:zc},11:{n:"PtgElfRadicalS",f:Xc},13:{n:"PtgElfColS",f:Mc},15:{n:"PtgElfColSV",f:Uc},16:{n:"PtgElfRadicalLel",f:Vc},25:{n:"PtgList",f:Kc},29:{n:"PtgSxName",f:Yc},255:{}};var Jc={1:{n:"PtgAttrSemi",f:Uf},2:{n:"PtgAttrIf",f:Lf},4:{n:"PtgAttrChoose",f:Pf},8:{n:"PtgAttrGoto",f:Nf},16:{n:"PtgAttrSum",f:$f},32:{n:"PtgAttrBaxcel",f:Ff},64:{n:"PtgAttrSpace",f:Wf},65:{n:"PtgAttrSpaceSemi",f:zf},128:{n:"PtgAttrIfError",f:Mf},255:{}};Jc[33]=Jc[32];function qc(e,r,t,a){if(a.biff<8)return Tr(e,r);var n=e.l+r;var i=[];for(var s=0;s!==t.length;++s){switch(t[s][0]){case"PtgArray":t[s][1]=ic(e,0,a);i.push(t[s][1]);break;case"PtgMemArea":t[s][2]=nc(e,t[s][1]);i.push(t[s][2]);break;case"PtgExp":if(a&&a.biff==12){t[s][1][1]=e._R(4);i.push(t[s][1])}break;case"PtgList":;case"PtgElfRadicalS":;case"PtgElfColS":;case"PtgElfColSV":throw"Unsupported "+t[s][0];default:break;}}r=n-e.l;if(r!==0)i.push(Tr(e,r));return i}function eu(e,r,t){var a=e.l+r;var n,i,s=[];while(a!=e.l){r=a-e.l;i=e[e.l];n=$c[i];if(i===24||i===25){i=e[e.l+1];n=(i===24?Qc:Jc)[i]}if(!n||!n.f){Tr(e,r)}else{s.push([n.n,n.f(e,r,t)])}}return s}function ru(e){var r=[];for(var t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function au(e){if(!e)return"";if(e.indexOf(" ")>-1)return"'"+e+"'";return e}function nu(e,r,t){return e.SheetNames[r]}function iu(e,r,t){return au(nu(e,r,t))}function su(e,r,t,a,n){var i={s:{c:0,r:0},e:{c:0,r:0}};var s=[],l,o,f,c,u=0,h=0,d,v="";if(!e[0]||!e[0][0])return"";var p=-1,b="";for(var m=0,g=e[0].length;m=0){switch(e[0][p][1][0]){case 0:b=X(" ",e[0][p][1][1]);break;case 1:b=X("\r",e[0][p][1][1]);break;default:b="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][p][1][0]);}o=o+b;p=-1}s.push(o+tu[E[0]]+l);break;case"PtgIsect":l=s.pop();o=s.pop();s.push(o+" "+l);break;case"PtgUnion":l=s.pop();o=s.pop();s.push(o+","+l);break;case"PtgRange":l=s.pop();o=s.pop();s.push(o+":"+l);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":f=E[1][0];c=Or(E[1][1],i,n);s.push(Pr(c));break;case"PtgRefN":f=E[1][0];c=t?Or(E[1][1],t,n):E[1][1];s.push(Pr(c));break;case"PtgRef3d":f=E[1][0];u=E[1][1];c=Or(E[1][2],i,n);v=iu(a,u,n);var k=v;s.push(v+"!"+Pr(c));break;case"PtgFunc":;case"PtgFuncVar":var w=E[1][0],S=E[1][1];if(!w)w=0;var B=w==0?[]:s.slice(-w);s.length-=w;if(S==="User")S=B.shift();s.push(S+"("+B.join(",")+")");break;case"PtgBool":s.push(E[1]?"TRUE":"FALSE");break;case"PtgInt":s.push(E[1]);break;case"PtgNum":s.push(String(E[1]));break;case"PtgStr":s.push('"'+E[1]+'"');break;case"PtgErr":s.push(E[1]);break;case"PtgAreaN":f=E[1][0];d=Fr(E[1][1],i,n);s.push(Nr(d,n));break;case"PtgArea":f=E[1][0];d=Fr(E[1][1],i,n);s.push(Nr(d,n));break;case"PtgArea3d":f=E[1][0];u=E[1][1];d=E[1][2];v=a&&a[1]?a[1][u+1]:"**MISSING**";s.push(v+"!"+Nr(d,n));break;case"PtgAttrSum":s.push("SUM("+s.pop()+")");break;case"PtgAttrSemi":break;case"PtgName":h=E[1][2];var C=(a.names||[])[h-1]||(a[0]||[])[h];var _=C?C.Name:"SH33TJSERR7"+String(h);if(_ in Su)_=Su[_];s.push(_);break;case"PtgNameX":var T=E[1][1];h=E[1][2];var x;if(n.biff<=5){if(T<0)T=-T;if(a[T])x=a[T][h]}else{var I=a.SheetNames[T];var A="";if(((a[T]||[])[0]||[])[0]==14849){}else if(((a[T]||[])[0]||[])[0]==1025){if(a[T][h]&&a[T][h].itab>0){A=a.SheetNames[a[T][h].itab-1]+"!"}}else A=a.SheetNames[h-1]+"!";if(a[T]&&a[T][h])A+=a[T][h].Name;else if(a[0]&&a[0][h])A+=a[0][h].Name;else A+="SH33TJSERRX";s.push(A);break}if(!x)x={Name:"SH33TJSERRY"};s.push(x.Name);break;case"PtgParen":var y="(",R=")";if(p>=0){b="";switch(e[0][p][1][0]){case 2:y=X(" ",e[0][p][1][1])+y;break;case 3:y=X("\r",e[0][p][1][1])+y;break;case 4:R=X(" ",e[0][p][1][1])+R;break;case 5:R=X("\r",e[0][p][1][1])+R;break;default:if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][p][1][0]);}p=-1}s.push(y+s.pop()+R);break;case"PtgRefErr":s.push("#REF!");break;case"PtgRefErr3d":s.push("#REF!");break;case"PtgExp":c={c:E[1][1],r:E[1][0]};var D={c:t.c,r:t.r};if(a.sharedf[$r(c)]){var O=a.sharedf[$r(c)];s.push(su(O,i,D,a,n))}else{var F=false;for(l=0;l!=a.arrayf.length;++l){o=a.arrayf[l];if(c.co[0].e.c)continue;if(c.ro[0].e.r)continue;s.push(su(o[1],i,D,a,n));F=true;break}if(!F)s.push(E[1])}break;case"PtgArray":s.push("{"+ru(E[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":;case"PtgAttrSpaceSemi":p=m;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":s.push("");break;case"PtgAreaErr":s.push("#REF!");break;case"PtgAreaErr3d":s.push("#REF!");break;case"PtgMemFunc":break;case"PtgMemNoMem":throw new Error("Unrecognized Formula Token: "+String(E));case"PtgElfCol":;case"PtgElfColS":;case"PtgElfColSV":;case"PtgElfColV":;case"PtgElfLel":;case"PtgElfRadical":;case"PtgElfRadicalLel":;case"PtgElfRadicalS":;case"PtgElfRw":;case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgAttrBaxcel":throw new Error("Unrecognized Formula Token: "+String(E));case"PtgSxName":throw new Error("Unrecognized Formula Token: "+String(E));case"PtgList":throw new Error("Unrecognized Formula Token: "+String(E));default:throw new Error("Unrecognized Formula Token: "+String(E));}var P=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(p>=0&&P.indexOf(e[0][m][0])==-1){E=e[0][p];var N=true;switch(E[1][0]){case 4:N=false;case 0:b=X(" ",E[1][1]);break;case 5:N=false;case 1:b=X("\r",E[1][1]);break;default:b="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+E[1][0]);}s.push((N?b:"")+s.pop()+(N?"":b));p=-1}}if(s.length>1&&n.WTF)throw new Error("bad formula stack");return s[0]}function lu(e,r,t,a){var n=e.l+r,i=t.biff==2?1:2;var s,l=e._R(i);if(l==65535)return[[],Tr(e,r-2)];var o=eu(e,l,t);if(r!==l+i)s=qc(e,r-l-i,o,t);return[o,s]}function ou(e,r,t){var a=e.l+r,n=t.biff==2?1:2;var i,s=e._R(n);if(s==65535)return[[],Tr(e,r-2)];var l=eu(e,s,t);if(r!==s+n)i=qc(e,r-s-n,l,t);return[l,i]}function fu(e,r,t,a){var n=e.l+r;var i=eu(e,a,t);var s;if(n!==e.l)s=qc(e,n-e.l,i,t);return[i,s]}function cu(e,r,t){var a=e.l+r;var n,i=e._R(2);var s=eu(e,i,t);if(i==65535)return[[],Tr(e,r-2)];if(r!==i+2)n=qc(e,a-i-2,s,t);return[s,n]}function uu(e){var r;if(hr(e,e.l+6)!==65535)return[yt(e),"n"];switch(e[e.l]){case 0:e.l+=8;return["String","s"];case 1:r=e[e.l+2]===1;e.l+=8;return[r,"b"];case 2:r=e[e.l+2];e.l+=8;return[r,"e"];case 3:e.l+=8;return["","s"];}return[]}function hu(e,r,t){var a=e.l+r;var n=Dn(e,6);if(t.biff==2)++e.l;var i=uu(e,8);var s=e._R(1);if(t.biff!=2){e._R(1);if(t.biff>=5){var l=e._R(4)}}var o=ou(e,a-e.l,t);return{cell:n,val:i[0],formula:o,shared:s>>3&1,tt:i[1]}}function du(e,r,t){var a=e.l+r;var n=e._R(4);var i=eu(e,n,t);var s=e._R(4);var l=s>0?qc(e,s,i,t):null;return[i,l]}var vu=du;var pu=du;var bu=du;var mu=du;var gu={1:"REFERENCE",2:"VALUE",3:"ARRAY"};var Eu={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"};var ku={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"};var wu={2:1,3:1,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,90:1,97:2,98:1,99:1,101:3,102:3,105:1,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};var Su={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFNA":"IFNA","_xlfn.IFERROR":"IFERROR","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function Bu(e){if(e.substr(0,3)=="of:")e=e.substr(3);if(e.charCodeAt(0)==61){e=e.substr(1);if(e.charCodeAt(0)==61)e=e.substr(1)}e=e.replace(/COM\.MICROSOFT\./g,"");e=e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(e,r){return r.replace(/\./g,"")});e=e.replace(/\[.(#[A-Z]*[?!])\]/g,"$1");return e.replace(/[;~]/g,",").replace(/\|/g,";")}function Cu(e){var r="of:="+e.replace(hf,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function _u(e){var r=e.split(":");var t=r[0].split(".")[0];return[t,r[0].split(".")[1]+":"+r[1].split(".")[1]]}var Tu={};var xu={};ha.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];function Iu(e,r){for(var t=0,a=e.length;t-1){t.width=Sl(a);t.customWidth=1}else if(r.width!=null)t.width=r.width;if(r.hidden)t.hidden=true;return t}function yu(e,r){if(!e)return;var t=[.7,.7,.75,.75,.3,.3];if(r=="xlml")t=[1,1,1,1,.5,.5];if(e.left==null)e.left=t[0];if(e.right==null)e.right=t[1];if(e.top==null)e.top=t[2];if(e.bottom==null)e.bottom=t[3];if(e.header==null)e.header=t[4];if(e.footer==null)e.footer=t[5]}function Ru(e,r,t){var a=t.revssf[r.z!=null?r.z:"General"];var n=60,i=e.length;if(a==null&&t.ssf){for(;n<392;++n)if(t.ssf[n]==null){E.load(r.z,n);t.ssf[n]=r.z;t.revssf[r.z]=a=n;break}}for(n=0;n!=i;++n)if(e[n].numFmtId===a)return n;e[i]={numFmtId:a,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return i}function Du(e,r,t,a,n,i){if(e.t==="z")return;if(e.t==="d"&&typeof e.v==="string")e.v=H(e.v);try{if(a.cellNF)e.z=E._table[r]}catch(s){if(a.WTF)throw s}if(!a||a.cellText!==false)try{if(e.t==="e")e.w=e.w||Dt[e.v];else if(r===0){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else if(e.t==="d"){var l=P(e.v);if((l|0)===l)e.w=E._general_int(l);else e.w=E._general_num(l)}else if(e.v===undefined)return"";else e.w=E._general(e.v,xu)}else if(e.t==="d")e.w=E.format(r,P(e.v),xu);else e.w=E.format(r,e.v,xu)}catch(s){if(a.WTF)throw s}if(!a.cellStyles)return;if(t!=null)try{e.s=i.Fills[t];if(e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb){e.s.fgColor.rgb=pl(n.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0);if(a.WTF)e.s.fgColor.raw_rgb=n.themeElements.clrScheme[e.s.fgColor.theme].rgb}if(e.s.bgColor&&e.s.bgColor.theme){e.s.bgColor.rgb=pl(n.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0);if(a.WTF)e.s.bgColor.raw_rgb=n.themeElements.clrScheme[e.s.bgColor.theme].rgb}}catch(s){if(a.WTF&&i.Fills)throw s}}function Ou(e,r){var t=et(r);if(t.s.r<=t.e.r&&t.s.c<=t.e.c&&t.s.r>=0&&t.s.c>=0)e["!ref"]=qr(t)}var Fu=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g;var Pu=/<(?:\w+:)?sheetData>([\s\S]*)<\/(?:\w+:)?sheetData>/;var Nu=/<(?:\w:)?hyperlink [^>]*>/gm;var Lu=/"(\w*:\w*)"/;var Mu=/<(?:\w:)?col[^>]*[\/]?>/g;var Uu=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g;var Hu=/<(?:\w:)?pageMargins[^>]*\/>/g;function Wu(e,r,t,a,n,i){if(!e)return e;if(c!=null&&r.dense==null)r.dense=c;var s=r.dense?[]:{};var l={s:{r:2e6,c:2e6},e:{r:0,c:0}};var o="",f="";var u=e.match(Pu);if(u){o=e.substr(0,u.index);f=e.substr(u.index+u[0].length)}else o=f=e;var h=(o.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(h>0){var d=o.substr(h,50).match(Lu);if(d)Ou(s,d[1])}var v=[];if(r.cellStyles){var p=o.match(Mu);if(p)Ku(v,p)}if(u)qu(u[1],s,r,l,n,i);var b=f.match(Uu);if(b)s["!autofilter"]=$u(b[0]);var m=[];var g=f.match(Fu);if(g)for(h=0;h!=g.length;++h)m[h]=et(g[h].substr(g[h].indexOf('"')+1));var E=f.match(Nu);if(E)Xu(s,E,t);var k=f.match(Hu);if(k)s["!margins"]=Gu(ue(k[0]));if(!s["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r)s["!ref"]=qr(l);if(r.sheetRows>0&&s["!ref"]){var w=et(s["!ref"]);if(r.sheetRows<+w.e.r){w.e.r=r.sheetRows-1;if(w.e.r>l.e.r)w.e.r=l.e.r;if(w.e.rl.e.c)w.e.c=l.e.c;if(w.e.c0)s["!cols"]=v;if(m.length>0)s["!merges"]=m;return s}function zu(e){if(e.length===0)return"";var r='';for(var t=0;t!=e.length;++t)r+='';return r+""}function Vu(e){var r={sheet:1};var t=["objects","scenarios","selectLockedCells","selectUnlockedCells"];var a=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];t.forEach(function(t){if(e[t]!=null&&e[t])r[t]="1"});a.forEach(function(t){if(e[t]!=null&&!e[t])r[t]="0"});if(e.password)r.password=al(e.password).toString(16).toUpperCase();return Ue("sheetProtection",null,r)}function Xu(e,r,t){var a=Array.isArray(e);for(var n=0;n!=r.length;++n){var i=ue(_e(r[n]),true);if(!i.ref)return;var s=t?t["!id"][i.id]:null;if(s){i.Target=s.Target;if(i.location)i.Target+="#"+i.location;i.Rel=s}else{i.Target=i.location;s={Target:i.location,TargetMode:"Internal"};i.Rel=s}if(i.tooltip){i.Tooltip=i.tooltip;delete i.tooltip}var l=et(i.ref);for(var o=l.s.r;o<=l.e.r;++o)for(var f=l.s.c;f<=l.e.c;++f){var c=$r({c:f,r:o});if(a){if(!e[o])e[o]=[];if(!e[o][f])e[o][f]={t:"z",v:undefined};e[o][f].l=i}else{if(!e[c])e[c]={t:"z",v:undefined};e[c].l=i}}}}function Gu(e){var r={};["left","right","top","bottom","header","footer"].forEach(function(t){if(e[t])r[t]=parseFloat(e[t])});return r}function ju(e){yu(e);return Ue("pageMargins",null,e)}function Ku(e,r){var t=false;for(var a=0;a!=r.length;++a){var n=ue(r[a],true);if(n.hidden)n.hidden=Ce(n.hidden);var i=parseInt(n.min,10)-1,s=parseInt(n.max,10)-1;delete n.min;delete n.max;n.width=+n.width;if(!t&&n.width){t=true;Tl(n.width)}Il(n);while(i<=s)e[i++]=V(n)}}function Yu(e,r){var t=[""],a,n;for(var i=0;i!=r.length;++i){if(!(a=r[i]))continue;t[t.length]=Ue("col",null,Au(i,a))}t[t.length]="";return t.join("")}function $u(e){var r={ref:(e.match(/ref="([^"]*)"/)||[])[1]};return r}function Zu(e){return Ue("autoFilter",null,{ref:e.ref})}function Qu(e,r,t,a){return Ue("sheetViews",Ue("sheetView",null,{workbookViewId:"0"}),{})}function Ju(e,r,t,a,n,i){if(e.v===undefined&&e.f===undefined||e.t==="z")return"";var s="";var l=e.t,o=e.v;switch(e.t){case"b":s=e.v?"1":"0";break;case"n":s=""+e.v;break;case"e":s=Dt[e.v];break;case"d":if(a.cellDates)s=H(e.v,-1).toISOString();else{e=V(e);e.t="n";s=""+(e.v=P(H(e.v)))}if(typeof e.z==="undefined")e.z=E._table[14];break;default:s=e.v;break;}var f=Le("v",ge(s)),c={r:r};var u=Ru(a.cellXfs,e,a);if(u!==0)c.s=u;switch(e.t){case"n":break;case"d":c.t="d";break;case"b":c.t="b";break;case"e":c.t="e";break;default:if(e.v==null){delete e.t;break}if(a.bookSST){f=Le("v",""+Iu(a.Strings,e.v));c.t="s";break}c.t="str";break;}if(e.t!=l){e.t=l;e.v=o}if(e.f){var h=e.F&&e.F.substr(0,r.length)==r?{t:"array",ref:e.F}:null;f=Ue("f",ge(e.f),h)+(e.v!=null?f:"")}if(e.l)t["!links"].push([r,e.l]);if(e.c)t["!comments"].push([r,e.c]);return Ue("c",f,c)}var qu=function bb(){var e=/<(?:\w+:)?c[ >]/,r=/<\/(?:\w+:)?row>/;var t=/r=["']([^"']*)["']/,a=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/;var n=/ref=["']([^"']*)["']/;var i=ye("v"),s=ye("f");return function l(o,f,c,u,h,d){var v=0,p="",b=[],m=[],g=0,k=0,w=0,S="",B;var C,_=0,T=0;var x,I;var A=0,y=0;var R=Array.isArray(d.CellXf),D;var O=[];var F=[];var L=Array.isArray(f);var M=[],U={},W=false;for(var z=o.split(r),V=0,X=z.length;V!=X;++V){p=z[V].trim();var G=p.length;if(G===0)continue;for(v=0;v_-1)u.s.r=_-1;if(u.e.r<_-1)u.e.r=_-1;if(c&&c.cellStyles){U={};W=false;if(C.ht){W=true;U.hpt=parseFloat(C.ht);U.hpx=Dl(U.hpt)}if(C.hidden=="1"){W=true;U.hidden=true}if(C.outlineLevel!=null){W=true;U.level=+C.outlineLevel}if(W)M[_-1]=U}b=p.substr(v).split(e);for(v=0;v!=b.length;++v){p=b[v].trim();if(p.length===0)continue;m=p.match(t);g=v;k=0;w=0;p="":"")+p;if(m!=null&&m.length===2){g=0;S=m[1];for(k=0;k!=S.length;++k){if((w=S.charCodeAt(k)-64)<1||w>26)break;g=26*g+w}--g;T=g}else++T;for(k=0;k!=p.length;++k)if(p.charCodeAt(k)===62)break;++k;C=ue(p.substr(0,k),true);if(!C.r)C.r=$r({r:_-1,c:T});S=p.substr(k);B={t:""};if((m=S.match(i))!=null&&m[1]!=="")B.v=pe(m[1]);if(c.cellFormula){if((m=S.match(s))!=null&&m[1]!==""){B.f=pe(_e(m[1])).replace(/_xlfn\./,"");if(m[0].indexOf('t="array"')>-1){B.F=(S.match(n)||[])[1];if(B.F.indexOf(":")>-1)O.push([et(B.F),B.F])}else if(m[0].indexOf('t="shared"')>-1){I=ue(m[0]);F[parseInt(I.si,10)]=[I,pe(_e(m[1]))]}}else if(m=S.match(/]*\/>/)){I=ue(m[0]);if(F[I.si])B.f=pf(F[I.si][1],F[I.si][0].ref,C.r)}var j=Yr(C.r);for(k=0;k=O[k][0].s.r&&j.r<=O[k][0].e.r)if(j.c>=O[k][0].s.c&&j.c<=O[k][0].e.c)B.F=O[k][1]}if(C.t==null&&B.v===undefined){if(B.f||B.F){B.v=0;B.t="n"}else if(!c.sheetStubs)continue;else B.t="z"}else B.t=C.t||"n";if(u.s.c>g)u.s.c=g;if(u.e.c0)f["!rows"]=M}}();function eh(e,r,t,a,n){var i=[],s=[],l=et(e["!ref"]),o,f,c="",u=[],h=0,d=0,v=e["!rows"];var p=Array.isArray(e);var b={r:c},m,g=-1;for(d=l.s.c;d<=l.e.c;++d)u[d]=Xr(d);for(h=l.s.r;h<=l.e.r;++h){s=[];c=Hr(h);for(d=l.s.c;d<=l.e.c;++d){f=u[d]+c;var E=p?(e[h]||[])[d]:e[f];if(E===undefined)continue;if((o=Ju(E,f,e,r,t,a))!=null)s.push(o)}if(s.length>0||v&&v[h]){b={r:c};if(v&&v[h]){m=v[h];if(m.hidden)b.hidden=1;g=-1;if(m.hpx)g=Rl(m.hpx);else if(m.hpt)g=m.hpt;if(g>-1){b.ht=g;b.customHeight=1}if(m.level){b.outlineLevel=m.level}}i[i.length]=Ue("row",s.join(""),b)}}if(v)for(;h-1){b.ht=g;b.customHeight=1}if(m.level){b.outlineLevel=m.level}i[i.length]=Ue("row","",b)}}return i.join("")}var rh=Ue("worksheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function th(e,r,t,a){var n=[se,rh];var i=t.SheetNames[e],s=0,l="";var o=t.Sheets[i];if(o==null)o={};var f=o["!ref"];if(f==null)f="A1";if(!a)a={};o["!comments"]=[];o["!drawing"]=[];n[n.length]=Ue("sheetPr",null,{codeName:ge(t.SheetNames[e])});n[n.length]=Ue("dimension",null,{ref:f});n[n.length]=Qu(o,r,e,t);if(r.sheetFormat)n[n.length]=Ue("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"});if(o["!cols"]!=null&&o["!cols"].length>0)n[n.length]=Yu(o,o["!cols"]);n[s=n.length]="";o["!links"]=[];if(o["!ref"]!=null){l=eh(o,r,e,t,a);if(l.length>0)n[n.length]=l}if(n.length>s+1){n[n.length]="";n[s]=n[s].replace("/>",">")}if(o["!protect"]!=null)n[n.length]=Vu(o["!protect"]);if(o["!autofilter"]!=null)n[n.length]=Zu(o["!autofilter"]);if(o["!merges"]!=null&&o["!merges"].length>0)n[n.length]=zu(o["!merges"]);var c=-1,u,h=-1;if(o["!links"].length>0){n[n.length]="";o["!links"].forEach(function(e){if(!e[1].Target)return;h=ma(a,-1,ge(e[1].Target).replace(/#.*$/,""),ha.HLINK);u={ref:e[0],"r:id":"rId"+h};if((c=e[1].Target.indexOf("#"))>-1)u.location=ge(e[1].Target.substr(c+1));if(e[1].Tooltip)u.tooltip=ge(e[1].Tooltip);n[n.length]=Ue("hyperlink",null,u)});n[n.length]=""}delete o["!links"];if(o["!margins"]!=null)n[n.length]=ju(o["!margins"]);var d=n.length;n[n.length]="";if(o["!drawing"].length>0){h=ma(a,-1,"../drawings/drawing"+(e+1)+".xml",ha.DRAW);n[n.length]=Ue("drawing",null,{"r:id":"rId"+h})}else delete o["!drawing"];if(o["!comments"].length>0){h=ma(a,-1,"../drawings/vmlDrawing"+(e+1)+".vml",ha.VML);n[n.length]=Ue("legacyDrawing",null,{"r:id":"rId"+h});o["!legacy"]=h}if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function ah(e,r){var t={};var a=e.l+r;t.r=e._R(4);e.l+=4;var n=e._R(2);e.l+=1;var i=e._R(1);e.l=a;if(i&7)t.level=i&7;if(i&16)t.hidden=true;if(i&32)t.hpt=n/20;return t}function nh(e,r,t){var a=Ar(17+8*16);var n=(t["!rows"]||[])[e]||{};a._W(4,e);a._W(4,0);var i=320;if(n.hpx)i=Rl(n.hpx)*20;else if(n.hpt)i=n.hpt*20;a._W(2,i);a._W(1,0);var s=0;if(n.level)s|=n.level;if(n.hidden)s|=16;if(n.hpx||n.hpt)s|=32;a._W(1,s);a._W(1,0);var l=0,o=a.l;a.l+=4;var f={r:e,c:0};for(var c=0;c<16;++c){if(r.s.c>c+1<<10||r.e.ca.l?a.slice(0,a.l):a}function ih(e,r,t,a){var n=nh(a,t,r);if(n.length>17||(r["!rows"]||[])[a])Dr(e,"BrtRowHdr",n)}var sh=It;var lh=At;function oh(e,r){}function fh(e,r){var t={};e.l+=19;t.name=bt(e,r-19);return t}function ch(e,r){if(r==null)r=Ar(84+4*e.length);for(var t=0;t<3;++t)r._W(1,0);Pt({auto:1},r);r._W(-4,-1);r._W(-4,-1);mt(e,r);return r.slice(0,r.l)}function uh(e,r){var t=vt(e);return[t]}function hh(e,r,t){if(t==null)t=Ar(8);return pt(r,t)}function dh(e,r){var t=vt(e);var a=e._R(1);return[t,a,"b"]}function vh(e,r,t){if(t==null)t=Ar(9);pt(r,t);t._W(1,e.v?1:0);return t}function ph(e,r){var t=vt(e);var a=e._R(1);return[t,a,"e"]}function bh(e,r){var t=vt(e);var a=e._R(4);return[t,a,"s"]}function mh(e,r,t){if(t==null)t=Ar(12);pt(r,t);t._W(4,r.v);return t}function gh(e,r){var t=vt(e);var a=yt(e);return[t,a,"n"]}function Eh(e,r,t){if(t==null)t=Ar(16);pt(r,t);Rt(e.v,t);return t}function kh(e,r){var t=vt(e);var a=Ct(e);return[t,a,"n"]}function wh(e,r,t){if(t==null)t=Ar(12);pt(r,t);_t(e.v,t);return t}function Sh(e,r){var t=vt(e);var a=st(e);return[t,a,"str"]}function Bh(e,r,t){if(t==null)t=Ar(12+4*e.v.length);pt(r,t);lt(e.v,t);return t.length>t.l?t.slice(0,t.l):t}function Ch(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var l=pu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}function _h(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var l=pu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}function Th(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=yt(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var l=pu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}function xh(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=st(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var l=pu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}var Ih=It;var Ah=At;function yh(e,r){if(r==null)r=Ar(4);r._W(4,e);return r}function Rh(e,r,t){var a=e.l+r;var n=It(e,16);var i=gt(e);var s=st(e);var l=st(e);var o=st(e);e.l=a;var f={rfx:n,relId:i,loc:s,display:o};if(l)f.Tooltip=l;return f}function Dh(e,r,t){if(t==null)t=Ar(50+4*e[1].Target.length);At({s:Yr(e[0]),e:Yr(e[0])},t);Bt("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.substr(a+1);lt(n||"",t);lt(e[1].Tooltip||"",t);lt("",t);return t.slice(0,t.l)}function Oh(e,r,t){var a=e.l+r;var n=Tt(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var l=vu(e,a-e.l,t);s[1]=l}else e.l=a;return s}function Fh(e,r,t){var a=e.l+r;var n=It(e,16);var i=[n];if(t.cellFormula){var s=mu(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function Ph(e,r,t){if(t==null)t=Ar(18);var a=Au(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;t._W(1,n);t._W(1,0);return t}var Nh=["left","right","top","bottom","header","footer"];function Lh(e,r,t){var a={};Nh.forEach(function(r){a[r]=yt(e,8)});return a}function Mh(e,r){if(r==null)r=Ar(6*8);yu(e);Nh.forEach(function(t){Rt(e[t],r)});return r}function Uh(e,r){if(r==null)r=Ar(30);r._W(2,924);r._W(4,0);r._W(4,0);r._W(4,0);r._W(1,0);r._W(1,0);r._W(2,0);r._W(2,100);r._W(2,0);r._W(2,0);r._W(2,0);r._W(4,0);return r}function Hh(e,r){if(r==null)r=Ar(16*4+2);r._W(2,e.password?al(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function Wh(e,r,t,a,n,i){if(!e)return e;var s=r||{};if(!t)t={"!id":{}};if(c!=null&&s.dense==null)s.dense=c;var l=s.dense?[]:{};var o;var f={s:{r:2e6,c:2e6},e:{r:0,c:0}};var u=false,h=false;var d,v,p,b,m,g,k,w,S;var B=[];s.biff=12;s["!row"]=0;var C=0,_=false;var T=[];var x={};var I=[[]];I.sharedf=x;I.arrayf=T;I.SheetNames=a.SheetNames||a.Sheets.map(function(e){return e.name});s.supbooks=I;for(var A=0;A=c[0].s.r&&d.r<=c[0].e.r)if(m>=c[0].s.c&&m<=c[0].e.c){v.F=qr(c[0]);_=true}}if(!_&&e.length>3)v.f=e[3]}if(f.s.r>d.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.rd.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.r=e.s){y[e.e--]={width:e.w/256,hidden:!!(e.flags&1)};if(!F){F=true;Tl(e.w/256)}Il(y[e.e+1])}break;case 161:l["!autofilter"]={ref:qr(e)};break;case 476:l["!margins"]=e;break;case 485:;case 175:;case 644:;case 625:;case 562:;case 396:;case 1112:;case 1146:;case 471:;case 1050:;case 649:;case 1105:;case 49:;case 589:;case 607:;case 564:;case 1055:;case 168:;case 174:;case 1180:;case 499:;case 64:;case 1053:;case 550:;case 171:;case 167:;case 1177:;case 169:;case 1181:;case 551:;case 552:;case 661:;case 639:;case 478:;case 151:;case 537:;case 477:;case 536:;case 1103:;case 680:;case 1104:;case 1024:;case 152:;case 663:;case 535:;case 678:;case 504:;case 1043:;case 428:;case 170:;case 50:;case 2070:;case 1045:;case 147:break;case 35:u=true;break;case 36:u=false;break;case 37:break;case 38:break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!u||s.WTF)throw new Error("Unexpected record "+a+" "+r);}},s);delete s.supbooks;delete s["!row"];if(!l["!ref"]&&(f.s.r<2e6||o&&(o.e.r>0||o.e.c>0||o.s.r>0||o.s.c>0)))l["!ref"]=qr(o||f);if(s.sheetRows&&l["!ref"]){var P=et(l["!ref"]);if(s.sheetRows<+P.e.r){P.e.r=s.sheetRows-1;if(P.e.r>f.e.r)P.e.r=f.e.r;if(P.e.rf.e.c)P.e.c=f.e.c;if(P.e.c0)l["!merges"]=B;if(y.length>0)l["!cols"]=y;if(R.length>0)l["!rows"]=R;return l}function zh(e,r,t,a,n,i){if(r.v===undefined)return"";var s="";switch(r.t){case"b":s=r.v?"1":"0";break;case"d":r=V(r);r.z=r.z||E._table[14];r.v=P(H(r.v));r.t="n";break;case"n":;case"e":s=""+r.v;break;default:s=r.v;break;}var l={r:t,c:a};l.s=Ru(n.cellXfs,r,n);if(r.l)i["!links"].push([$r(l),r.l]);if(r.c)i["!comments"].push([$r(l),r.c]);switch(r.t){case"s":;case"str":if(n.bookSST){s=Iu(n.Strings,r.v);l.t="s";l.v=s;Dr(e,"BrtCellIsst",mh(r,l))}else{l.t="str";Dr(e,"BrtCellSt",Bh(r,l))}return;case"n":if(r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3)Dr(e,"BrtCellRk",wh(r,l));else Dr(e,"BrtCellReal",Eh(r,l));return;case"b":l.t="b";Dr(e,"BrtCellBool",vh(r,l));return;case"e":l.t="e";break;}Dr(e,"BrtCellBlank",hh(r,l))}function Vh(e,r,t,a,n){var i=et(r["!ref"]||"A1"),s,l="",o=[];Dr(e,"BrtBeginSheetData");var f=Array.isArray(r);var c=i.e.r;if(r["!rows"])c=Math.max(i.e.r,r["!rows"].length-1);for(var u=i.s.r;u<=c;++u){l=Hr(u);ih(e,r,i,u);if(u<=i.e.r)for(var h=i.s.c;h<=i.e.c;++h){if(u===i.s.r)o[h]=Xr(h);s=o[h]+l;var d=f?(r[u]||[])[h]:r[s];if(!d)continue;zh(e,d,u,h,a,r)}}Dr(e,"BrtEndSheetData")}function Xh(e,r){if(!r||!r["!merges"])return;Dr(e,"BrtBeginMergeCells",yh(r["!merges"].length));r["!merges"].forEach(function(r){Dr(e,"BrtMergeCell",Ah(r))});Dr(e,"BrtEndMergeCells")}function Gh(e,r,t,a,n){if(!r||!r["!cols"])return;Dr(e,"BrtBeginColInfos");r["!cols"].forEach(function(r,t){if(r)Dr(e,"BrtColInfo",Ph(t,r))});Dr(e,"BrtEndColInfos")}function jh(e,r,t){r["!links"].forEach(function(r){if(!r[1].Target)return;var a=ma(t,-1,r[1].Target.replace(/#.*$/,""),ha.HLINK);Dr(e,"BrtHLink",Dh(r,a))});delete r["!links"]}function Kh(e,r,t,a){if(r["!comments"].length>0){var n=ma(a,-1,"../drawings/vmlDrawing"+(t+1)+".vml",ha.VML);Dr(e,"BrtLegacyDrawing",Bt("rId"+n));r["!legacy"]=n}}function Yh(e,r){if(!r["!autofilter"])return;Dr(e,"BrtBeginAFilter",At(Jr(r["!autofilter"].ref)));Dr(e,"BrtEndAFilter")}function $h(e,r){Dr(e,"BrtBeginWsViews");{Dr(e,"BrtBeginWsView",Uh(r));Dr(e,"BrtEndWsView")}Dr(e,"BrtEndWsViews")}function Zh(e,r){}function Qh(e,r){if(!r["!protect"])return;Dr(e,"BrtSheetProtection",Hh(r["!protect"]))}function Jh(e,r,t,a){var n=Rr();var i=t.SheetNames[e],s=t.Sheets[i]||{};var l=et(s["!ref"]||"A1");s["!links"]=[];s["!comments"]=[];Dr(n,"BrtBeginSheet");Dr(n,"BrtWsProp",ch(i));Dr(n,"BrtWsDim",lh(l));$h(n,s);Zh(n,s);Gh(n,s,e,r,t);Vh(n,s,e,r,t);Qh(n,s);Yh(n,s);Xh(n,s);jh(n,s,a);if(s["!margins"])Dr(n,"BrtMargins",Mh(s["!margins"]));Kh(n,s,e,a);Dr(n,"BrtEndSheet");return n.end()}function qh(e){var r=[];(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach(function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);if(!t)return;r[+t[1]]=+t[2]});var t=pe((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return[r,t]}function ed(e,r,t,a,n,i){var s=i||{"!type":"chart"};if(!e)return i;var l=0,o=0,f="A";var c={s:{r:2e6,c:2e6},e:{r:0,c:0}};(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(e){var r=qh(e);c.s.r=c.s.c=0;c.e.c=l;f=Xr(l);r[0].forEach(function(e,t){s[f+Hr(t)]={t:"n",v:e,z:r[1]};o=t});if(c.e.r0)s["!ref"]=qr(c);return s}ha.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";var rd=Ue("chartsheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function td(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var l;if(l=e.match(/drawing r:id="(.*?)"/))s["!rel"]=l[1];if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function ad(e,r,t,a){var n=[se,rd];n[n.length]=Ue("drawing",null,{"r:id":"rId1"});ma(a,-1,"../drawings/drawing"+(e+1)+".xml",ha.DRAW);if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function nd(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var l=[];var o=false;yr(e,function f(e,t,a){switch(a){case 550:s["!rel"]=e;break;case 562:;case 652:;case 651:;case 669:;case 679:;case 551:;case 552:;case 476:break;case 35:o=true;break;case 36:o=false;break;case 37:l.push(t);break;case 38:l.pop();break;default:if((t||"").indexOf("Begin")>0)l.push(t);else if((t||"").indexOf("End")>0)l.pop();else if(!o||r.WTF)throw new Error("Unexpected record "+a+" "+t);}},r);if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function id(e,r,t,a){var n=Rr();Dr(n,"BrtBeginSheet");Dr(n,"BrtEndSheet");return n.end()}var sd=[["allowRefreshQuery",false,"bool"],["autoCompressPictures",true,"bool"],["backupFile",false,"bool"],["checkCompatibility",false,"bool"],["codeName",""],["date1904",false,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",false,"bool"],["hidePivotFieldList",false,"bool"],["promptedSolutions",false,"bool"],["publishItems",false,"bool"],["refreshAllConnections",false,"bool"],["saveExternalLinkValues",true,"bool"],["showBorderUnselectedTables",true,"bool"],["showInkAnnotation",true,"bool"],["showObjects","all"],["showPivotChartFilter",false,"bool"],["updateLinks","userSet"]];var ld=[["activeTab",0,"int"],["autoFilterDateGrouping",true,"bool"],["firstSheet",0,"int"],["minimized",false,"bool"],["showHorizontalScroll",true,"bool"],["showSheetTabs",true,"bool"],["showVerticalScroll",true,"bool"],["tabRatio",600,"int"],["visibility","visible"]];var od=[];var fd=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var cd=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function ud(e,r){for(var t=0;t!=e.length;++t){var a=e[t];for(var n=0;n!=r.length;++n){var i=r[n];if(a[i[0]]==null)a[i[0]]=i[1];else switch(i[2]){case"bool":if(typeof a[i[0]]=="string")a[i[0]]=Ce(a[i[0]],i[0]);break;case"int":if(typeof a[i[0]]=="string")a[i[0]]=parseInt(a[i[0]],10);break;}}}}function hd(e,r){for(var t=0;t!=r.length;++t){var a=r[t];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case"bool":if(typeof e[a[0]]=="string")e[a[0]]=Ce(e[a[0]],a[0]);break;case"int":if(typeof e[a[0]]=="string")e[a[0]]=parseInt(e[a[0]],10);break;}}}function dd(e){hd(e.WBProps,sd);hd(e.CalcPr,fd);ud(e.WBView,ld);ud(e.Sheets,od);xu.date1904=Ce(e.WBProps.date1904,"date1904")}function vd(e){if(!e.Workbook)return"false";if(!e.Workbook.WBProps)return"false";return Ce(e.Workbook.WBProps.date1904)?"true":"false"}var pd="][*?/\\".split("");function bd(e,r){if(e.length>31){if(r)return false;throw new Error("Sheet names cannot exceed 31 chars")}var t=true;pd.forEach(function(a){if(e.indexOf(a)==-1)return;if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=false});return t}function md(e){e.forEach(function(r,t){bd(r);for(var a=0;a":break;case"":;case"":break;case"":break;case"":sd.forEach(function(e){if(c[e[0]]==null)return;switch(e[2]){case"bool":t.WBProps[e[0]]=Ce(c[e[0]],e[0]);break;case"int":t.WBProps[e[0]]=parseInt(c[e[0]],10);break;default:t.WBProps[e[0]]=c[e[0]];}});break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":a=false;break;case"":{i.Ref=e.slice(s,f);t.Names.push(i)}break;case"":break;case"":delete c[0];t.CalcPr=c;break;case"":break;case"":;case"":;case"":break;case"":;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":;case"":;case"":break;case"":a=false;break;case"":a=true;break;case"":a=false;break;case"0;var n={codeName:"ThisWorkbook"};if(e.Workbook&&e.Workbook.WBProps){if(e.Workbook.WBProps.codeName)n.codeName=e.Workbook.WBProps.codeName;sd.forEach(function(r){if(e.Workbook.WBProps[r[0]]==null)return;if(e.Workbook.WBProps[r[0]]==r[1])return;n[r[0]]=e.Workbook.WBProps[r[0]]})}t[t.length]=Ue("workbookPr",null,n);t[t.length]="";var i=e.Workbook&&e.Workbook.Sheets||[];for(var s=0;s!=e.SheetNames.length;++s){var l={name:ge(e.SheetNames[s].substr(0,31))};l.sheetId=""+(s+1);l["r:id"]="rId"+(s+1);if(i[s])switch(i[s].Hidden){case 1:l.state="hidden";break;case 2:l.state="veryHidden";break;}t[t.length]=Ue("sheet",null,l)}t[t.length]="";if(a){t[t.length]="";if(e.Workbook&&e.Workbook.Names)e.Workbook.Names.forEach(function(e){var r={name:e.Name};if(e.Comment)r.comment=e.Comment;if(e.Sheet!=null)r.localSheetId=""+e.Sheet;if(!e.Ref)return;t[t.length]=Ue("definedName",String(e.Ref),r)});t[t.length]=""}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Bd(e,r){var t={};t.Hidden=e._R(4);t.iTabID=e._R(4);t.strRelID=St(e,r-8);t.name=st(e);return t}function Cd(e,r){if(!r)r=Ar(127); +r._W(4,e.Hidden);r._W(4,e.iTabID);Bt(e.strRelID,r);lt(e.name.substr(0,31),r);return r.length>r.l?r.slice(0,r.l):r}function _d(e,r){var t={};var a=e._R(4);t.defaultThemeVersion=e._R(4);var n=r>8?st(e):"";if(n.length>0)t.codeName=n;t.autoCompressPictures=!!(a&65536);t.backupFile=!!(a&64);t.checkCompatibility=!!(a&4096);t.date1904=!!(a&1);t.filterPrivacy=!!(a&8);t.hidePivotFieldList=!!(a&1024);t.promptedSolutions=!!(a&16);t.publishItems=!!(a&2048);t.refreshAllConnections=!!(a&262144);t.saveExternalLinkValues=!!(a&128);t.showBorderUnselectedTables=!!(a&4);t.showInkAnnotation=!!(a&32);t.showObjects=["all","placeholders","none"][a>>13&3];t.showPivotChartFilter=!!(a&32768);t.updateLinks=["userSet","never","always"][a>>8&3];return t}function Td(e,r){if(!r)r=Ar(72);var t=0;if(e){if(e.filterPrivacy)t|=8}r._W(4,t);r._W(4,0);mt("ThisWorkbook",r);return r.slice(0,r.l)}function xd(e,r){var t={};e._R(4);t.ArchID=e._R(4);e.l+=r-8;return t}function Id(e,r,t){var a=e.l+r;var n=e._R(4);var i=e._R(1);var s=e._R(4);var l=kt(e);var o=bu(e,0,t);var f=gt(e);e.l=a;var c={Name:l,Ptg:o,Comment:f};if(s<268435455)c.Sheet=s;return c}function Ad(e,r){var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var a=false,n;if(!r)r={};r.biff=12;var i=[];var s=[];s.SheetNames=[];yr(e,function l(e,n,o){switch(o){case 156:s.SheetNames.push(e.name);t.Sheets.push(e);break;case 153:t.WBProps=e;break;case 39:e.Ref=su(e.Ptg,null,null,s,r);delete e.Ptg;i.push(e);break;case 1036:break;case 357:;case 358:;case 355:;case 667:;case 362:;case 361:break;case 2071:;case 534:;case 677:;case 158:;case 157:;case 610:;case 2050:;case 155:;case 548:;case 676:;case 128:;case 665:;case 2128:;case 2125:;case 549:;case 2053:;case 596:;case 2076:;case 2075:;case 2082:;case 397:;case 154:;case 1117:;case 553:;case 2091:break;case 35:a=true;break;case 36:a=false;break;case 37:break;case 38:break;case 16:break;default:if((n||"").indexOf("Begin")>0){}else if((n||"").indexOf("End")>0){}else if(!a||r.WTF)throw new Error("Unexpected record "+o+" "+n);}},r);dd(t);t.Names=i;return t}function yd(e,r,t){Dr(e,"BrtBeginBundleShs");for(var a=0;a!=r.SheetNames.length;++a){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[a]&&r.Workbook.Sheets[a].Hidden||0;var i={Hidden:n,iTabID:a+1,strRelID:"rId"+(a+1),name:r.SheetNames[a]};Dr(e,"BrtBundleSh",Cd(i))}Dr(e,"BrtEndBundleShs")}function Rd(e,t){if(!t)t=Ar(127);for(var a=0;a!=4;++a)t._W(4,0);lt("SheetJS",t);lt(r.version,t);lt(r.version,t);lt("7262",t);t.length=t.l;return t.length>t.l?t.slice(0,t.l):t}function Dd(e,r){if(!r)r=Ar(29);r._W(-4,0);r._W(-4,460);r._W(4,28800);r._W(4,17600);r._W(4,500);r._W(4,e);r._W(4,e);var t=120;r._W(1,t);return r.length>r.l?r.slice(0,r.l):r}function Od(e,r,t){if(!r.Workbook||!r.Workbook.Sheets)return;var a=r.Workbook.Sheets;var n=0,i=-1,s=-1;for(;ni)return;Dr(e,"BrtBeginBookViews");Dr(e,"BrtBookView",Dd(i));Dr(e,"BrtEndBookViews")}function Fd(e,r){if(!r)r=Ar(26);r._W(4,0);r._W(4,1);r._W(4,0);Rt(0,r);r._W(-4,1023);r._W(1,51);r._W(1,0);return r}function Pd(e,r){if(!r)r=Ar(1);r._W(1,0);return r}function Nd(e,r){var t=Rr();Dr(t,"BrtBeginBook");Dr(t,"BrtFileVersion",Rd());Dr(t,"BrtWbProp",Td(e.Workbook&&e.Workbook.WBProps||null));Od(t,e,r);yd(t,e,r);Dr(t,"BrtEndBook");return t.end()}function Ld(e,r,t){if(r.slice(-4)===".bin")return Ad(e,t);return kd(e,t)}function Md(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Wh(e,t,a,n,i,s);return Wu(e,t,a,n,i,s)}function Ud(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return nd(e,t,a,n,i,s);return td(e,t,a,n,i,s)}function Hd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return ff(e,t,a,n,i,s);return cf(e,t,a,n,i,s)}function Wd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return lf(e,t,a,n,i,s);return of(e,t,a,n,i,s)}function zd(e,r,t,a){if(r.slice(-4)===".bin")return lo(e,t,a);return Vl(e,t,a)}function Vd(e,r,t){return Io(e,t)}function Xd(e,r,t){if(r.slice(-4)===".bin")return Ls(e,t);return Os(e,t)}function Gd(e,r,t){if(r.slice(-4)===".bin")return af(e,t);return Zo(e,t)}function jd(e,r,t){if(r.slice(-4)===".bin")return Wo(e,r,t);return Mo(e,r,t)}function Kd(e,r,t){if(r.slice(-4)===".bin")return Xo(e,r,t);return Vo(e,r,t)}function Yd(e,r,t){return(r.slice(-4)===".bin"?Nd:Sd)(e,t)}function $d(e,r,t,a,n){return(r.slice(-4)===".bin"?Jh:th)(e,t,a,n)}function Zd(e,r,t,a,n){return(r.slice(-4)===".bin"?id:ad)(e,t,a,n)}function Qd(e,r,t){return(r.slice(-4)===".bin"?Eo:Gl)(e,t)}function Jd(e,r,t){return(r.slice(-4)===".bin"?Hs:Ps)(e,t)}function qd(e,r,t){return(r.slice(-4)===".bin"?nf:Jo)(e,t)}var ev=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var rv=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var tv=function(e){return String.fromCharCode(e)};function av(e,r){var t=e.split(/\s+/);var a=[];if(!r)a[0]=t[0];if(t.length===1)return a;var n=e.match(ev),i,s,l,o;if(n)for(o=0;o!=n.length;++o){i=n[o].match(rv);if((s=i[1].indexOf(":"))===-1)a[i[1]]=i[2].substr(1,i[2].length-2);else{if(i[1].substr(0,6)==="xmlns:")l="xmlns"+i[1].substr(6);else l=i[1].substr(s+1);a[l]=i[2].substr(1,i[2].length-2)}}return a}function nv(e){var r=e.split(/\s+/);var t={};if(r.length===1)return t;var a=e.match(ev),n,i,s,l;if(a)for(l=0;l!=a.length;++l){n=a[l].match(rv);if((i=n[1].indexOf(":"))===-1)t[n[1]]=n[2].substr(1,n[2].length-2);else{if(n[1].substr(0,6)==="xmlns:")s="xmlns"+n[1].substr(6);else s=n[1].substr(i+1);t[s]=n[2].substr(1,n[2].length-2)}}return t}function iv(e,r){var t=w[e]||pe(e);if(t==="General")return E._general(r);return E.format(t,r)}function sv(e,r,t,a){var n=a;switch((t[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":n=Ce(a);break;case"i2":;case"int":n=parseInt(a,10);break;case"r4":;case"float":n=parseFloat(a);break;case"date":;case"dateTime.tz":n=H(a);break;case"i8":;case"string":;case"fixed":;case"uuid":;case"bin.base64":break;default:throw new Error("bad custprop:"+t[0]);}e[pe(r[3])]=n}function lv(e,r,t){if(e.t==="z")return;if(!t||t.cellText!==false)try{if(e.t==="e"){e.w=e.w||Dt[e.v]}else if(r==="General"){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else e.w=E._general(e.v)}else e.w=iv(r||"General",e.v)}catch(a){if(t.WTF)throw a}try{var n=w[r]||r||"General";if(t.cellNF)e.z=n;if(t.cellDates&&e.t=="n"&&E.is_date(n)){var i=E.parse_date_code(e.v);if(i){e.t="d";e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u)}}}catch(a){if(t.WTF)throw a}}function ov(e,r,t){if(t.cellStyles){if(r.Interior){var a=r.Interior;if(a.Pattern)a.patternType=Ol[a.Pattern]||a.Pattern}}e[r.ID]=r}function fv(e,r,t,a,n,i,s,l,o,f){var c="General",u=a.StyleID,h={};f=f||{};var d=[];var v=0;if(u===undefined&&l)u=l.StyleID;if(u===undefined&&s)u=s.StyleID;while(i[u]!==undefined){if(i[u].nf)c=i[u].nf;if(i[u].Interior)d.push(i[u].Interior);if(!i[u].Parent)break;u=i[u].Parent}switch(t.Type){case"Boolean":a.t="b";a.v=Ce(e);break;case"String":a.t="s";a.r=Se(pe(e));a.v=e.indexOf("<")>-1?pe(r):a.r;break;case"DateTime":if(e.slice(-1)!="Z")e+="Z";a.v=(H(e)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(a.v!==a.v)a.v=pe(e);else if(a.v<60)a.v=a.v-1;if(!c||c=="General")c="yyyy-mm-dd";case"Number":if(a.v===undefined)a.v=+e;if(!a.t)a.t="n";break;case"Error":a.t="e";a.v=Ot[e];if(f.cellText!==false)a.w=e;break;default:a.t="s";a.v=Se(r||e);break;}lv(a,c,f);if(f.cellFormula!==false){if(a.Formula){var p=pe(a.Formula);if(p.charCodeAt(0)==61)p=p.substr(1);a.f=uf(p,n);delete a.Formula;if(a.ArrayRange=="RC")a.F=uf("RC:RC",n);else if(a.ArrayRange){a.F=uf(a.ArrayRange,n);o.push([et(a.F),a.F])}}else{for(v=0;v=o[v][0].s.r&&n.r<=o[v][0].e.r)if(n.c>=o[v][0].s.c&&n.c<=o[v][0].e.c)a.F=o[v][1]}}if(f.cellStyles){d.forEach(function(e){if(!h.patternType&&e.patternType)h.patternType=e.patternType});a.s=h}a.ixfe=a.StyleID!==undefined?a.StyleID:"Default"}function cv(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function uv(e){if(d&&Buffer.isBuffer(e))return e.toString("utf8");if(typeof e==="string")return e;throw new Error("Bad input format: expected Buffer or string")}var hv=/<(\/?)([^\s?>!\/:]*:|)([^\s?>]*[^\s?>\/])[^>]*>/gm;function dv(e,r){var t=r||{};k(E);var a=o(uv(e));if(t.type=="binary"||t.type=="base64"){if(typeof cptable!=="undefined")a=cptable.utils.decode(65001,i(a));else a=_e(a)}var n=a.slice(0,1024).toLowerCase(),s=false;if(n.indexOf("=0)s=true});if(s)return Zv.to_workbook(a,t);var l;var f=[],u;if(c!=null&&t.dense==null)t.dense=c;var h={},d=[],v=t.dense?[]:{},p="";var b={},m={},g={};var S=av(''),B=0;var C=0,_=0;var T={s:{r:2e6,c:2e6},e:{r:0,c:0}};var x={},I={};var A="",y=0;var R=[];var D={},O={},F=0,P={};var N=[],L={};var M=[],U,H=false;var W=[];var z=[],X={},G=0,j=0;var K={Sheets:[],WBProps:{date1904:false}},Y={};hv.lastIndex=0;a=a.replace(//gm,"");while(l=hv.exec(a))switch(l[3]){case"Data":if(f[f.length-1][1])break;if(l[1]==="/")fv(a.slice(B,l.index),A,S,f[f.length-1][0]=="Comment"?L:m,{c:C,r:_},x,M[C],g,W,t);else{A="";S=av(l[0]);B=l.index+l[0].length}break;case"Cell":if(l[1]==="/"){if(N.length>0)m.c=N;if((!t.sheetRows||t.sheetRows>_)&&m.v!==undefined){if(t.dense){if(!v[_])v[_]=[];v[_][C]=m}else v[Xr(C)+Hr(_)]=m}if(m.HRef){m.l={Target:m.HRef,Tooltip:m.HRefScreenTip};delete m.HRef;delete m.HRefScreenTip}if(m.MergeAcross||m.MergeDown){G=C+(parseInt(m.MergeAcross,10)|0);j=_+(parseInt(m.MergeDown,10)|0);R.push({s:{c:C,r:_},e:{c:G,r:j}})}if(!t.sheetStubs){if(m.MergeAcross)C=G+1;else++C}else if(m.MergeAcross||m.MergeDown){for(var $=C;$<=G;++$){for(var Z=_;Z<=j;++Z){if($>C||Z>_){if(t.dense){if(!v[Z])v[Z]=[];v[Z][$]={t:"z"}}else v[Xr($)+Hr(Z)]={t:"z"}}}}C=G+1}else++C}else{m=nv(l[0]);if(m.Index)C=+m.Index-1;if(CT.e.c)T.e.c=C;if(l[0].slice(-2)==="/>")++C;N=[]}break;case"Row":if(l[1]==="/"||l[0].slice(-2)==="/>"){if(_T.e.r)T.e.r=_;if(l[0].slice(-2)==="/>"){g=av(l[0]);if(g.Index)_=+g.Index-1}C=0;++_}else{g=av(l[0]);if(g.Index)_=+g.Index-1;X={};if(g.AutoFitHeight=="0"||g.Height){X.hpx=parseInt(g.Height,10);X.hpt=Rl(X.hpx);z[_]=X}if(g.Hidden=="1"){X.hidden=true;z[_]=X}}break;case"Worksheet":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"));d.push(p);if(T.s.r<=T.e.r&&T.s.c<=T.e.c)v["!ref"]=qr(T);if(R.length)v["!merges"]=R;if(M.length>0)v["!cols"]=M;if(z.length>0)v["!rows"]=z;h[p]=v}else{T={s:{r:2e6,c:2e6},e:{r:0,c:0}};_=C=0;f.push([l[3],false]);u=av(l[0]);p=pe(u.Name);v=t.dense?[]:{};R=[];W=[];z=[];Y={name:p,Hidden:0};K.Sheets.push(Y)}break;case"Table":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].slice(-2)=="/>")break;else{b=av(l[0]);f.push([l[3],false]);M=[];H=false}break;case"Style":if(l[1]==="/")ov(x,I,t);else I=av(l[0]);break;case"NumberFormat":I.nf=pe(av(l[0]).Format||"General");if(w[I.nf])I.nf=w[I.nf];for(var Q=0;Q!=392;++Q)if(E._table[Q]==I.nf)break;if(Q==392)for(Q=57;Q!=392;++Q)if(E._table[Q]==null){E.load(I.nf,Q);break}break;case"Column":if(f[f.length-1][0]!=="Table")break;U=av(l[0]);if(U.Hidden){U.hidden=true;delete U.Hidden}if(U.Width)U.wpx=parseInt(U.Width,10);if(!H&&U.wpx>10){H=true;El=bl;for(var J=0;J0)re.Sheet=K.Sheets.length-1;K.Names.push(re);break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")A+=a.slice(y,l.index);else y=l.index+l[0].length;break;case"Interior":if(!t.cellStyles)break;I.Interior=av(l[0]);break;case"Protection":break;case"Author":;case"Title":;case"Description":;case"Created":;case"Keywords":;case"Subject":;case"Category":;case"Company":;case"LastAuthor":;case"LastSaved":;case"LastPrinted":;case"Version":;case"Revision":;case"TotalTime":;case"HyperlinkBase":;case"Manager":;case"ContentStatus":;case"Identifier":;case"Language":;case"AppName":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")Wa(D,l[3],a.slice(F,l.index));else F=l.index+l[0].length;break;case"Paragraphs":break;case"Styles":;case"Workbook":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else f.push([l[3],false]);break;case"Comment":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"));cv(L);N.push(L)}else{f.push([l[3],false]);u=av(l[0]);L={a:u.Author}}break;case"AutoFilter":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/"){var te=av(l[0]);v["!autofilter"]={ref:uf(te.Range).replace(/\$/g,"")};f.push([l[3],true])}break;case"Name":break;case"ComponentOptions":;case"DocumentProperties":;case"CustomDocumentProperties":;case"OfficeDocumentSettings":;case"PivotTable":;case"PivotCache":;case"Names":;case"MapInfo":;case"PageBreaks":;case"QueryTable":;case"DataValidation":;case"Sorting":;case"Schema":;case"data":;case"ConditionalFormatting":;case"SmartTagType":;case"SmartTags":;case"ExcelWorkbook":;case"WorkbookOptions":;case"WorksheetOptions":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/")f.push([l[3],true]);break;default:if(f.length==0&&l[3]=="document")return rp(a,t);if(f.length==0&&l[3]=="UOF")return rp(a,t);var ae=true;switch(f[f.length-1][0]){case"OfficeDocumentSettings":switch(l[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:ae=false;}break;case"ComponentOptions":switch(l[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:ae=false;}break;case"ExcelWorkbook":switch(l[3]){case"Date1904":K.WBProps.date1904=true;break;case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:ae=false;}break;case"WorkbookOptions":switch(l[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:ae=false;}break;case"WorksheetOptions":switch(l[3]){case"Visible":if(l[0].slice(-2)==="/>"){}else if(l[1]==="/")switch(a.slice(F,l.index)){case"SheetHidden":Y.Hidden=1;break;case"SheetVeryHidden":Y.Hidden=2;break;}else F=l.index+l[0].length;break;case"Header":if(!v["!margins"])yu(v["!margins"]={},"xlml");v["!margins"].header=ue(l[0]).Margin;break;case"Footer":if(!v["!margins"])yu(v["!margins"]={},"xlml");v["!margins"].footer=ue(l[0]).Margin;break;case"PageMargins":var ne=ue(l[0]);if(!v["!margins"])yu(v["!margins"]={},"xlml");if(ne.Top)v["!margins"].top=ne.Top;if(ne.Left)v["!margins"].left=ne.Left;if(ne.Right)v["!margins"].right=ne.Right;if(ne.Bottom)v["!margins"].bottom=ne.Bottom;break;case"Unsynced":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"PageSetup":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:ae=false;}break;case"PivotTable":;case"PivotCache":switch(l[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:ae=false;}break;case"PageBreaks":switch(l[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:ae=false;}break;case"AutoFilter":switch(l[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:ae=false;}break;case"QueryTable":switch(l[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:ae=false;}break;case"Sorting":;case"ConditionalFormatting":;case"DataValidation":switch(l[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:ae=false;}break;case"MapInfo":;case"Schema":;case"data":switch(l[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":;case"element":;case"complexType":;case"datatype":;case"all":;case"attribute":;case"extends":break;case"row":break;default:ae=false;}break;case"SmartTags":break;default:ae=false;break;}if(ae)break;if(!f[f.length-1][1])throw"Unrecognized tag: "+l[3]+"|"+f.join("|");if(f[f.length-1][0]==="CustomDocumentProperties"){if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")sv(O,l,P,a.slice(F,l.index));else{P=l;F=l.index+l[0].length}break}if(t.WTF)throw"Unrecognized tag: "+l[3]+"|"+f.join("|");}var ie={};if(!t.bookSheets&&!t.bookProps)ie.Sheets=h;ie.SheetNames=d;ie.Workbook=K;ie.SSF=E.get_table();ie.Props=D;ie.Custprops=O;return ie}function vv(e){if(Array.isArray(e))return e.map(tv).join("");var r=[];for(var t=0;t");if(e["!margins"].header)n.push(Ue("Header",null,{"x:Margin":e["!margins"].header}));if(e["!margins"].footer)n.push(Ue("Footer",null,{"x:Margin":e["!margins"].footer}));n.push(Ue("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"}));n.push("")}if(a&&a.Workbook&&a.Workbook.Sheets&&a.Workbook.Sheets[t]){if(a.Workbook.Sheets[t].Hidden)n.push(Ue("Visible",a.Workbook.Sheets[t].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var i=0;i")}}if(e["!protect"]){n.push(Le("ProtectContents","True"));if(e["!protect"].objects)n.push(Le("ProtectObjects","True"));if(e["!protect"].scenarios)n.push(Le("ProtectScenarios","True"));if(e["!protect"].selectLockedCells!=null&&!e["!protect"].selectLockedCells)n.push(Le("EnableSelection","NoSelection"));else if(e["!protect"].selectUnlockedCells!=null&&!e["!protect"].selectUnlockedCells)n.push(Le("EnableSelection","UnlockedCells"));[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(r){if(e["!protect"][r[0]])n.push("<"+r[1]+"/>")})}if(n.length==0)return"";return Ue("WorksheetOptions",n.join(""),{xmlns:Ve.x})}function kv(e){return e.map(function(e){var r=Be(e.t||"");var t=Ue("ss:Data",r,{xmlns:"http://www.w3.org/TR/REC-html40"});return Ue("Comment",t,{"ss:Author":e.a})}).join("")}function wv(e,r,t,a,n,i,s){if(!e||e.v==undefined&&e.f==undefined)return"";var l={};if(e.f)l["ss:Formula"]="="+ge(df(e.f,s));if(e.F&&e.F.substr(0,r.length)==r){var o=Yr(e.F.substr(r.length+1));l["ss:ArrayRange"]="RC:R"+(o.r==s.r?"":"["+(o.r-s.r)+"]")+"C"+(o.c==s.c?"":"["+(o.c-s.c)+"]")}if(e.l&&e.l.Target){l["ss:HRef"]=ge(e.l.Target);if(e.l.Tooltip)l["x:HRefScreenTip"]=ge(e.l.Tooltip)}if(t["!merges"]){var f=t["!merges"];for(var c=0;c!=f.length;++c){if(f[c].s.c!=s.c||f[c].s.r!=s.r)continue;if(f[c].e.c>f[c].s.c)l["ss:MergeAcross"]=f[c].e.c-f[c].s.c;if(f[c].e.r>f[c].s.r)l["ss:MergeDown"]=f[c].e.r-f[c].s.r}}var u="",h="";switch(e.t){case"z":return"";case"n":u="Number";h=String(e.v);break;case"b":u="Boolean";h=e.v?"1":"0";break;case"e":u="Error";h=Dt[e.v];break;case"d":u="DateTime";h=new Date(e.v).toISOString();break;case"s":u="String";h=ge(e.v||"");break;}var d=e.v!=null?h:"";var v=''+d+"";if((e.c||[]).length>0)v+=kv(e.c);return Ue("Cell",v,l)}function Sv(e,r){var t='"}function Bv(e,r,t,a){if(!e["!ref"])return"";var n=et(e["!ref"]);var i=e["!merges"]||[],s=0;var l=[];if(e["!cols"])e["!cols"].forEach(function(e,r){Il(e);var t=!!e.width;var a=Au(r,e);var n={"ss:Index":r+1};if(t)n["ss:Width"]=kl(a.width);if(e.hidden)n["ss:Hidden"]="1";l.push(Ue("Column",null,n))});var o=Array.isArray(e);for(var f=n.s.r;f<=n.e.r;++f){var c=[Sv(f,(e["!rows"]||[])[f])];for(var u=n.s.c;u<=n.e.c;++u){var h=false;for(s=0;s!=i.length;++s){if(i[s].s.c>u)continue;if(i[s].s.r>f)continue;if(i[s].e.c");if(c.length>2)l.push(c.join(""))}return l.join("")}function Cv(e,r,t){var a=[];var n=t.SheetNames[e];var i=t.Sheets[n];var s=i?Bv(i,r,e,t):"";if(s.length>0)a.push(""+s+"
    ");a.push(Ev(i,r,e,t));return a.join("")}function _v(e,r){var t=[];t.push(bv(e,r));t.push(mv(e,r));t.push(gv(e,r));for(var a=0;a400)throw new Error("Unsupported Clipboard: "+n.toString(16));a+=n;}n=er(t,a);a+=n.length===0?0:5+n.length;r.Reserved1=n;if((n=vr(t,a))!==1907550708)return r;throw new Error("Unsupported Unicode Extension")}function xv(e,r,t,a){var n=t;var i=[];var s=r.slice(r.l,r.l+n);if(a&&a.enc&&a.enc.insitu)switch(e.n){case"BOF":;case"FilePass":;case"FileLock":;case"InterfaceHdr":;case"RRDInfo":;case"RRDHead":;case"UsrExcl":break;default:if(s.length===0)break;a.enc.insitu(s);}i.push(s);r.l+=n;var l=Nv[hr(r,r.l)];var o=0;while(l!=null&&l.n.slice(0,8)==="Continue"){n=hr(r,r.l+2);o=r.l+4;if(l.n=="ContinueFrt")o+=4;else if(l.n.slice(0,11)=="ContinueFrt")o+=12;i.push(r.slice(o,r.l+4+n));r.l+=4+n;l=Nv[hr(r,r.l)]}var f=b(i);_r(f,0);var c=0;f.lens=[];for(var u=0;u1)return;if(!T)return;if(t.cellStyles&&r.XF&&r.XF.data)D(e,r,t);delete r.ixfe;delete r.XF;v=e;p=$r(e);if(o.s){if(e.ro.e.r)o.e.r=e.r+1;if(e.c+1>o.e.c)o.e.c=e.c+1}if(t.cellFormula&&r.f){for(var a=0;ae.c)continue;if(B[a][0].s.r>e.r)continue;if(B[a][0].e.c=t.sheetRows)T=false;else{if(t.dense){if(!i[e.r])i[e.r]=[];i[e.r][e.c]=r}else i[p]=r}};var F={enc:false,sbcch:0,snames:[],sharedf:S,arrayf:B,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,cellStyles:!!r&&!!r.cellStyles,WTF:!!r&&!!r.wtf};if(r.password)F.password=r.password;var P=[];var N=[];var L=[],M=[];var U=0,H=0;var W=false;var z=[];z.SheetNames=F.snames;z.sharedf=F.sharedf;z.arrayf=F.arrayf;z.names=[];z.XTI=[];var V="";var X=0;var G=0;var j=[];var K=[];var Y;F.codepage=1200;n(1200);while(e.l0)Y.Sheet=re.itab-1;z.names.push(Y);if(!z[0])z[0]=[];z[z.length-1].push(re); +if(re.Name=="_xlnm._FilterDatabase"&&re.itab>0)if(re.rgce&&re.rgce[0]&&re.rgce[0][0]&&re.rgce[0][0][0]=="PtgArea3d")K[re.itab-1]={ref:qr(re.rgce[0][0][1][2])};break;case"ExternCount":F.ExternCount=re;break;case"ExternSheet":if(z.length==0){z[0]=[];z[0].XTI=[]}z[z.length-1].XTI=z[z.length-1].XTI.concat(re);z.XTI=z.XTI.concat(re);break;case"NameCmt":if(F.biff<8)break;if(Y!=null)Y.Comment=re[1];break;case"Protect":i["!protect"]=re;break;case"Password":if(re!==0&&F.WTF)console.error("Password verifier: "+re);break;case"Prot4Rev":;case"Prot4RevPass":break;case"BoundSheet8":{s[re.pos]=re;F.snames.push(re.name)}break;case"EOF":{if(--X)break;if(o.e){if(o.e.r>0&&o.e.c>0){o.e.r--;o.e.c--;i["!ref"]=qr(o);o.e.r++;o.e.c++}if(P.length>0)i["!merges"]=P;if(N.length>0)i["!objects"]=N;if(L.length>0)i["!cols"]=L;if(M.length>0)i["!rows"]=M;A.Sheets.push(y)}if(h==="")d=i;else a[h]=i;i=r.dense?[]:{}}break;case"BOF":{if(F.biff===8)switch(Z){case 9:F.biff=2;break;case 521:F.biff=3;break;case 1033:F.biff=4;break;default:switch(re.BIFFVer){case 1280:F.biff=5;break;case 1536:F.biff=8;break;case 2:F.biff=2;break;case 7:F.biff=2;break;};}if(X++)break;T=true;i=r.dense?[]:{};if(F.biff<5){if(h==="")h="Sheet1";o={s:{r:0,c:0},e:{r:0,c:0}};var ae={pos:e.l-Q,name:h};s[ae.pos]=ae;F.snames.push(h)}else h=(s[$]||{name:""}).name;if(re.dt==32)i["!type"]="chart";P=[];N=[];B=[];F.arrayf=B;L=[];M=[];U=H=0;W=false;y={Hidden:(s[$]||{hs:0}).hs,name:h}}break;case"Number":;case"BIFF2NUM":;case"BIFF2INT":{if(i["!type"]=="chart")if(r.dense?(i[re.r]||[])[re.c]:i[$r({c:re.c,r:re.r})])++re.c;C={ixfe:re.ixfe,XF:x[re.ixfe]||{},v:re.val,t:"n"};if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"BoolErr":{C={ixfe:re.ixfe,XF:x[re.ixfe],v:re.val,t:re.t};if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"RK":{C={ixfe:re.ixfe,XF:x[re.ixfe],v:re.rknum,t:"n"};if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"MulRk":{for(var ne=re.c;ne<=re.C;++ne){var ie=re.rkrec[ne-re.c][0];C={ixfe:ie,XF:x[ie],v:re.rkrec[ne-re.c][1],t:"n"};if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:ne,r:re.r},C,r)}}break;case"Formula":{if(re.val=="String"){f=re;break}C=Av(re.val,re.cell.ixfe,re.tt);C.XF=x[C.ixfe];if(r.cellFormula){var se=re.formula;if(se&&se[0]&&se[0][0]&&se[0][0][0]=="PtgExp"){var le=se[0][0][1][0],oe=se[0][0][1][1];var fe=$r({r:le,c:oe});if(S[fe])C.f=""+su(re.formula,o,re.cell,z,F);else C.F=((r.dense?(i[le]||[])[oe]:i[fe])||{}).F}else C.f=""+su(re.formula,o,re.cell,z,F)}if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O(re.cell,C,r);f=re}break;case"String":{if(f){f.val=re;C=Av(re,f.cell.ixfe,"s");C.XF=x[C.ixfe];if(r.cellFormula){C.f=""+su(f.formula,o,f.cell,z,F)}if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O(f.cell,C,r);f=null}else throw new Error("String record expects Formula")}break;case"Array":{B.push(re);var ce=$r(re[0].s);b=r.dense?(i[re[0].s.r]||[])[re[0].s.c]:i[ce];if(r.cellFormula&&b){if(!f)break;if(!ce||!b)break;b.f=""+su(re[1],o,re[0],z,F);b.F=qr(re[0])}}break;case"ShrFmla":{if(!T)break;if(!r.cellFormula)break;if(p){if(!f)break;S[$r(f.cell)]=re[0];b=r.dense?(i[f.cell.r]||[])[f.cell.c]:i[$r(f.cell)];(b||{}).f=""+su(re[0],o,v,z,F)}}break;case"LabelSst":C=Av(u[re.isst].t,re.ixfe,"s");C.XF=x[C.ixfe];if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r);break;case"Blank":if(r.sheetStubs){C={ixfe:re.ixfe,XF:x[re.ixfe],t:"z"};if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r)}break;case"MulBlank":if(r.sheetStubs){for(var ue=re.c;ue<=re.C;++ue){var he=re.ixfe[ue-re.c];C={ixfe:he,XF:x[he],t:"z"};if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:ue,r:re.r},C,r)}}break;case"RString":;case"Label":;case"BIFF2STR":C=Av(re.val,re.ixfe,"s");C.XF=x[C.ixfe];if(G>0)C.z=j[C.ixfe>>8&31];Iv(C,r,t.opts.Date1904);O({c:re.c,r:re.r},C,r);break;case"Dimensions":{if(X===1)o=re}break;case"SST":{u=re}break;case"Format":{E.load(re[1],re[0])}break;case"BIFF2FORMAT":{j[G++]=re;for(var de=0;de=163)E.load(re,G+163)}break;case"MergeCells":P=P.concat(re);break;case"Obj":N[re.cmo[0]]=F.lastobj=re;break;case"TxO":F.lastobj.TxO=re;break;case"ImData":F.lastobj.ImData=re;break;case"HLink":{for(w=re[0].s.r;w<=re[0].e.r;++w)for(k=re[0].s.c;k<=re[0].e.c;++k){b=r.dense?(i[w]||[])[k]:i[$r({c:k,r:w})];if(b)b.l=re[1]}}break;case"HLinkTooltip":{for(w=re[0].s.r;w<=re[0].e.r;++w)for(k=re[0].s.c;k<=re[0].e.c;++k){b=r.dense?(i[w]||[])[k]:i[$r({c:k,r:w})];if(b)b.l.Tooltip=re[1]}}break;case"Note":{if(F.biff<=5&&F.biff>=2)break;b=r.dense?(i[re[0].r]||[])[re[0].c]:i[$r(re[0])];var ve=N[re[2]];if(!b)break;if(!b.c)b.c=[];m={a:re[1],t:ve.TxO.t};b.c.push(m)}break;default:switch(q.n){case"ClrtClient":break;case"XFExt":Lo(x[re.ixfe],re.ext);break;case"DefColWidth":U=re;break;case"DefaultRowHeight":H=re[1];break;case"ColInfo":{if(!F.cellStyles)break;while(re.e>=re.s){L[re.e--]={width:re.w/256};if(!W){W=true;Tl(re.w/256)}Il(L[re.e+1])}}break;case"Row":{var pe={};if(re.level!=null){M[re.r]=pe;pe.level=re.level}if(re.hidden){M[re.r]=pe;pe.hidden=true}if(re.hpt){M[re.r]=pe;pe.hpt=re.hpt;pe.hpx=Dl(re.hpt)}}break;case"LeftMargin":;case"RightMargin":;case"TopMargin":;case"BottomMargin":if(!i["!margins"])yu(i["!margins"]={});i["!margins"][te.slice(0,-6).toLowerCase()]=re;break;case"Setup":if(!i["!margins"])yu(i["!margins"]={});i["!margins"].header=re.header;i["!margins"].footer=re.footer;break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"GCW":break;case"LHRecord":break;case"DBCell":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXString":break;case"Sync":break;case"Addin":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":;case"FeatHdr11":break;case"Feature11":;case"Feature12":;case"List12":break;case"Country":_=re;break;case"RecalcId":break;case"DxGCol":break;case"Fbi":;case"Fbi2":;case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":I=re;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":;case"DXFN":;case"DXFN12":;case"DXFN12List":;case"DXFN12NoCB":break;case"Dv":;case"DVal":break;case"BRAI":;case"Series":;case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"OleDbConn":break;case"ExtString":break;case"IFmtRecord":break;case"CondFmt":;case"CF":;case"CF12":;case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":;case"Mms":;case"InterfaceEnd":;case"DSF":break;case"BuiltInFnGroupCount":break;case"Window1":;case"Window2":;case"HideObj":;case"GridSet":;case"Guts":;case"UserBView":;case"UserSViewBegin":;case"UserSViewEnd":;case"Pane":break;default:switch(q.n){case"Dat":;case"Begin":;case"End":;case"StartBlock":;case"EndBlock":;case"Frame":;case"Area":;case"Axis":;case"AxisLine":;case"Tick":break;case"AxesUsed":;case"CrtLayout12":;case"CrtLayout12A":;case"CrtLink":;case"CrtLine":;case"CrtMlFrt":;case"CrtMlFrtContinue":break;case"LineFormat":;case"AreaFormat":;case"Chart":;case"Chart3d":;case"Chart3DBarShape":;case"ChartFormat":;case"ChartFrtInfo":break;case"PlotArea":;case"PlotGrowth":break;case"SeriesList":;case"SerParent":;case"SerAuxTrend":break;case"DataFormat":;case"SerToCrt":;case"FontX":break;case"CatSerRange":;case"AxcExt":;case"SerFmt":break;case"ShtProps":break;case"DefaultText":;case"Text":;case"CatLab":break;case"DataLabExtContents":break;case"Legend":;case"LegendException":break;case"Pie":;case"Scatter":break;case"PieFormat":;case"MarkerFormat":break;case"StartObject":;case"EndObject":break;case"AlRuns":;case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":;case"YMult":break;case"Line":;case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":;case"Qsif":;case"Qsir":;case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":;case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":;case"MsoDrawingGroup":;case"MsoDrawingSelection":break;case"WebPub":;case"AutoWebPub":break;case"HeaderFooter":;case"HFPicture":;case"PLV":;case"HorizontalPageBreaks":;case"VerticalPageBreaks":break;case"Backup":;case"CompressPictures":;case"Compat12":break;case"Continue":;case"ContinueFrt12":break;case"FrtFontList":;case"FrtWrapper":break;default:switch(q.n){case"TabIdConf":;case"Radar":;case"RadarArea":;case"DropBar":;case"Intl":;case"CoordList":;case"SerAuxErrBar":break;case"BIFF2FONTCLR":;case"BIFF2FMTCNT":;case"BIFF2FONTXTRA":break;case"BIFF2XF":;case"BIFF3XF":;case"BIFF4XF":break;case"BIFF4FMTCNT":;case"BIFF2ROW":;case"BIFF2WINDOW2":break;case"SCENARIO":;case"DConBin":;case"PicF":;case"DataLabExt":;case"Lel":;case"BopPop":;case"BopPopCustom":;case"RealTimeData":;case"Name":break;case"LHNGraph":;case"FnGroupName":;case"AddMenu":;case"LPr":break;case"ListObj":;case"ListField":break;case"RRSort":break;case"BigName":break;case"ToolbarHdr":;case"ToolbarEnd":break;case"DDEObjName":break;case"FRTArchId$":break;default:if(r.WTF)throw"Unrecognized Record "+q.n;};};};}}else e.l+=Q}var be=Object.keys(s).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return s[e].name});var me=be.slice();t.Directory=be;t.SheetNames=be;if(!r.bookSheets)t.Sheets=a;if(t.Sheets)K.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Preamble=d;t.Strings=u;t.SSF=E.get_table();if(F.enc)t.Encryption=F.enc;t.Metadata={};if(_!==undefined)t.Metadata.Country=_;if(z.names.length>0)A.Names=z.names;t.Workbook=A;return t}function Rv(e,r,t){var a=T.find(e,"!DocumentSummaryInformation");if(a)try{var n=on(a,Qt);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF==2)throw s}var l=T.find(e,"!SummaryInformation");if(l)try{var o=on(l,Jt);for(var f in o)if(r[f]==null)r[f]=o[f]}catch(s){if(t.WTF==2)throw s}}function Dv(e,r){if(!r)r={};vp(r);a();var t,n,i;if(e.FullPaths){t=T.find(e,"!CompObj");n=T.find(e,"!SummaryInformation");i=T.find(e,"/Workbook")||T.find(e,"/Book")}else{switch(r.type){case"base64":e=p(h.decode(e));break;case"binary":e=p(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}_r(e,0);i={content:e}}var s,l,o;var f;if(t)s=Tv(t);if(r.bookProps&&!r.bookSheets)o={};else{var c=d?"buffer":"array";if(i&&i.content)o=yv(i.content,r);else if((f=T.find(e,"PerfectOffice_MAIN"))&&f.content)o=Bs.to_workbook(f.content,(r.type=c,r));else if((f=T.find(e,"NativeContent_MAIN"))&&f.content)o=Bs.to_workbook(f.content,(r.type=c,r));else throw new Error("Cannot find Workbook stream");if(r.bookVBA&&T.find(e,"/_VBA_PROJECT_CUR/VBA/dir"))o.vbaraw=sf(e)}var u={};if(e.FullPaths)Rv(e,u,r);o.Props=o.Custprops=u;if(r.bookFiles)o.cfb=e;return o}function Ov(e,r){var t=r||{};var a=T.utils.cfb_new({root:"R"});var n="/Workbook";switch(t.bookType||"xls"){case"xls":t.bookType="biff8";case"biff8":n="/Workbook";t.biff=8;break;case"biff5":n="/Book";t.biff=5;break;default:throw new Error("invalid type "+t.bookType+" for XLS CFB");}T.utils.cfb_add(a,n,$v(e,t));return a}var Fv={0:{n:"BrtRowHdr",f:ah},1:{n:"BrtCellBlank",f:uh},2:{n:"BrtCellRk",f:kh},3:{n:"BrtCellError",f:ph},4:{n:"BrtCellBool",f:dh},5:{n:"BrtCellReal",f:gh},6:{n:"BrtCellSt",f:Sh},7:{n:"BrtCellIsst",f:bh},8:{n:"BrtFmlaString",f:xh},9:{n:"BrtFmlaNum",f:Th},10:{n:"BrtFmlaBool",f:Ch},11:{n:"BrtFmlaError",f:_h},16:{n:"BrtFRTArchID$",f:xd},19:{n:"BrtSSTItem",f:ct},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:Id},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:Yl},44:{n:"BrtFmt",f:jl},45:{n:"BrtFill",f:Jl},46:{n:"BrtBorder",f:ao},47:{n:"BrtXF",f:eo},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:rs},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:Ho},64:{n:"BrtDVal"},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Tr,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView"},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:fh},148:{n:"BrtWsDim",f:sh,p:16},151:{n:"BrtPane"},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:_d},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:Bd},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:Ns},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:It},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:Ih},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:St},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:Pi},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:Oh},427:{n:"BrtShrFmla",f:Fh},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:Lh},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:oh},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:Rh},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:St},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:rf},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:qo},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:ht},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp"},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14"},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSxview14"},1063:{n:"BrtEndSxview14"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{ +n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},65535:{n:""}};var Pv=A(Fv,"n");var Nv={3:{n:"BIFF2NUM",f:us},4:{n:"BIFF2STR",f:cs},6:{n:"Formula",f:hu},9:{n:"BOF",f:Yn},10:{n:"EOF",f:fn},12:{n:"CalcCount",f:vn},13:{n:"CalcMode",f:vn},14:{n:"CalcPrecision",f:hn},15:{n:"CalcRefMode",f:hn},16:{n:"CalcDelta",f:yt},17:{n:"CalcIter",f:hn},18:{n:"Protect",f:hn},19:{n:"Password",f:vn},20:{n:"Header",f:yi},21:{n:"Footer",f:yi},23:{n:"ExternSheet",f:Pi},24:{n:"Lbl",f:Fi},25:{n:"WinProtect",f:hn},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:zi},29:{n:"Selection"},34:{n:"Date1904",f:hn},35:{n:"ExternName",f:Di},38:{n:"LeftMargin",f:yt},39:{n:"RightMargin",f:yt},40:{n:"TopMargin",f:yt},41:{n:"BottomMargin",f:yt},42:{n:"PrintRowCol",f:hn},43:{n:"PrintGrid",f:hn},47:{n:"FilePass",f:fl},49:{n:"Font",f:fi},51:{n:"PrintSize",f:vn},60:{n:"Continue"},61:{n:"Window1",f:li},64:{n:"Backup",f:hn},65:{n:"Pane"},66:{n:"CodePage",f:vn},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:vn},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:Qn},93:{n:"Obj",f:Xi},94:{n:"Uncalced"},95:{n:"CalcSaveRecalc",f:hn},96:{n:"Template"},97:{n:"Intl"},99:{n:"ObjProtect",f:hn},125:{n:"ColInfo",f:rs},128:{n:"Guts",f:Ci},129:{n:"WsBool"},130:{n:"GridSet",f:vn},131:{n:"HCenter",f:hn},132:{n:"VCenter",f:hn},133:{n:"BoundSheet8",f:qn},134:{n:"WriteProtect"},140:{n:"Country",f:Zi},141:{n:"HideObj",f:vn},144:{n:"Sort"},146:{n:"Palette",f:qi},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:vn},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:ss},161:{n:"Setup",f:ts},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:gi},190:{n:"MulBlank",f:Ei},193:{n:"Mms",f:fn},197:{n:"SXDI"},198:{n:"SXDB"},199:{n:"SXFDB"},200:{n:"SXDBB"},201:{n:"SXNum"},202:{n:"SxBool",f:hn},203:{n:"SxErr"},204:{n:"SXInt"},205:{n:"SXString"},206:{n:"SXDtr"},207:{n:"SxNil"},208:{n:"SXTbl"},209:{n:"SXTBRGIITM"},210:{n:"SxTbpg"},211:{n:"ObProj"},213:{n:"SXStreamID"},215:{n:"DBCell"},216:{n:"SXRng"},217:{n:"SxIsxoper"},218:{n:"BookBool",f:vn},220:{n:"DbOrParamQry"},221:{n:"ScenarioProtect",f:hn},222:{n:"OleObjectSize"},224:{n:"XF",f:Bi},225:{n:"InterfaceHdr",f:Zn},226:{n:"InterfaceEnd",f:fn},227:{n:"SXVS"},229:{n:"MergeCells",f:Vi},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:ri},253:{n:"LabelSst",f:ci},255:{n:"ExtSST",f:ti},256:{n:"SXVDEx"},259:{n:"SXFormula"},290:{n:"SXDBEx"},311:{n:"RRDInsDel"},312:{n:"RRDHead"},315:{n:"RRDChgCell"},317:{n:"RRTabId",f:bn},318:{n:"RRDRenSheet"},319:{n:"RRSort"},320:{n:"RRDMove"},330:{n:"RRFormat"},331:{n:"RRAutoFmt"},333:{n:"RRInsertSh"},334:{n:"RRDMoveBegin"},335:{n:"RRDMoveEnd"},336:{n:"RRDInsDelBegin"},337:{n:"RRDInsDelEnd"},338:{n:"RRDConflict"},339:{n:"RRDDefName"},340:{n:"RRDRstEtxp"},351:{n:"LRng"},352:{n:"UsesELFs",f:hn},353:{n:"DSF",f:fn},401:{n:"CUsr"},402:{n:"CbUsr"},403:{n:"UsrInfo"},404:{n:"UsrExcl"},405:{n:"FileLock"},406:{n:"RRDInfo"},407:{n:"BCUsrs"},408:{n:"UsrChk"},425:{n:"UserBView"},426:{n:"UserSViewBegin"},427:{n:"UserSViewEnd"},428:{n:"RRDUserView"},429:{n:"Qsi"},430:{n:"SupBook",f:Ri},431:{n:"Prot4Rev",f:hn},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:Ki},439:{n:"RefreshAll",f:hn},440:{n:"HLink",f:Yi},441:{n:"Lel"},442:{n:"CodeName",f:Sn},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:vn},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:fn},449:{n:"RecalcId",f:ii,r:2},450:{n:"EntExU2",f:fn},512:{n:"Dimensions",f:pi},513:{n:"Blank",f:is},515:{n:"Number",f:Ii},516:{n:"Label",f:ui},517:{n:"BoolErr",f:Ti},518:{n:"Formula",f:hu},519:{n:"String",f:ls},520:{n:"Row",f:ai},523:{n:"Index"},545:{n:"Array",f:Ui},549:{n:"DefaultRowHeight",f:si},566:{n:"Table"},574:{n:"Window2",f:Tr},638:{n:"RK",f:mi},659:{n:"Style",f:Tr},1030:{n:"Formula",f:hu},1048:{n:"BigName"},1054:{n:"Format",f:di},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:Mi},2048:{n:"HLinkTooltip",f:$i},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:Yn},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:fn},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:es,r:12},2173:{n:"XFExt",f:No,r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:hn,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt",f:Tr},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:Li,r:12},2197:{n:"SortData"},2198:{n:"Theme",f:yo,r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:Hi,r:12},2203:{n:"CompressPictures",f:fn},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:ni},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:vn},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:as},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:Ji},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:pi},2:{n:"BIFF2INT",f:ds},5:{n:"BoolErr",f:Ti},7:{n:"String",f:ps},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:vn},30:{n:"BIFF2FORMAT",f:vi},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:Ui},37:{n:"DefaultRowHeight",f:si},50:{n:"BIFF2FONTXTRA",f:bs},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:os},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:ms},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:Yn},536:{n:"Lbl",f:Fi},547:{n:"ExternName",f:Di},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:Yn},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}};var Lv=A(Nv,"n");function Mv(e,r,t,a){var n=+r||+Lv[r];if(isNaN(n))return;var i=a||(t||[]).length||0;var s=e.next(4+i);s._W(2,n);s._W(2,i);if(i>0&&cr(t))e.push(t)}function Uv(e,r,t){if(!e)e=Ar(7);e._W(2,r);e._W(2,t);e._W(1,0);e._W(1,0);e._W(1,0);return e}function Hv(e,r,t,a){var n=Ar(9);Uv(n,e,r);if(a=="e"){n._W(1,t);n._W(1,1)}else{n._W(1,t?1:0);n._W(1,0)}return n}function Wv(e,r,t){var a=Ar(8+2*t.length);Uv(a,e,r);a._W(1,t.length);a._W(t.length,t,"sbcs");return a.l=0&&i<65536)Mv(e,2,vs(t,a,i));else Mv(e,3,hs(t,a,i));return;case"b":;case"e":Mv(e,5,Hv(t,a,r.v,r.t));return;case"s":;case"str":Mv(e,4,Wv(t,a,r.v));return;}Mv(e,1,Uv(null,t,a))}function Vv(e,r,t,a,n){var i=Array.isArray(r);var s=et(r["!ref"]||"A1"),l,o="",f=[];for(var c=s.s.r;c<=s.e.r;++c){o=Hr(c);for(var u=s.s.c;u<=s.e.c;++u){if(c===s.s.r)f[u]=Xr(u);l=f[u]+o;var h=i?(r[c]||[])[u]:r[l];if(!h)continue;zv(e,h,c,u,a)}}}function Xv(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=Rr();var n=0;for(var i=0;i");var i=e.match(/<\/table/i);var s=n.index,l=i&&i.index||e.length;var o=Y(e.slice(s,l),/(:?]*>)/i,"");var f=-1,u=0,h=0,d=0;var v={s:{r:1e7,c:1e7},e:{r:0,c:0}};var p=[],b=0;for(s=0;s/i);for(l=0;l"))>-1)w=w.slice(S+1);while(w.indexOf(">")>-1)w=w.slice(0,w.lastIndexOf("<"));var B=ue(k.slice(0,k.indexOf(">")));d=B.colspan?+B.colspan:1;if((h=+B.rowspan)>0||d>1)p.push({s:{r:f,c:u},e:{r:f+(h||1)-1,c:u+d-1}});if(!w.length){u+=d;continue}w=Re(pe(w));if(v.s.r>f)v.s.r=f;if(v.e.ru)v.s.c=u;if(v.e.c";for(var l=r.s.c;l<=r.e.c;++l){var o=0,f=0;for(var c=0;ct||n[c].s.c>l)continue;if(n[c].e.r1)v.rowspan=o;if(f>1)v.colspan=f;if(a.editable)v.contenteditable="true";v.id="sjs-"+u;i.push(Ue("td",d,v))}var p="";return p+i.join("")+""}function a(e,r,t){var a=[];return a.join("")+""}var n='SheetJS Table Export';var i="";function s(e,r,s){var l=r||{};var o=l.header!=null?l.header:n;var f=l.footer!=null?l.footer:i;var c=[o];var u=Jr(e["!ref"]);l.dense=Array.isArray(e);c.push(a(e,u,l));for(var h=u.s.r;h<=u.e.r;++h)c.push(t(e,u,h,l));c.push("
    "+f);return c.join("")}return{to_workbook:r,to_sheet:e,_row:t,BEGIN:n,END:i,_preamble:a,from_sheet:s}}();function Qv(e,r){var t=r||{};if(c!=null)t.dense=c;var a=t.dense?[]:{};var n=e.getElementsByTagName("tr");var i={s:{r:0,c:0},e:{r:n.length-1,c:0}};var s=[],l=0;var o=0,f=0,u=0,h=0,d=0;for(;o0||d>1)s.push({s:{r:o,c:u},e:{r:o+(h||1)-1,c:u+d-1}});var k={t:"s",v:m};if(m!=null){if(m.length==0)k.t="z";else if(t.raw){}else if(m.trim().length==0)k.t="s";else if(m==="TRUE")k={t:"b",v:true};else if(m==="FALSE")k={t:"b",v:false};else if(!isNaN(G(m)))k={t:"n",v:G(m)};else if(!isNaN(j(m).getDate())){k={t:"d",v:H(m)};if(!t.cellDates)k={t:"n",v:P(k.v)};k.z=t.dateNF||E._table[14]}}if(t.dense){if(!a[o])a[o]=[];a[o][u]=k}else a[$r({c:u,r:o})]=k;if(i.e.c/g," ").replace(//g,function(e,r){return Array(parseInt(r,10)+1).join(" ")}).replace(/]*\/>/g,"\t").replace(//g,"\n").replace(/<[^>]*>/g,""))};var r={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']};return function t(a,n){var i=n||{};if(c!=null&&i.dense==null)i.dense=c;var s=uv(a);var l=[],o;var f;var u={name:""},h="",d=0;var v;var p;var b={},m=[];var g=i.dense?[]:{};var E,k;var w={value:""};var S="",B=0,C;var _=-1,T=-1,x={s:{r:1e6,c:1e7},e:{r:0,c:0}};var I=0;var A={};var y=[],R={},D=0,O=0;var F=[],N=1,M=1;var U=[];var W=[],z={};var X="",G=0;var j=false;var K=0;hv.lastIndex=0;s=s.replace(//gm,"").replace(//gm,"");while(E=hv.exec(s))switch(E[3]=E[3].replace(/_.*$/,"")){case"table":;case"工作表":if(E[1]==="/"){if(x.e.c>=x.s.c&&x.e.r>=x.s.r)g["!ref"]=qr(x);if(y.length)g["!merges"]=y;if(F.length)g["!rows"]=F;v.name=_e(v["名称"]||v.name);m.push(v.name);b[v.name]=g}else if(E[0].charAt(E[0].length-2)!=="/"){v=ue(E[0],false);_=T=-1;x.s.r=x.s.c=1e7;x.e.r=x.e.c=0;g=i.dense?[]:{};y=[];F=[]}break;case"table-row-group":if(E[1]==="/")--I;else++I;break;case"table-row":;case"行":if(E[1]==="/"){_+=N;N=1;break}p=ue(E[0],false);if(p["行号"])_=p["行号"]-1;else if(_==-1)_=0;N=+p["number-rows-repeated"]||1;if(N<10)for(K=0;K0)F[_+K]={level:I};T=-1;break;case"covered-table-cell":++T;if(i.sheetStubs){if(i.dense){if(!g[_])g[_]=[];g[_][T]={t:"z"}}else g[$r({r:_,c:T})]={t:"z"}}break;case"table-cell":;case"数据":if(E[0].charAt(E[0].length-2)==="/"){++T;w=ue(E[0],false);M=parseInt(w["number-columns-repeated"]||"1",10);k={t:"z",v:null};if(w.formula&&i.cellFormula!=false)k.f=Bu(pe(w.formula));if((w["数据类型"]||w["value-type"])=="string"){k.t="s";k.v=pe(w["string-value"]||"");if(i.dense){if(!g[_])g[_]=[];g[_][T]=k}else{g[$r({r:_,c:T})]=k}}T+=M-1}else if(E[1]!=="/"){++T;M=1;if(T>x.e.c)x.e.c=T;if(_>x.e.r)x.e.r=_;if(T=U[K][0].s.r&&_<=U[K][0].e.r)if(T>=U[K][0].s.c&&T<=U[K][0].e.c)k.F=U[K][1]}if(w["number-columns-spanned"]||w["number-rows-spanned"]){D=parseInt(w["number-rows-spanned"],10)||0;O=parseInt(w["number-columns-spanned"],10)||0;R={s:{r:_,c:T},e:{r:_+D-1,c:T+O-1}};y.push(R)}if(w["number-columns-repeated"])M=parseInt(w["number-columns-repeated"],10);switch(k.t){case"boolean":k.t="b";k.v=Ce(w["boolean-value"]);break;case"float":k.t="n";k.v=parseFloat(w.value);break;case"percentage":k.t="n";k.v=parseFloat(w.value);break;case"currency":k.t="n";k.v=parseFloat(w.value);break;case"date":k.t="d";k.v=H(w["date-value"]);if(!i.cellDates){k.t="n";k.v=P(k.v)}k.z="m/d/yy";break;case"time":k.t="n";k.v=L(w["time-value"])/86400;break;case"number":k.t="n";k.v=parseFloat(w["数据数值"]);break;default:if(k.t==="string"||k.t==="text"||!k.t){k.t="s";if(w["string-value"]!=null)S=pe(w["string-value"])}else throw new Error("Unsupported value type "+k.t);}}else{j=false;if(k.t==="s"){k.v=S||"";j=B==0}if(W.length>0){k.c=W;W=[]}if(S&&i.cellText!==false)k.w=S;if(!j||i.sheetStubs){if(!(i.sheetRows&&i.sheetRows<_)){for(var Y=0;Y0)g[_+Y][T+M]=V(k)}else{g[$r({r:_+Y,c:T})]=k;while(--M>0)g[$r({r:_+Y,c:T+M})]=V(k)}if(x.e.c<=T)x.e.c=T}}}M=parseInt(w["number-columns-repeated"]||"1",10);T+=M-1;M=0;k={};S=""}break;case"document":;case"document-content":;case"电子表格文档":;case"spreadsheet":;case"主体":;case"scripts":;case"styles":;case"font-face-decls":if(E[1]==="/"){if((o=l.pop())[0]!==E[3])throw"Bad state: "+o}else if(E[0].charAt(E[0].length-2)!=="/")l.push([E[3],true]);break;case"annotation":if(E[1]==="/"){if((o=l.pop())[0]!==E[3])throw"Bad state: "+o;z.t=S;z.a=X;W.push(z)}else if(E[0].charAt(E[0].length-2)!=="/"){l.push([E[3],false])}X="";G=0;S="";B=0;break;case"creator":if(E[1]==="/"){X=s.slice(G,E.index)}else G=E.index+E[0].length;break;case"meta":;case"元数据":;case"settings":;case"config-item-set":;case"config-item-map-indexed":;case"config-item-map-entry":;case"config-item-map-named":;case"shapes":;case"frame":;case"text-box":;case"image":;case"data-pilot-tables":;case"list-style":;case"form":;case"dde-links":;case"event-listeners":;case"chart":if(E[1]==="/"){if((o=l.pop())[0]!==E[3])throw"Bad state: "+o}else if(E[0].charAt(E[0].length-2)!=="/")l.push([E[3],false]);S="";B=0;break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":;case"percentage-style":;case"date-style":;case"time-style":if(E[1]==="/"){A[u.name]=h;if((o=l.pop())[0]!==E[3])throw"Bad state: "+o}else if(E[0].charAt(E[0].length-2)!=="/"){h="";u=ue(E[0],false);l.push([E[3],true])}break;case"script":break;case"libraries":break;case"automatic-styles":break;case"master-styles":break;case"default-style":;case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(l[l.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"fraction":break;case"day":;case"month":;case"year":;case"era":;case"day-of-week":;case"week-of-year":;case"quarter":;case"hours":;case"minutes":;case"seconds":;case"am-pm":switch(l[l.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(E[0].slice(-2)==="/>")break;else if(E[1]==="/")switch(l[l.length-1][0]){case"number-style":;case"date-style":;case"time-style":h+=s.slice(d,E.index);break;}else d=E.index+E[0].length;break;case"text-content":break;case"text-properties":break;case"embedded-text":break;case"body":;case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-rows":break;case"table-column-group":break;case"table-header-columns":break;case"table-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"named-range":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":;case"文本串":if(E[1]==="/"&&(!w||!w["string-value"]))S=(S.length>0?S+"\n":"")+e(s.slice(B,E.index),C);else{C=ue(E[0],false);B=E.index+E[0].length}break;case"s":break;case"database-range":if(E[1]==="/")break;try{var $=_u(ue(E[0])["target-range-address"]);b[$[0]]["!autofilter"]={ref:$[1]}}catch(Z){}break;case"date":break;case"object":break;case"title":;case"标题":break;case"desc":break;case"binary-data":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":;case"sender-lastname":;case"sender-initials":;case"sender-title":;case"sender-position":;case"sender-email":;case"sender-phone-private":;case"sender-fax":;case"sender-company":;case"sender-phone-work":;case"sender-street":;case"sender-city":;case"sender-postal-code":;case"sender-country":;case"sender-state-or-province":;case"author-name":;case"author-initials":;case"chapter":;case"file-name":;case"template-name":;case"sheet-name":break;case"event-listener":break;case"initial-creator":;case"creation-date":;case"print-date":;case"generator":;case"document-statistic":;case"user-defined":;case"editing-duration":;case"editing-cycles":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":;case"source-cell-range":;case"source-service":;case"data-pilot-field":;case"data-pilot-level":;case"data-pilot-subtotals":;case"data-pilot-subtotal":;case"data-pilot-members":;case"data-pilot-member":;case"data-pilot-display-info":;case"data-pilot-sort-info":;case"data-pilot-layout-info":;case"data-pilot-field-reference":;case"data-pilot-groups":;case"data-pilot-group":;case"data-pilot-group-member":break;case"rect":break;case"dde-connection-decls":;case"dde-connection-decl":;case"dde-link":;case"dde-source":break;case"properties":break;case"property":break;case"a":break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:switch(E[2]){case"dc:":;case"calcext:":;case"loext:":;case"ooo:":;case"chartooo:":;case"draw:":;case"style:":;case"chart:":;case"form:":;case"uof:":;case"表:":;case"字:":break;default:if(i.WTF)throw new Error(E);};}var Q={Sheets:b,SheetNames:m};if(i.bookSheets)delete Q.Sheets;return Q}}();function ep(e,r){r=r||{};var t=!!J(e,"objectdata");if(t)var a=Ea(ee(e,"META-INF/manifest.xml"),r);var n=re(e,"content.xml");if(!n)throw new Error("Missing content.xml in "+(t?"ODS":"UOF")+" file");var i=qv(t?n:_e(n),r);if(J(e,"meta.xml"))i.Props=xa(ee(e,"meta.xml"));return i}function rp(e,r){return qv(e,r)}var tp=function(){var e="";return function r(t,a){return se+e}}();var ap=function(){var e=function(e){return ge(e).replace(/ +/g,function(e){return''}).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"")};var r=" \n";var t=" \n";var a=function(a,n,i,s){var l=[];l.push(' \n');var o=0,f=0,c=Jr(a["!ref"]);var u=a["!merges"]||[],h=0;var d=Array.isArray(a);for(o=0;o\n");for(;o<=c.e.r;++o){l.push(" \n");for(f=0;ff)continue;if(u[h].s.r>o)continue;if(u[h].e.c\n")}l.push(" \n");return l.join("")};var n=function(e){e.push(" \n");e.push(' \n');e.push(' \n');e.push(" /\n");e.push(' \n');e.push(" /\n");e.push(" \n");e.push(" \n"); +e.push(' \n');e.push(" \n")};return function i(e,r){var t=[se];var i=Me({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Me({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods")t.push("\n");else t.push("\n");n(t);t.push(" \n");t.push(" \n");for(var l=0;l!=e.SheetNames.length;++l)t.push(a(e.Sheets[e.SheetNames[l]],e,l,r));t.push(" \n");t.push(" \n");if(r.bookType=="fods")t.push("");else t.push("");return t.join("")}}();function np(e,r){if(r.bookType=="fods")return ap(e,r);var t=new ae;var a="";var n=[];var i=[];a="mimetype";t.file(a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";t.file(a,ap(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";t.file(a,tp(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="meta.xml";t.file(a,Ca(e,r));n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="manifest.rdf";t.file(a,Ba(i,r));n.push([a,"application/rdf+xml"]);a="META-INF/manifest.xml";t.file(a,ka(n,r));return t}function ip(e){return function r(t,a){var n=0;for(var i=0;i-1)return"sheet";if(ha.CS&&e==ha.CS)return"chart";if(ha.DS&&e==ha.DS)return"dialog";if(ha.MS&&e==ha.MS)return"macro";return e&&e.length?e:"sheet"}function mp(e,r){if(!e)return 0;try{e=r.map(function a(r){if(!r.id)r.id=r.strRelID;return[r.name,e["!id"][r.id].Target,bp(e["!id"][r.id].Type)]})}catch(t){return null}return!e||e.length===0?null:e}function gp(e,r,t,a,n,i,s,l,o,f,c){try{n[a]=va(re(e,t,true),r);var u=ee(e,r);switch(s){case"sheet":i[a]=Md(u,r,l,n[a],o,f,c);break;case"chart":var h=Ud(u,r,l,n[a],o,f,c);i[a]=h;if(!h||!h["!chart"])break;var d=ie(h["!chart"].Target,r);var v=da(d);var p=Go(re(e,d,true),va(re(e,v,true),d));var b=ie(p,d);var m=da(b);h=ed(re(e,b,true),b,l,va(re(e,m,true),b),o,h);break;case"macro":i[a]=Hd(u,r,l,n[a],o,f,c);break;case"dialog":i[a]=Wd(u,r,l,n[a],o,f,c);break;}}catch(g){if(l.WTF)throw g}}var Ep=function mb(e){return e.slice(-1)!="/"};function kp(e){return e.charAt(0)=="/"?e.slice(1):e}function wp(e,r){k(E);r=r||{};vp(r);a();if(J(e,"META-INF/manifest.xml"))return ep(e,r);if(J(e,"objectdata.xml"))return ep(e,r);if(J(e,"Index/Document.iwa"))throw new Error("Unsupported NUMBERS file");var t=I(e.files).filter(Ep).sort();var i=oa(re(e,"[Content_Types].xml"),r);var s=false;var l,o;if(i.workbooks.length===0){o="xl/workbook.xml";if(ee(e,o,true))i.workbooks.push(o)}if(i.workbooks.length===0){o="xl/workbook.bin";if(!ee(e,o,true))throw new Error("Could not find workbook");i.workbooks.push(o);s=true}if(i.workbooks[0].slice(-3)=="bin")s=true;if(s)n(1200);var f={};var c={};if(!r.bookSheets&&!r.bookProps){Tu=[];if(i.sst)Tu=Xd(ee(e,kp(i.sst)),i.sst,r);if(r.cellStyles&&i.themes.length)f=Vd(re(e,i.themes[0].replace(/^\//,""),true)||"",i.themes[0],r);if(i.style)c=zd(ee(e,kp(i.style)),i.style,f,r)}var u=i.links.map(function(t){return Kd(ee(e,kp(t)),t,r)});var h=Ld(ee(e,kp(i.workbooks[0])),i.workbooks[0],r);var d={},v="";if(i.coreprops.length){v=ee(e,kp(i.coreprops[0]),true);if(v)d=xa(v);if(i.extprops.length!==0){v=ee(e,kp(i.extprops[0]),true);if(v)Da(v,d,r)}}var p={};if(!r.bookSheets||r.bookProps){if(i.custprops.length!==0){v=re(e,kp(i.custprops[0]),true);if(v)p=Na(v,r)}}var b={};if(r.bookSheets||r.bookProps){if(h.Sheets)l=h.Sheets.map(function D(e){return e.name});else if(d.Worksheets&&d.SheetNames.length>0)l=d.SheetNames;if(r.bookProps){b.Props=d;b.Custprops=p}if(r.bookSheets&&typeof l!=="undefined")b.SheetNames=l;if(r.bookSheets?b.SheetNames:r.bookProps)return b}l={};var m={};if(r.bookDeps&&i.calcchain)m=jd(ee(e,kp(i.calcchain)),i.calcchain,r);var g=0;var w={};var S,B;{var C=h.Sheets;d.Worksheets=C.length;d.SheetNames=[];for(var _=0;_!=C.length;++_){d.SheetNames[_]=C[_].name}}var T=s?"bin":"xml";var x="xl/_rels/workbook."+T+".rels";var A=va(re(e,x,true),x);if(A)A=mp(A,h.Sheets);var y=ee(e,"xl/worksheets/sheet.xml",true)?1:0;for(g=0;g!=d.Worksheets;++g){var R="sheet";if(A&&A[g]){S="xl/"+A[g][1].replace(/[\/]?xl\//,"");R=A[g][2]}else{S="xl/worksheets/sheet"+(g+1-y)+"."+T;S=S.replace(/sheet0\./,"sheet.")}B=S.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");gp(e,S,B,d.SheetNames[g],w,l,R,r,h,f,c)}if(i.comments)Yo(e,i.comments,l,w,r);b={Directory:i,Workbook:h,Props:d,Custprops:p,Deps:m,Sheets:l,SheetNames:d.SheetNames,Strings:Tu,Styles:c,Themes:f,SSF:E.get_table()};if(r.bookFiles){b.keys=t;b.files=e.files}if(r.bookVBA){if(i.vba.length>0)b.vbaraw=ee(e,kp(i.vba[0]),true);else if(i.defaults&&i.defaults.bin==="application/vnd.ms-office.vbaProject")b.vbaraw=ee(e,"xl/vbaProject.bin",true)}return b}function Sp(e,r){var t="Version";var a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var n=Vs(a.content);t="DataSpaceMap";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var i=Gs(a.content);if(i.length!==1||i[0].comps.length!==1||i[0].comps[0].t!==0||i[0].name!=="StrongEncryptionDataSpace"||i[0].comps[0].v!=="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+t);t="StrongEncryptionDataSpace";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var s=js(a.content);if(s.length!=1||s[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+t);t="!Primary";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var l=Ys(a.content);t="EncryptionInfo";a=T.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var o=Qs(a.content);if(o[0]==4)throw new Error("File is password-protected: ECMA-376 Agile");throw new Error("File is password-protected")}function Bp(e,r){jo=1024;if(r.bookType=="ods")return np(e,r);if(e&&!e.SSF){e.SSF=E.get_table()}if(e&&e.SSF){k(E);E.load_table(e.SSF);r.revssf=R(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;var t=r.bookType=="xlsb"?"bin":"xml";var a=r.bookType=="xlsb"||r.bookType=="xlsm";var n=la();pp(r=r||{});var i=new ae;var s="",l=0;r.cellXfs=[];Ru(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";i.file(s,ya(e.Props,r));n.coreprops.push(s);ma(r.rels,2,s,ha.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else e.Props.SheetNames=e.SheetNames.map(function(r,t){return[(e.Workbook.Sheets[t]||{}).Hidden!=2,r]}).filter(function(e){return e[0]}).map(function(e){return e[1]});e.Props.Worksheets=e.Props.SheetNames.length;i.file(s,Fa(e.Props,r));n.extprops.push(s);ma(r.rels,3,s,ha.EXT_PROPS);if(e.Custprops!==e.Props&&I(e.Custprops||{}).length>0){s="docProps/custom.xml";i.file(s,Ma(e.Custprops,r));n.custprops.push(s);ma(r.rels,4,s,ha.CUST_PROPS)}s="xl/workbook."+t;i.file(s,Yd(e,s,r));n.workbooks.push(s);ma(r.rels,1,s,ha.WB);for(l=1;l<=e.SheetNames.length;++l){var o={"!id":{}};var f=e.Sheets[e.SheetNames[l-1]];var c=(f||{})["!type"]||"sheet";switch(c){case"chart":;default:s="xl/worksheets/sheet"+l+"."+t;i.file(s,$d(l-1,s,r,e,o));n.sheets.push(s);ma(r.wbrels,-1,"worksheets/sheet"+l+"."+t,ha.WS[0]);}if(f){var u=f["!comments"];if(u&&u.length>0){var h="xl/comments"+l+"."+t;i.file(h,qd(u,h,r));n.comments.push(h);ma(o,-1,"../comments"+l+"."+t,ha.CMNT)}if(f["!legacy"]){i.file("xl/drawings/vmlDrawing"+l+".vml",Ko(l,f["!comments"]))}delete f["!comments"];delete f["!legacy"]}if(o["!id"].rId1)i.file(da(s),ba(o))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;i.file(s,Jd(r.Strings,s,r));n.strs.push(s);ma(r.wbrels,-1,"sharedStrings."+t,ha.SST)}s="xl/theme/theme1.xml";i.file(s,Ao(e.Themes,r));n.themes.push(s);ma(r.wbrels,-1,"theme/theme1.xml",ha.THEME);s="xl/styles."+t;i.file(s,Qd(e,s,r));n.styles.push(s);ma(r.wbrels,-1,"styles."+t,ha.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";i.file(s,e.vbaraw);n.vba.push(s);ma(r.wbrels,-1,"vbaProject.bin",ha.VBA)}i.file("[Content_Types].xml",ua(n,r));i.file("_rels/.rels",ba(r.rels));i.file("xl/_rels/workbook."+t+".rels",ba(r.wbrels));delete r.revssf;delete r.ssf;return i}function Cp(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3]];case"base64":t=h.decode(e.substr(0,24));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}function _p(e,r){if(T.find(e,"EncryptedPackage"))return Sp(e,r);return Dv(e,r)}function Tp(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=d&&Buffer.isBuffer(e)?"buffer":"base64";switch(n.type){case"base64":t=new ae(a,{base64:true});break;case"binary":;case"array":t=new ae(a,{base64:false});break;case"buffer":t=new ae(a);break;default:throw new Error("Unrecognized type "+n.type);}return wp(t,n)}function xp(e,r){var t=0;e:while(t=2&&n[3]===0)return Bs.to_workbook(a,s);break;case 3:;case 131:;case 139:;case 140:return gs.to_workbook(a,s);case 123:if(n[1]===92&&n[2]===114&&n[3]===116)return cl.to_workbook(a,s);break;case 10:;case 13:;case 32:return Ip(a,s);}if(n[2]<=12&&n[3]<=31)return gs.to_workbook(a,s);if(32>n[0]||n[0]>127)throw new Error("Unsupported file "+n.join("|"));return Rp(e,a,s,i)}function Op(e,r){var t=r||{};t.type="file";return Dp(e,t)}function Fp(e,r){var t=r||{};var a=Bp(e,t);var n={};if(t.compression)n.compression="DEFLATE";switch(t.type){case"base64":n.type="base64";break;case"binary":n.type="string";break;case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");case"buffer":;case"file":n.type="nodebuffer";break;default:throw new Error("Unrecognized type "+t.type);}if(t.type==="file")return te.writeFileSync(t.file,a.generate(n));var i=a.generate(n);return t.type=="string"?_e(i):i}function Pp(e,r){var t=r||{};var a=Ov(e,t);switch(t.type){case"base64":;case"binary":break;case"buffer":;case"array":t.type="";break;case"file":return te.writeFileSync(t.file,T.write(a,{type:"buffer"}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");default:throw new Error("Unrecognized type "+t.type);}return T.write(a,t)}function Np(e,r,t){if(!t)t="";var a=t+e;switch(r.type){case"base64":return h.encode(Te(a));case"binary":return Te(a);case"string":return e;case"file":return te.writeFileSync(r.file,a,"utf8");case"buffer":{if(d)return new Buffer(a,"utf8");else return Np(a,{type:"binary"}).split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Lp(e,r){switch(r.type){case"base64":return h.encode(e);case"binary":return e;case"string":return e;case"file":return te.writeFileSync(r.file,e,"binary");case"buffer":{if(d)return new Buffer(e,"binary");else return e.split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Mp(e,r){switch(r.type){case"string":;case"base64":;case"binary":var t="";for(var a=0;a0)n=0;var v=Hr(f.s.r);var p=[];var b=[];var m=0,g=0;var E=Array.isArray(e);var k=f.s.r,w=0,S=0;if(E&&!e[k])e[k]=[];for(w=f.s.c;w<=f.e.c;++w){p[w]=Xr(w);t=E?e[k][w]:e[p[w]+v];switch(a){case 1:i[w]=w-f.s.c;break;case 2:i[w]=p[w];break;case 3:i[w]=c.header[w-f.s.c];break;default:if(t==null)continue;o=l=tt(t,null,c);g=0;for(S=0;S=0)c='"'+c.replace(Xp,'""')+'"'}else c="";f.push(c)}if(l.blankrows===false&&o)return null;return f.join(s)}function jp(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=et(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var l=a.RS!==undefined?a.RS:"\n",o=l.charCodeAt(0);var f=new RegExp((i=="|"?"\\|":i)+"+$");var c="",u=[];a.dense=Array.isArray(e);var h=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var v=n.s.c;v<=n.e.c;++v)if(!(h[v]||{}).hidden)u[v]=Xr(v);for(var p=n.s.r;p<=n.e.r;++p){if((d[p]||{}).hidden)continue;c=Gp(e,n,p,u,s,o,i,a);if(c==null){continue}if(a.strip)c=c.replace(f,"");t.push(c+l)}delete a.dense;return t.join("")}function Kp(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=jp(e,r);if(typeof cptable=="undefined"||r.type=="string")return t;var a=cptable.utils.encode(1200,t,"str");return"ÿþ"+a}function Yp(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=et(e["!ref"]),i="",s=[],l;var o=[];var f=Array.isArray(e);for(l=n.s.c;l<=n.e.c;++l)s[l]=Xr(l);for(var c=n.s.r;c<=n.e.r;++c){i=Hr(c);for(l=n.s.c;l<=n.e.c;++l){r=s[l]+i;t=f?(e[c]||[])[l]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;o[o.length]=r+"="+a}}return o}function $p(e,r){var t=r||{};var a={};var n;var i={s:{c:0,r:0},e:{c:0,r:e.length}};var s=t.header||[],l=0;e.forEach(function(e,r){I(e).filter(function(r){return e.hasOwnProperty(r)}).forEach(function(i){if((l=s.indexOf(i))==-1)s[l=s.length]=i;var o=e[i];var f="z";var c="";if(typeof o=="number")f="n";else if(typeof o=="boolean")f="b";else if(typeof o=="string")f="s";else if(o instanceof Date){f="d";if(!t.cellDates){f="n";o=P(o)}c=t.dateNF||E._table[14]}a[$r({c:l,r:r+1})]=n={t:f,v:o};if(c)n.z=c})});i.e.c=s.length-1;for(l=0;l=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}e.book_new=function(){return{SheetNames:[],Sheets:{}}};e.book_append_sheet=function(e,r,t){if(!t)for(var a=1;a<=65535;++a)if(e.SheetNames.indexOf(t="Sheet"+a)==-1)break;if(!t)throw new Error("Too many worksheets");bd(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r};e.book_set_sheet_visibility=function(e,r,a){t(e,"Workbook",{});t(e.Workbook,"Sheets",[]);var i=n(e,r);t(e.Workbook.Sheets,i,{});switch(a){case 0:;case 1:;case 2:break;default:throw new Error("Bad sheet visibility setting "+a);}e.Workbook.Sheets[i].Hidden=a};r([["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]]);e.cell_set_number_format=function(e,r){e.z=r;return e};e.cell_set_hyperlink=function(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e};e.cell_add_comment=function(e,r,t){if(!e.c)e.c=[];e.c.push({t:r,a:t||"SheetJS"})};e.sheet_set_array_formula=function(e,r,t){var n=typeof r!="string"?r:et(r);var i=typeof r=="string"?r:qr(r);for(var s=n.s.r;s<=n.e.r;++s)for(var l=n.s.c;l<=n.e.c;++l){var o=a(e,s,l);o.t="n";o.F=i;delete o.v;if(s==n.s.r&&l==n.s.c)o.f=t}return e};return e})(Zp);if(d&&typeof require!="undefined")(function(){var e={}.Readable;var t=function(r,t){var a=e();var n="";var i=t==null?{}:t;if(r==null||r["!ref"]==null){a.push(null);return a}var s=et(r["!ref"]);var l=i.FS!==undefined?i.FS:",",o=l.charCodeAt(0);var f=i.RS!==undefined?i.RS:"\n",c=f.charCodeAt(0);var u=new RegExp((l=="|"?"\\|":l)+"+$");var h="",d=[];i.dense=Array.isArray(r);var v=i.skipHidden&&r["!cols"]||[];var p=i.skipHidden&&r["!rows"]||[];for(var b=s.s.c;b<=s.e.c;++b)if(!(v[b]||{}).hidden)d[b]=Xr(b);var m=s.s.r;a._read=function(){if(m>s.e.r)return a.push(null);while(m<=s.e.r){++m;if((p[m-1]||{}).hidden)continue;h=Gp(r,s,m-1,d,o,c,l,i);if(h!=null){if(i.strip)h=h.replace(u,"");a.push(h+f);break}}};return a};var a=function(r,t){var a=e();var n=t||{};var i=n.header!=null?n.header:Zv.BEGIN;var s=n.footer!=null?n.footer:Zv.END;a.push(i);var l=Jr(r["!ref"]);n.dense=Array.isArray(r);a.push(Zv._preamble(r,l,n));var o=l.s.r;var f=false;a._read=function(){if(o>l.e.r){if(!f){f=true;a.push(""+s)}return a.push(null)}while(o<=l.e.r){a.push(Zv._row(r,l,o,n));++o;break}};return a};r.stream={to_html:a,to_csv:t}})();r.parse_xlscfb=Dv;r.parse_ods=ep;r.parse_fods=rp;r.write_ods=np;r.parse_zip=wp;r.read=Dp;r.readFile=Op;r.readFileSync=Op;r.write=Up;r.writeFile=Wp;r.writeFileSync=Wp;r.writeFileAsync=zp;r.utils=Zp;r.SSF=E})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX;var ODS=XLSX; diff --git a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.map b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.map index 579c7714f8..ac6f541cfd 100644 --- a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.map +++ b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.core.min.map @@ -1 +1 @@ -{"version":3,"sources":["misc/suppress_export.js","jszip.js","dist/xlsx.js"],"names":["DO_NOT_EXPORT_CODEPAGE","DO_NOT_EXPORT_JSZIP","e","exports","module","define","amd","JSZip","f","window","global","$","self","t","n","r","s","o","u","a","require","i","Error","call","length","1","_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode","2","CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent","3","STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate","4","utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils","5","DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date","6","base64","binary","dir","createFolders","date","compression","comment","7","string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object","8","USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw","9","options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support","10","ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries","11","Buffer","encoding","test","isBuffer","undefined","12","Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","./dataReader","16","join","17","arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","18","sig0","sig1","sig2","sig3","subarray","19","20","_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min","21","identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method","22","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants","25","zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream","26","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js","27","TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common","29","adler32","adler","s1","s2","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","31","makeTable","crcTable","end","32","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees","33","GZheader","xflags","extra_len","done","34","BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","35","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees","36","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index","37","0","-1","-2","-3","-4","-5","-6","38","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","39","ZStream","XLSX","make_xlsx","version","current_codepage","cptable","reset_cp","set_cp","cp","char_codes","utf16leread","utf16beread","debom","c1","substr","_getchar","_gc1","_gc2","DENSE","DIF_XL","Base64","make_b64","map","c3","e1","e2","e3","e4","b64_decode","has_buf","process","versions","new_raw_buf","s2a","split","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","d","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","parse_date_code","b2","dow","dout","T","H","M","S","abs","date1904","setDate","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","_general_num","general_fmt","format","_general","write_date","fmt","ss0","ss","tt","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","fmt_is_date","is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","load_entry","_table","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","forEach","datestr","timestr","DO_NOT_EXPORT_CFB","CFB","_CFB","namecmp","L","R","Z","dirname","parse","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","prep_blob","mv","check_get_mver","check_shifts","dir_cnt","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","C","pl","dad","cnt","sector","__readInt32LE","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","minifat_store","namelen","__utf16le","color","clsid","ctime","ct","read_date","mtime","mt","storage","MSSZ","__readUInt32LE","fs","read_file","readFileSync","read","init_cfb","cfb","CLSID","seed_cfb","nm","find","new_buf","rebuild_cfb","gc","_file","pop","now","sort","elt","_write","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","write_shift","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","a2s","write","cfb_new","cfb_add","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","isval","keys","evert_key","key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","setFullYear","cc2str","arr","str2cc","dup","JSON","stringify","fuzzynum","Number","wt","fuzzydate","NaN","getYear","safe_split_regex","split_regex","re","def","getdatastr","getdatabin","getdata","safegetzipfile","g","getzipfile","getzipdata","safe","getzipstr","_fs","jszip","resolve_path","target","step","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","quot","strip_ns","encodings",""","'",">","<","&","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","xml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8reada","orig","utf8write","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","trim","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","XLMLNS","html","read_double_le","Infinity","write_double_le","bs","av","isFinite","LN2","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","lpstr_b","readUInt32LE","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","___unhexlify","__unhexlify","oI","oR","oo","loc","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","hexstr","fld","parsenoop","parsenooplog","console","writenoop","sz","recordhopper","cb","tmpbyte","cntbyte","RT","tgt","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","fix_cell","unfix_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","aoa_to_sheet","dense","ws","cellStubs","cellDates","cell_ref","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","write_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","42","43","255","RBErr","parse_BrtColor","fValidRGB","xColorType","nTS","bR","bG","bB","bAlpha","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_UI8","VT_LPSTR","VT_FILETIME","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties","2147483648","2147483651","1919054434","CountryEnum","41","44","45","46","47","48","49","52","55","61","64","66","81","82","84","86","90","105","213","216","218","351","354","358","420","886","961","962","963","964","965","966","971","972","974","981","65535","XLSFillPattern","rgbify","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-office.chartcolorstyle+xml","application/vnd.ms-office.chartstyle+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.openxmlformats-officedocument.themeOverride+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","image/png","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","CT_ODS","parse_manifest","xlml_normalize","Rn","FEtag","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","wmo","wb","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","_opts","Props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","dt:dt","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","parse_ClipboardData","Size","parse_VtVector","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","width","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","accel","parse_URLMoniker","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","parse_InterfaceHdr","parse_WriteAccess","enc","UserName","write_WriteAccess","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","miyRw","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Font","dyHeight","parse_LabelSst","isst","parse_Label","write_Label","parse_Format","fmtstr","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","cbPictFmla","colL","dxL","rwT","dyT","colR","dxR","rwB","dyB","cbMacro","parse_TxO","texts","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","100","101","102","103","104","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","77","78","79","80","87","88","89","dbf_to_aoa","memo","vfp","filedate","nrow","fpos","rlen","current_cp","fields","field","hend","day","ms","dbf_to_sheet","dbf_to_workbook","to_workbook","to_sheet","SYLK","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","aoa","sylk_to_workbook","write_ws_cell_sylk","F","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","from_sheet","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","PRN","set_text_arr","prn_to_aoa_str","lines","guess_sep","instr","dsv_to_sheet_str","sep","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","message","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","40","50","51","56","60","62","63","65","67","68","69","70","71","72","73","74","CS2CP","128","129","130","134","136","161","162","163","177","178","186","204","222","238","parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","rc","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu_decrypt","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","px2char_","char2width_","cycle_width","collw","find_mdw_colw","delta","_MDW","find_mdw_wpx","guess","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_borders","Borders","border","sub_border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","codepage","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","ixfeP","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","write_cc_bin","parse_xlink_xml","parse_xlink_bin","xlink_parse","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","xmlns:v","xmlns:o","xmlns:x","xmlns:mv","v:ext","joinstyle","gradientshapeok","o:connecttype","o:spt","coordsize","fillcolor","strokecolor","color2","angle","obscured","CMNT","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","thisCell","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","sheetRows","textMatch","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","write_comments_bin","DS","MS","parse_ds_bin","!type","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","$4","$5","fstr","crefregex","$0","off","shift_formula_str","shift_formula_xlsx","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","PtgTypes","57","58","59","PtgDupes","96","97","98","99","75","76","108","109","91","92","93","Ptg18","Ptg19","parse_Formula","parse_FormulaValue","chn","cbf","parse_XLSCellParsedFormula","shared","parse_RgbExtra","parse_Rgce","rgcb","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","get_ixti","stringify_formula","_range","stack","nameidx","last_sp","sp","fflen","argc","args","lbl","names","XLSXFutureFunctions","bookidx","externbook","pnxname","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","PtgDataType","53","54","83","85","94","95","110","111","112","113","114","115","116","117","118","119","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","206","207","208","209","210","211","212","214","215","217","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","353","357","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_range_3D","_ssfopts","WS","get_sst_id","col_obj_w","default_margins","margins","defs","right","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","parse_ws_xml","data1","data2","mtch","ridx","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","mergecells","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","write_ws_xml_protection","deffalse","deftrue","Rel","tooltip","Tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","write_ws_xml_sheetviews","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","cellFormula","si","_tag","sheetStubs","_r","write_ws_xml_data","_cell","params","height","customHeight","WS_XML_ROOT","xmlns:r","write_ws_xml","rdata","codeName","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","r:id","hfidx","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","parse_BrtMargins","write_BrtMargins","write_BrtBeginWsView","write_BrtSheetProtection","parse_ws_bin","!id","ai","af","array_formulae","shared_formulae","Names","defwidth","defheight","ws_parse","aii","_d","write_ws_bin_cell","olddate","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_numCache","nf","parse_chart","csheet","nc","cache","CS","CS_XML_ROOT","parse_cs_xml","!chart","!rel","write_cs_xml","parse_cs_bin","cs_parse","write_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","Workbook","badchars","check_ws_name","_good","check_wb_names","N","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","Sheet","Ref","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cc","parse_xlink","write_wb","write_ws","write_cs","write_sty","write_sst","write_cmnt","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","arr2str","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_ws_xlml_wsopts","x:Margin","x:Bottom","x:Left","x:Right","x:Top","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","ss:Author","write_ws_xlml_cell","mi","_v","write_ws_xlml_row","write_ws_xlml_table","ss:Index","write_ws_xlml","write_xlml","ss:Name","xmlns:ss","xmlns:dt","xmlns:html","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","XTI","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","RecordType","Date1904","WriteProtect","error","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","ExternCount","fakebs8","_f","_fr","_fc","_fe","_arraystart","_j","_ixfe","b2idx","TxO","ImData","noteobj","sheetnamesraw","Encryption","Metadata","Country","parse_props","props","DSI","DocSummary","SI","Summary","parse_xlscfb","CompObj","CompObjP","SummaryP","WorkbookP","bookFiles","write_xlscfb","wbpath","write_biff_buf","333","486","487","488","490","492","496","497","498","499","500","501","502","503","504","505","506","507","508","512","513","514","515","516","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","540","541","542","550","551","552","553","554","555","556","557","558","559","560","561","562","564","565","566","569","570","572","573","574","577","578","579","580","581","582","583","584","585","586","587","588","589","590","591","592","593","594","595","596","597","598","599","600","601","602","603","604","605","606","607","608","609","610","611","612","613","614","615","616","617","618","619","625","626","627","628","629","630","631","632","633","634","635","636","637","638","639","640","641","642","643","644","645","646","648","649","650","651","652","654","655","656","657","658","659","660","661","662","663","664","665","666","668","669","671","672","674","675","676","677","678","679","680","1024","1025","1026","1027","1028","1029","1030","1031","1032","1033","1034","1035","1036","1037","1038","1039","1040","1041","1042","1043","1044","1045","1046","1047","1048","1049","1050","1051","1052","1053","1054","1055","1056","1057","1058","1059","1061","1062","1063","1066","1067","1068","1069","1070","1071","1072","1073","1075","1076","1077","1078","1079","1080","1081","1082","1083","1084","1085","1086","1087","1088","1089","1090","1091","1092","1093","1094","1095","1096","1097","1098","1099","1100","1101","1102","1103","1104","1105","1111","1112","1113","1114","1115","1116","1117","1118","1119","1120","1121","1122","1123","1124","1125","1126","1128","1129","1130","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1141","1142","1143","1144","1145","1146","1147","1148","1149","1150","1152","1153","1154","1155","1156","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170","1171","1172","1173","1177","1178","1180","1181","1182","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2060","2067","2068","2069","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","2101","2102","2103","2104","2105","2106","2107","2108","2109","2110","2111","2112","2113","2114","2115","2116","2117","2118","2119","2120","2121","2122","2123","2124","2125","2126","2127","2128","2129","2130","2131","2132","2133","2134","2135","2136","1212","2059","2061","2062","2063","2064","2066","2137","2138","2146","2147","2148","2149","2150","2151","2152","2154","2155","2156","2161","2162","2164","2165","2166","2167","2168","2169","2170","2171","2172","2173","2174","2175","2180","2181","2182","2183","2184","2185","2186","2187","2188","2189","2190","2191","2192","2194","2195","2196","2197","2198","2199","2200","2201","2202","2203","2204","2205","2206","2207","2211","2212","2213","2214","2215","4097","4098","4099","4102","4103","4105","4106","4107","4108","4109","4116","4117","4118","4119","4120","4121","4122","4123","4124","4125","4126","4127","4128","4129","4130","4132","4133","4134","4135","4146","4147","4148","4149","4154","4156","4157","4158","4159","4160","4161","4163","4164","4165","4166","4168","4170","4171","4174","4175","4176","4177","4187","4188","4189","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","2157","2163","2177","2240","2241","2242","2243","2244","2245","2246","2247","2248","2249","2250","2251","2262","29282","XLSRE","write_biff_rec","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_ws_biff8_cell","write_ws_biff8","write_biff8_global","b8","b5","blen","write_biff8_buf","unshift","html_to_sheet","mtch2","midx","hd","colspan","rowspan","html_to_book","make_html_row","nullcell","editable","contenteditable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","_C","elts","children","innerHTML","getAttribute","table_to_book","parse_content_xml","parse_text_p","number_formats","month","year","hours","minutes","seconds","am-pm","day-of-week","pcx","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","number_format_map","mrange","mR","mC","creator","creatoridx","rept","isstub","parse_ods","ods","write_styles_ods","wso","write_content_ods","null_cell_xml","covered_cell_xml","_Fref","write_automatic_styles_ods","wcx","xmlns:office","xmlns:table","xmlns:style","xmlns:text","xmlns:draw","xmlns:fo","xmlns:xlink","xmlns:meta","xmlns:number","xmlns:presentation","xmlns:svg","xmlns:chart","xmlns:dr3d","xmlns:math","xmlns:form","xmlns:script","xmlns:ooo","xmlns:ooow","xmlns:oooc","xmlns:dom","xmlns:xforms","xmlns:sheet","xmlns:rpt","xmlns:of","xmlns:xhtml","xmlns:grddl","xmlns:tableooo","xmlns:drawooo","xmlns:calcext","xmlns:loext","xmlns:field","xmlns:formx","xmlns:css3t","office:version","fods","xmlns:config","office:mimetype","write_ods","write_obj_str","factory","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","fix_opts_func","fix_opts","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","nodirs","strip_front_slash","parse_zip","entries","binname","externbooks","link","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","bookVBA","vbaraw","bin","parse_xlsxcfb","dsm","seds","einfo","write_zip","vbafmt","General","wsrels","_type","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","write_zip_type","oopts","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","bstr","writeSync","resolve_book_type","writeFileAsync","_cb","Function","sheet_to_json","isempty","defval","outi","counter","CC","defineProperty","enumerable","__rowNum__","blankrows","qreg","make_csv_row","FS","txt","endregex","colInfos","skipHidden","rowInfos","strip","sheet_to_formulae","cmds","json_to_sheet","js","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","_read","write_html_stream","to_html","to_csv","readFile","XLS","ODS"],"mappings":"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","file":"dist/xlsx.core.min.js"} \ No newline at end of file +{"version":3,"sources":["misc/suppress_export.js","jszip.js","dist/xlsx.js"],"names":["DO_NOT_EXPORT_CODEPAGE","DO_NOT_EXPORT_JSZIP","e","exports","module","define","amd","JSZip","f","window","global","$","self","t","n","r","s","o","u","a","require","i","Error","call","length","1","_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode","2","CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent","3","STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate","4","utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils","5","DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date","6","base64","binary","dir","createFolders","date","compression","comment","7","string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object","8","USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw","9","options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support","10","ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries","11","Buffer","encoding","test","isBuffer","undefined","12","Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","./dataReader","16","join","17","arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","18","sig0","sig1","sig2","sig3","subarray","19","20","_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min","21","identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method","22","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants","25","zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream","26","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js","27","TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common","29","adler32","adler","s1","s2","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","31","makeTable","crcTable","end","32","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees","33","GZheader","xflags","extra_len","done","34","BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","35","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees","36","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index","37","0","-1","-2","-3","-4","-5","-6","38","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","39","ZStream","XLSX","make_xlsx","version","current_codepage","cptable","reset_cp","set_cp","cp","char_codes","utf16leread","utf16beread","debom","c1","substr","_getchar","_gc1","_gc2","DENSE","DIF_XL","Base64","make_b64","map","c3","e1","e2","e3","e4","b64_decode","has_buf","process","versions","new_raw_buf","s2a","split","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","d","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","parse_date_code","b2","dow","dout","T","H","M","S","abs","date1904","setDate","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","_general_num","general_fmt","format","_general","write_date","fmt","ss0","ss","tt","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","fmt_is_date","is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","load_entry","_table","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","forEach","datestr","timestr","DO_NOT_EXPORT_CFB","CFB","_CFB","namecmp","L","R","Z","dirname","parse","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","prep_blob","mv","check_get_mver","check_shifts","dir_cnt","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","C","pl","dad","cnt","sector","__readInt32LE","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","minifat_store","namelen","__utf16le","color","clsid","ctime","ct","read_date","mtime","mt","storage","MSSZ","__readUInt32LE","fs","read_file","readFileSync","read","init_cfb","cfb","CLSID","seed_cfb","nm","find","new_buf","rebuild_cfb","gc","_file","pop","now","sort","elt","_write","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","write_shift","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","a2s","write","cfb_new","cfb_add","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","isval","keys","evert_key","key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","setFullYear","cc2str","arr","str2cc","dup","JSON","stringify","fuzzynum","Number","wt","fuzzydate","NaN","getYear","safe_split_regex","split_regex","re","def","getdatastr","getdatabin","getdata","safegetzipfile","g","getzipfile","getzipdata","safe","getzipstr","_fs","jszip","resolve_path","target","step","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","quot","strip_ns","encodings",""","'",">","<","&","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","xml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8reada","orig","utf8write","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","trim","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","XLMLNS","html","read_double_le","Infinity","write_double_le","bs","av","isFinite","LN2","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","lpstr_b","readUInt32LE","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","__readInt32BE","___unhexlify","__unhexlify","oI","oR","oo","loc","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","hexstr","fld","parsenoop","parsenooplog","console","writenoop","sz","recordhopper","cb","tmpbyte","cntbyte","RT","tgt","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","fix_cell","unfix_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","aoa_to_sheet","dense","ws","cellStubs","cellDates","cell_ref","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","write_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","42","43","255","RBErr","parse_BrtColor","fValidRGB","xColorType","nTS","bR","bG","bB","bAlpha","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_UI8","VT_LPSTR","VT_FILETIME","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties","2147483648","2147483651","1919054434","CountryEnum","41","44","45","46","47","48","49","52","55","61","64","66","81","82","84","86","90","105","213","216","218","351","354","358","420","886","961","962","963","964","965","966","971","972","974","981","65535","XLSFillPattern","rgbify","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-office.chartcolorstyle+xml","application/vnd.ms-office.chartstyle+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.openxmlformats-officedocument.themeOverride+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","image/png","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","CT_ODS","parse_manifest","xlml_normalize","Rn","FEtag","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","wmo","wb","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","_opts","Props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","dt:dt","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","parse_ClipboardData","Size","parse_VtVector","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","width","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","accel","parse_URLMoniker","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","parse_InterfaceHdr","parse_WriteAccess","enc","UserName","write_WriteAccess","b8","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","miyRw","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Font","dyHeight","parse_LabelSst","isst","parse_Label","write_Label","parse_Format","fmtstr","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","cbPictFmla","colL","dxL","rwT","dyT","colR","dxR","rwB","dyB","cbMacro","parse_TxO","texts","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","100","101","102","103","104","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","77","78","79","80","87","88","89","dbf_to_aoa","memo","vfp","l7","filedate","nrow","fpos","rlen","current_cp","fields","field","hend","dbf_to_sheet","dbf_to_workbook","to_workbook","to_sheet","SYLK","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","aoa","sylk_to_workbook","write_ws_cell_sylk","F","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","from_sheet","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","PRN","set_text_arr","prn_to_aoa_str","lines","guess_seps","59","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","sep","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","message","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","40","50","51","56","60","62","63","65","67","68","69","70","71","72","73","74","CS2CP","128","129","130","134","136","161","162","163","177","178","186","204","222","238","parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","rc","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","px2char_","char2width_","cycle_width","collw","find_mdw_colw","delta","_MDW","find_mdw_wpx","guess","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_borders","Borders","border","sub_border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","codepage","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","ixfeP","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","write_cc_bin","parse_xlink_xml","parse_xlink_bin","xlink_parse","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","xmlns:v","xmlns:o","xmlns:x","xmlns:mv","v:ext","joinstyle","gradientshapeok","o:connecttype","o:spt","coordsize","fillcolor","strokecolor","color2","angle","obscured","CMNT","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","thisCell","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","sheetRows","textMatch","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","write_comments_bin","make_vba_xls","newcfb","newpath","DS","MS","parse_ds_bin","!type","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","$4","$5","fstr","crefregex","$0","off","shift_formula_str","shift_formula_xlsx","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","parse_PtgList","parse_PtgSxName","PtgTypes","57","58","PtgDupes","96","97","98","99","75","76","108","109","91","92","93","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","get_ixti","stringify_formula","_range","stack","nameidx","last_sp","sp","fflen","argc","args","lbl","names","XLSXFutureFunctions","bookidx","externbook","pnxname","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","parse_Formula","chn","cbf","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","PtgDataType","53","54","83","85","94","95","110","111","112","113","114","115","116","117","118","119","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","206","207","208","209","210","211","212","214","215","217","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","353","357","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_range_3D","_ssfopts","WS","get_sst_id","col_obj_w","default_margins","margins","defs","right","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","parse_ws_xml","data1","data2","mtch","ridx","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","mergecells","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","write_ws_xml_protection","deffalse","deftrue","Rel","tooltip","Tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","write_ws_xml_sheetviews","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","cellFormula","si","_tag","sheetStubs","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","xmlns:r","write_ws_xml","rdata","codeName","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","r:id","hfidx","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","write_BrtBeginWsView","write_BrtSheetProtection","parse_ws_bin","!id","ai","af","array_formulae","shared_formulae","Names","defwidth","defheight","ws_parse","aii","_d","write_ws_bin_cell","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_numCache","nf","parse_chart","csheet","nc","cache","CS","CS_XML_ROOT","parse_cs_xml","!chart","!rel","write_cs_xml","parse_cs_bin","cs_parse","write_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","Workbook","badchars","check_ws_name","_good","check_wb_names","N","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","Sheet","Ref","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cc","parse_xlink","write_wb","write_ws","write_cs","write_sty","write_sst","write_cmnt","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","arr2str","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_ws_xlml_wsopts","x:Margin","x:Bottom","x:Left","x:Right","x:Top","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","ss:Author","write_ws_xlml_cell","mi","_v","write_ws_xlml_row","write_ws_xlml_table","ss:Index","write_ws_xlml","write_xlml","ss:Name","xmlns:ss","xmlns:dt","xmlns:html","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","XTI","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","RecordType","Date1904","WriteProtect","error","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","ExternCount","fakebs8","_f","_fr","_fc","_fe","_arraystart","_j","_ixfe","b2idx","TxO","ImData","noteobj","sheetnamesraw","Encryption","Metadata","Country","parse_props","props","DSI","DocSummary","SI","Summary","parse_xlscfb","CompObj","CompObjP","SummaryP","WorkbookP","bookVBA","vbaraw","bookFiles","write_xlscfb","wbpath","write_biff_buf","333","486","487","488","490","492","496","497","498","499","500","501","502","503","504","505","506","507","508","512","513","514","515","516","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","540","541","542","550","551","552","553","554","555","556","557","558","559","560","561","562","564","565","566","569","570","572","573","574","577","578","579","580","581","582","583","584","585","586","587","588","589","590","591","592","593","594","595","596","597","598","599","600","601","602","603","604","605","606","607","608","609","610","611","612","613","614","615","616","617","618","619","625","626","627","628","629","630","631","632","633","634","635","636","637","638","639","640","641","642","643","644","645","646","648","649","650","651","652","654","655","656","657","658","659","660","661","662","663","664","665","666","668","669","671","672","674","675","676","677","678","679","680","1024","1025","1026","1027","1028","1029","1030","1031","1032","1033","1034","1035","1036","1037","1038","1039","1040","1041","1042","1043","1044","1045","1046","1047","1048","1049","1050","1051","1052","1053","1054","1055","1056","1057","1058","1059","1061","1062","1063","1066","1067","1068","1069","1070","1071","1072","1073","1075","1076","1077","1078","1079","1080","1081","1082","1083","1084","1085","1086","1087","1088","1089","1090","1091","1092","1093","1094","1095","1096","1097","1098","1099","1100","1101","1102","1103","1104","1105","1111","1112","1113","1114","1115","1116","1117","1118","1119","1120","1121","1122","1123","1124","1125","1126","1128","1129","1130","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1141","1142","1143","1144","1145","1146","1147","1148","1149","1150","1152","1153","1154","1155","1156","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170","1171","1172","1173","1177","1178","1180","1181","1182","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2060","2067","2068","2069","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","2101","2102","2103","2104","2105","2106","2107","2108","2109","2110","2111","2112","2113","2114","2115","2116","2117","2118","2119","2120","2121","2122","2123","2124","2125","2126","2127","2128","2129","2130","2131","2132","2133","2134","2135","2136","1212","2059","2061","2062","2063","2064","2066","2137","2138","2146","2147","2148","2149","2150","2151","2152","2154","2155","2156","2161","2162","2164","2165","2166","2167","2168","2169","2170","2171","2172","2173","2174","2175","2180","2181","2182","2183","2184","2185","2186","2187","2188","2189","2190","2191","2192","2194","2195","2196","2197","2198","2199","2200","2201","2202","2203","2204","2205","2206","2207","2211","2212","2213","2214","2215","4097","4098","4099","4102","4103","4105","4106","4107","4108","4109","4116","4117","4118","4119","4120","4121","4122","4123","4124","4125","4126","4127","4128","4129","4130","4132","4133","4134","4135","4146","4147","4148","4149","4154","4156","4157","4158","4159","4160","4161","4163","4164","4165","4166","4168","4170","4171","4174","4175","4176","4177","4187","4188","4189","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","2157","2163","2177","2240","2241","2242","2243","2244","2245","2246","2247","2248","2249","2250","2251","2262","29282","XLSRE","write_biff_rec","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_ws_biff8_cell","write_ws_biff8","write_biff8_global","b5","blen","write_biff8_buf","unshift","html_to_sheet","mtch2","midx","hd","colspan","rowspan","html_to_book","make_html_row","nullcell","editable","contenteditable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","_C","elts","children","innerHTML","getAttribute","table_to_book","parse_content_xml","parse_text_p","number_formats","day","month","year","hours","minutes","seconds","am-pm","day-of-week","era","quarter","pcx","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","creator","creatoridx","isstub","rpt","parse_ods","ods","write_styles_ods","xmlns:office","xmlns:table","xmlns:style","xmlns:text","xmlns:draw","xmlns:fo","xmlns:xlink","xmlns:number","xmlns:svg","xmlns:of","office:version","wso","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","_Fref","write_automatic_styles_ods","wcx","xmlns:meta","xmlns:presentation","xmlns:chart","xmlns:dr3d","xmlns:math","xmlns:form","xmlns:script","xmlns:ooo","xmlns:ooow","xmlns:oooc","xmlns:dom","xmlns:xforms","xmlns:sheet","xmlns:rpt","xmlns:xhtml","xmlns:grddl","xmlns:tableooo","xmlns:drawooo","xmlns:calcext","xmlns:loext","xmlns:field","xmlns:formx","xmlns:css3t","fods","xmlns:config","office:mimetype","write_ods","write_obj_str","factory","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","fix_opts_func","fix_opts","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","nodirs","strip_front_slash","parse_zip","entries","binname","externbooks","link","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","write_zip","vbafmt","General","wsrels","_type","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","write_zip_type","oopts","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","bstr","writeSync","resolve_book_type","writeFileAsync","_cb","Function","sheet_to_json","isempty","defval","outi","counter","CC","defineProperty","enumerable","__rowNum__","blankrows","qreg","make_csv_row","FS","txt","endregex","colInfos","skipHidden","rowInfos","strip","sheet_to_formulae","cmds","json_to_sheet","js","JS","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","_read","write_html_stream","to_html","to_csv","readFile","XLS","ODS"],"mappings":"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","file":"dist/xlsx.core.min.js"} \ No newline at end of file diff --git a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.js b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.js index c6f2f27b0e..550b86819a 100644 --- a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.js +++ b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.js @@ -7,15 +7,16 @@ for(a=0;a!=t[196].length;++a)if(t[196][a].charCodeAt(0)!==65533){r[t[196][a]]=50 for(a=0;a!=t[153].length;++a)if(t[153][a].charCodeAt(0)!==65533){r[t[153][a]]=39168+a;e[39168+a]=t[153][a]}t[154]="�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�".split("");for(a=0;a!=t[154].length;++a)if(t[154][a].charCodeAt(0)!==65533){r[t[154][a]]=39424+a;e[39424+a]=t[154][a]}t[155]="�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�".split("");for(a=0;a!=t[155].length;++a)if(t[155][a].charCodeAt(0)!==65533){r[t[155][a]]=39680+a;e[39680+a]=t[155][a]}t[156]="�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�".split("");for(a=0;a!=t[156].length;++a)if(t[156][a].charCodeAt(0)!==65533){r[t[156][a]]=39936+a;e[39936+a]=t[156][a]}t[157]="�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�".split("");for(a=0;a!=t[157].length;++a)if(t[157][a].charCodeAt(0)!==65533){r[t[157][a]]=40192+a;e[40192+a]=t[157][a]}t[158]="�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�".split("");for(a=0;a!=t[158].length;++a)if(t[158][a].charCodeAt(0)!==65533){r[t[158][a]]=40448+a;e[40448+a]=t[158][a]}t[159]="�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�".split("");for(a=0;a!=t[159].length;++a)if(t[159][a].charCodeAt(0)!==65533){r[t[159][a]]=40704+a;e[40704+a]=t[159][a]}t[160]="�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�".split("");for(a=0;a!=t[160].length;++a)if(t[160][a].charCodeAt(0)!==65533){r[t[160][a]]=40960+a;e[40960+a]=t[160][a]}t[161]="�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�".split("");for(a=0;a!=t[161].length;++a)if(t[161][a].charCodeAt(0)!==65533){r[t[161][a]]=41216+a;e[41216+a]=t[161][a]}t[162]="�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������".split("");for(a=0;a!=t[162].length;++a)if(t[162][a].charCodeAt(0)!==65533){r[t[162][a]]=41472+a;e[41472+a]=t[162][a]}t[163]="�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split("");for(a=0;a!=t[163].length;++a)if(t[163][a].charCodeAt(0)!==65533){r[t[163][a]]=41728+a;e[41728+a]=t[163][a]}t[164]="�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�".split("");for(a=0;a!=t[164].length;++a)if(t[164][a].charCodeAt(0)!==65533){r[t[164][a]]=41984+a;e[41984+a]=t[164][a]}t[165]="�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������".split("");for(a=0;a!=t[165].length;++a)if(t[165][a].charCodeAt(0)!==65533){r[t[165][a]]=42240+a;e[42240+a]=t[165][a]}t[166]="�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������".split("");for(a=0;a!=t[166].length;++a)if(t[166][a].charCodeAt(0)!==65533){r[t[166][a]]=42496+a;e[42496+a]=t[166][a]}t[167]="�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������".split("");for(a=0;a!=t[167].length;++a)if(t[167][a].charCodeAt(0)!==65533){r[t[167][a]]=42752+a;e[42752+a]=t[167][a]}t[168]="�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆЪĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�".split("");for(a=0;a!=t[168].length;++a)if(t[168][a].charCodeAt(0)!==65533){r[t[168][a]]=43008+a;e[43008+a]=t[168][a]}t[169]="�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�".split("");for(a=0;a!=t[169].length;++a)if(t[169][a].charCodeAt(0)!==65533){r[t[169][a]]=43264+a;e[43264+a]=t[169][a]}t[170]="�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split("");for(a=0;a!=t[170].length;++a)if(t[170][a].charCodeAt(0)!==65533){r[t[170][a]]=43520+a;e[43520+a]=t[170][a]}t[171]="�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split("");for(a=0;a!=t[171].length;++a)if(t[171][a].charCodeAt(0)!==65533){r[t[171][a]]=43776+a;e[43776+a]=t[171][a]}t[172]="�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");for(a=0;a!=t[172].length;++a)if(t[172][a].charCodeAt(0)!==65533){r[t[172][a]]=44032+a;e[44032+a]=t[172][a]}t[173]="�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������".split("");for(a=0;a!=t[173].length;++a)if(t[173][a].charCodeAt(0)!==65533){r[t[173][a]]=44288+a;e[44288+a]=t[173][a]}t[174]="�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������".split("");for(a=0;a!=t[174].length;++a)if(t[174][a].charCodeAt(0)!==65533){r[t[174][a]]=44544+a;e[44544+a]=t[174][a]}t[175]="�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������".split("");for(a=0;a!=t[175].length;++a)if(t[175][a].charCodeAt(0)!==65533){r[t[175][a]]=44800+a;e[44800+a]=t[175][a]}t[176]="�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�".split("");for(a=0;a!=t[176].length;++a)if(t[176][a].charCodeAt(0)!==65533){r[t[176][a]]=45056+a;e[45056+a]=t[176][a]}t[177]="�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�".split("");for(a=0;a!=t[177].length;++a)if(t[177][a].charCodeAt(0)!==65533){r[t[177][a]]=45312+a;e[45312+a]=t[177][a]}t[178]="�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�".split("");for(a=0;a!=t[178].length;++a)if(t[178][a].charCodeAt(0)!==65533){r[t[178][a]]=45568+a;e[45568+a]=t[178][a]}t[179]="�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�".split("");for(a=0;a!=t[179].length;++a)if(t[179][a].charCodeAt(0)!==65533){r[t[179][a]]=45824+a;e[45824+a]=t[179][a]}t[180]="�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�".split("");for(a=0;a!=t[180].length;++a)if(t[180][a].charCodeAt(0)!==65533){r[t[180][a]]=46080+a;e[46080+a]=t[180][a]}t[181]="�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�".split("");for(a=0;a!=t[181].length;++a)if(t[181][a].charCodeAt(0)!==65533){r[t[181][a]]=46336+a;e[46336+a]=t[181][a]}t[182]="�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�".split("");for(a=0;a!=t[182].length;++a)if(t[182][a].charCodeAt(0)!==65533){r[t[182][a]]=46592+a;e[46592+a]=t[182][a]}t[183]="�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�".split("");for(a=0;a!=t[183].length;++a)if(t[183][a].charCodeAt(0)!==65533){r[t[183][a]]=46848+a;e[46848+a]=t[183][a]}t[184]="�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�".split("");for(a=0;a!=t[184].length;++a)if(t[184][a].charCodeAt(0)!==65533){r[t[184][a]]=47104+a;e[47104+a]=t[184][a]}t[185]="�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�".split("");for(a=0;a!=t[185].length;++a)if(t[185][a].charCodeAt(0)!==65533){r[t[185][a]]=47360+a;e[47360+a]=t[185][a]}t[186]="�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�".split("");for(a=0;a!=t[186].length;++a)if(t[186][a].charCodeAt(0)!==65533){r[t[186][a]]=47616+a;e[47616+a]=t[186][a]}t[187]="�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�".split("");for(a=0;a!=t[187].length;++a)if(t[187][a].charCodeAt(0)!==65533){r[t[187][a]]=47872+a;e[47872+a]=t[187][a]}t[188]="�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�".split("");for(a=0;a!=t[188].length;++a)if(t[188][a].charCodeAt(0)!==65533){r[t[188][a]]=48128+a;e[48128+a]=t[188][a]}t[189]="�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�".split("");for(a=0;a!=t[189].length;++a)if(t[189][a].charCodeAt(0)!==65533){r[t[189][a]]=48384+a;e[48384+a]=t[189][a]}t[190]="�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�".split("");for(a=0;a!=t[190].length;++a)if(t[190][a].charCodeAt(0)!==65533){r[t[190][a]]=48640+a;e[48640+a]=t[190][a]}t[191]="�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�".split("");for(a=0;a!=t[191].length;++a)if(t[191][a].charCodeAt(0)!==65533){r[t[191][a]]=48896+a;e[48896+a]=t[191][a]}t[192]="�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�".split("");for(a=0;a!=t[192].length;++a)if(t[192][a].charCodeAt(0)!==65533){r[t[192][a]]=49152+a;e[49152+a]=t[192][a]}t[193]="�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�".split("");for(a=0;a!=t[193].length;++a)if(t[193][a].charCodeAt(0)!==65533){r[t[193][a]]=49408+a;e[49408+a]=t[193][a]}t[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split("");for(a=0;a!=t[194].length;++a)if(t[194][a].charCodeAt(0)!==65533){r[t[194][a]]=49664+a;e[49664+a]=t[194][a]}t[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split("");for(a=0;a!=t[195].length;++a)if(t[195][a].charCodeAt(0)!==65533){r[t[195][a]]=49920+a;e[49920+a]=t[195][a]}t[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split("");for(a=0;a!=t[196].length;++a)if(t[196][a].charCodeAt(0)!==65533){r[t[196][a]]=50176+a;e[50176+a]=t[196][a]}t[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split("");for(a=0;a!=t[197].length;++a)if(t[197][a].charCodeAt(0)!==65533){r[t[197][a]]=50432+a;e[50432+a]=t[197][a]}t[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split("");for(a=0;a!=t[198].length;++a)if(t[198][a].charCodeAt(0)!==65533){r[t[198][a]]=50688+a;e[50688+a]=t[198][a]}t[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�".split("");for(a=0;a!=t[199].length;++a)if(t[199][a].charCodeAt(0)!==65533){r[t[199][a]]=50944+a;e[50944+a]=t[199][a]}t[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�".split("");for(a=0;a!=t[200].length;++a)if(t[200][a].charCodeAt(0)!==65533){r[t[200][a]]=51200+a;e[51200+a]=t[200][a]}t[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�".split("");for(a=0;a!=t[202].length;++a)if(t[202][a].charCodeAt(0)!==65533){r[t[202][a]]=51712+a;e[51712+a]=t[202][a]}t[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�".split("");for(a=0;a!=t[203].length;++a)if(t[203][a].charCodeAt(0)!==65533){r[t[203][a]]=51968+a;e[51968+a]=t[203][a]}t[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�".split("");for(a=0;a!=t[204].length;++a)if(t[204][a].charCodeAt(0)!==65533){r[t[204][a]]=52224+a;e[52224+a]=t[204][a]}t[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�".split("");for(a=0;a!=t[205].length;++a)if(t[205][a].charCodeAt(0)!==65533){r[t[205][a]]=52480+a;e[52480+a]=t[205][a]}t[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�".split("");for(a=0;a!=t[206].length;++a)if(t[206][a].charCodeAt(0)!==65533){r[t[206][a]]=52736+a;e[52736+a]=t[206][a]}t[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�".split("");for(a=0;a!=t[207].length;++a)if(t[207][a].charCodeAt(0)!==65533){r[t[207][a]]=52992+a;e[52992+a]=t[207][a]}t[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�".split("");for(a=0;a!=t[208].length;++a)if(t[208][a].charCodeAt(0)!==65533){r[t[208][a]]=53248+a;e[53248+a]=t[208][a]}t[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�".split("");for(a=0;a!=t[209].length;++a)if(t[209][a].charCodeAt(0)!==65533){r[t[209][a]]=53504+a;e[53504+a]=t[209][a]}t[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�".split("");for(a=0;a!=t[210].length;++a)if(t[210][a].charCodeAt(0)!==65533){r[t[210][a]]=53760+a;e[53760+a]=t[210][a]}t[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�".split("");for(a=0;a!=t[211].length;++a)if(t[211][a].charCodeAt(0)!==65533){r[t[211][a]]=54016+a;e[54016+a]=t[211][a]}t[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�".split("");for(a=0;a!=t[212].length;++a)if(t[212][a].charCodeAt(0)!==65533){r[t[212][a]]=54272+a;e[54272+a]=t[212][a]}t[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�".split("");for(a=0;a!=t[213].length;++a)if(t[213][a].charCodeAt(0)!==65533){r[t[213][a]]=54528+a;e[54528+a]=t[213][a]}t[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�".split("");for(a=0;a!=t[214].length;++a)if(t[214][a].charCodeAt(0)!==65533){r[t[214][a]]=54784+a;e[54784+a]=t[214][a]}t[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�".split("");for(a=0;a!=t[215].length;++a)if(t[215][a].charCodeAt(0)!==65533){r[t[215][a]]=55040+a;e[55040+a]=t[215][a]}t[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�".split("");for(a=0;a!=t[216].length;++a)if(t[216][a].charCodeAt(0)!==65533){r[t[216][a]]=55296+a;e[55296+a]=t[216][a]}t[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�".split("");for(a=0;a!=t[217].length;++a)if(t[217][a].charCodeAt(0)!==65533){r[t[217][a]]=55552+a;e[55552+a]=t[217][a]}t[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�".split("");for(a=0;a!=t[218].length;++a)if(t[218][a].charCodeAt(0)!==65533){r[t[218][a]]=55808+a;e[55808+a]=t[218][a]}t[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�".split("");for(a=0;a!=t[219].length;++a)if(t[219][a].charCodeAt(0)!==65533){r[t[219][a]]=56064+a;e[56064+a]=t[219][a]}t[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�".split("");for(a=0;a!=t[220].length;++a)if(t[220][a].charCodeAt(0)!==65533){r[t[220][a]]=56320+a;e[56320+a]=t[220][a]}t[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�".split("");for(a=0;a!=t[221].length;++a)if(t[221][a].charCodeAt(0)!==65533){r[t[221][a]]=56576+a;e[56576+a]=t[221][a]}t[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�".split("");for(a=0;a!=t[222].length;++a)if(t[222][a].charCodeAt(0)!==65533){r[t[222][a]]=56832+a;e[56832+a]=t[222][a]}t[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�".split("");for(a=0;a!=t[223].length;++a)if(t[223][a].charCodeAt(0)!==65533){r[t[223][a]]=57088+a;e[57088+a]=t[223][a]}t[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�".split("");for(a=0;a!=t[224].length;++a)if(t[224][a].charCodeAt(0)!==65533){r[t[224][a]]=57344+a;e[57344+a]=t[224][a]}t[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�".split("");for(a=0;a!=t[225].length;++a)if(t[225][a].charCodeAt(0)!==65533){r[t[225][a]]=57600+a;e[57600+a]=t[225][a]}t[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�".split("");for(a=0;a!=t[226].length;++a)if(t[226][a].charCodeAt(0)!==65533){r[t[226][a]]=57856+a;e[57856+a]=t[226][a]}t[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�".split("");for(a=0;a!=t[227].length;++a)if(t[227][a].charCodeAt(0)!==65533){r[t[227][a]]=58112+a;e[58112+a]=t[227][a]}t[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�".split("");for(a=0;a!=t[228].length;++a)if(t[228][a].charCodeAt(0)!==65533){r[t[228][a]]=58368+a;e[58368+a]=t[228][a]}t[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�".split("");for(a=0;a!=t[229].length;++a)if(t[229][a].charCodeAt(0)!==65533){r[t[229][a]]=58624+a;e[58624+a]=t[229][a]}t[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�".split("");for(a=0;a!=t[230].length;++a)if(t[230][a].charCodeAt(0)!==65533){r[t[230][a]]=58880+a;e[58880+a]=t[230][a]}t[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�".split("");for(a=0;a!=t[231].length;++a)if(t[231][a].charCodeAt(0)!==65533){r[t[231][a]]=59136+a;e[59136+a]=t[231][a]}t[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�".split("");for(a=0;a!=t[232].length;++a)if(t[232][a].charCodeAt(0)!==65533){r[t[232][a]]=59392+a;e[59392+a]=t[232][a]}t[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�".split("");for(a=0;a!=t[233].length;++a)if(t[233][a].charCodeAt(0)!==65533){r[t[233][a]]=59648+a;e[59648+a]=t[233][a]}t[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�".split("");for(a=0;a!=t[234].length;++a)if(t[234][a].charCodeAt(0)!==65533){r[t[234][a]]=59904+a;e[59904+a]=t[234][a]}t[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�".split("");for(a=0;a!=t[235].length;++a)if(t[235][a].charCodeAt(0)!==65533){r[t[235][a]]=60160+a;e[60160+a]=t[235][a]}t[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�".split("");for(a=0;a!=t[236].length;++a)if(t[236][a].charCodeAt(0)!==65533){r[t[236][a]]=60416+a;e[60416+a]=t[236][a]}t[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�".split("");for(a=0;a!=t[237].length;++a)if(t[237][a].charCodeAt(0)!==65533){r[t[237][a]]=60672+a;e[60672+a]=t[237][a]}t[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�".split(""); for(a=0;a!=t[238].length;++a)if(t[238][a].charCodeAt(0)!==65533){r[t[238][a]]=60928+a;e[60928+a]=t[238][a]}t[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�".split("");for(a=0;a!=t[239].length;++a)if(t[239][a].charCodeAt(0)!==65533){r[t[239][a]]=61184+a;e[61184+a]=t[239][a]}t[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�".split("");for(a=0;a!=t[240].length;++a)if(t[240][a].charCodeAt(0)!==65533){r[t[240][a]]=61440+a;e[61440+a]=t[240][a]}t[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�".split("");for(a=0;a!=t[241].length;++a)if(t[241][a].charCodeAt(0)!==65533){r[t[241][a]]=61696+a;e[61696+a]=t[241][a]}t[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�".split("");for(a=0;a!=t[242].length;++a)if(t[242][a].charCodeAt(0)!==65533){r[t[242][a]]=61952+a;e[61952+a]=t[242][a]}t[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�".split("");for(a=0;a!=t[243].length;++a)if(t[243][a].charCodeAt(0)!==65533){r[t[243][a]]=62208+a;e[62208+a]=t[243][a]}t[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�".split("");for(a=0;a!=t[244].length;++a)if(t[244][a].charCodeAt(0)!==65533){r[t[244][a]]=62464+a;e[62464+a]=t[244][a]}t[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�".split("");for(a=0;a!=t[245].length;++a)if(t[245][a].charCodeAt(0)!==65533){r[t[245][a]]=62720+a;e[62720+a]=t[245][a]}t[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�".split("");for(a=0;a!=t[246].length;++a)if(t[246][a].charCodeAt(0)!==65533){r[t[246][a]]=62976+a;e[62976+a]=t[246][a]}t[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�".split("");for(a=0;a!=t[247].length;++a)if(t[247][a].charCodeAt(0)!==65533){r[t[247][a]]=63232+a;e[63232+a]=t[247][a]}t[248]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�".split("");for(a=0;a!=t[248].length;++a)if(t[248][a].charCodeAt(0)!==65533){r[t[248][a]]=63488+a;e[63488+a]=t[248][a]}t[249]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�".split("");for(a=0;a!=t[249].length;++a)if(t[249][a].charCodeAt(0)!==65533){r[t[249][a]]=63744+a;e[63744+a]=t[249][a]}t[250]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�".split("");for(a=0;a!=t[250].length;++a)if(t[250][a].charCodeAt(0)!==65533){r[t[250][a]]=64e3+a;e[64e3+a]=t[250][a]}t[251]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�".split("");for(a=0;a!=t[251].length;++a)if(t[251][a].charCodeAt(0)!==65533){r[t[251][a]]=64256+a;e[64256+a]=t[251][a]}t[252]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�".split("");for(a=0;a!=t[252].length;++a)if(t[252][a].charCodeAt(0)!==65533){r[t[252][a]]=64512+a;e[64512+a]=t[252][a]}t[253]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�".split("");for(a=0;a!=t[253].length;++a)if(t[253][a].charCodeAt(0)!==65533){r[t[253][a]]=64768+a;e[64768+a]=t[253][a]}return{enc:r,dec:e}}();cptable[950]=function(){var e=[],r={},t=[],a;t[0]="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split("");for(a=0;a!=t[0].length;++a)if(t[0][a].charCodeAt(0)!==65533){r[t[0][a]]=0+a;e[0+a]=t[0][a]}t[161]="���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�".split("");for(a=0;a!=t[161].length;++a)if(t[161][a].charCodeAt(0)!==65533){r[t[161][a]]=41216+a;e[41216+a]=t[161][a]}t[162]="����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�".split("");for(a=0;a!=t[162].length;++a)if(t[162][a].charCodeAt(0)!==65533){r[t[162][a]]=41472+a;e[41472+a]=t[162][a]}t[163]="����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������".split("");for(a=0;a!=t[163].length;++a)if(t[163][a].charCodeAt(0)!==65533){r[t[163][a]]=41728+a;e[41728+a]=t[163][a]}t[164]="����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�".split("");for(a=0;a!=t[164].length;++a)if(t[164][a].charCodeAt(0)!==65533){r[t[164][a]]=41984+a;e[41984+a]=t[164][a]}t[165]="����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�".split("");for(a=0;a!=t[165].length;++a)if(t[165][a].charCodeAt(0)!==65533){r[t[165][a]]=42240+a;e[42240+a]=t[165][a]}t[166]="����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�".split("");for(a=0;a!=t[166].length;++a)if(t[166][a].charCodeAt(0)!==65533){r[t[166][a]]=42496+a;e[42496+a]=t[166][a]}t[167]="����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�".split("");for(a=0;a!=t[167].length;++a)if(t[167][a].charCodeAt(0)!==65533){r[t[167][a]]=42752+a;e[42752+a]=t[167][a]}t[168]="����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�".split("");for(a=0;a!=t[168].length;++a)if(t[168][a].charCodeAt(0)!==65533){r[t[168][a]]=43008+a;e[43008+a]=t[168][a]}t[169]="����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�".split("");for(a=0;a!=t[169].length;++a)if(t[169][a].charCodeAt(0)!==65533){r[t[169][a]]=43264+a;e[43264+a]=t[169][a]}t[170]="����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�".split("");for(a=0;a!=t[170].length;++a)if(t[170][a].charCodeAt(0)!==65533){r[t[170][a]]=43520+a;e[43520+a]=t[170][a]}t[171]="����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�".split("");for(a=0;a!=t[171].length;++a)if(t[171][a].charCodeAt(0)!==65533){r[t[171][a]]=43776+a;e[43776+a]=t[171][a]}t[172]="����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�".split("");for(a=0;a!=t[172].length;++a)if(t[172][a].charCodeAt(0)!==65533){r[t[172][a]]=44032+a;e[44032+a]=t[172][a]}t[173]="����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�".split("");for(a=0;a!=t[173].length;++a)if(t[173][a].charCodeAt(0)!==65533){r[t[173][a]]=44288+a;e[44288+a]=t[173][a]}t[174]="����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�".split("");for(a=0;a!=t[174].length;++a)if(t[174][a].charCodeAt(0)!==65533){r[t[174][a]]=44544+a;e[44544+a]=t[174][a]}t[175]="����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�".split("");for(a=0;a!=t[175].length;++a)if(t[175][a].charCodeAt(0)!==65533){r[t[175][a]]=44800+a;e[44800+a]=t[175][a]}t[176]="����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�".split("");for(a=0;a!=t[176].length;++a)if(t[176][a].charCodeAt(0)!==65533){r[t[176][a]]=45056+a;e[45056+a]=t[176][a]}t[177]="����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�".split("");for(a=0;a!=t[177].length;++a)if(t[177][a].charCodeAt(0)!==65533){r[t[177][a]]=45312+a;e[45312+a]=t[177][a]}t[178]="����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�".split("");for(a=0;a!=t[178].length;++a)if(t[178][a].charCodeAt(0)!==65533){r[t[178][a]]=45568+a;e[45568+a]=t[178][a]}t[179]="����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�".split("");for(a=0;a!=t[179].length;++a)if(t[179][a].charCodeAt(0)!==65533){r[t[179][a]]=45824+a;e[45824+a]=t[179][a]}t[180]="����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�".split("");for(a=0;a!=t[180].length;++a)if(t[180][a].charCodeAt(0)!==65533){r[t[180][a]]=46080+a;e[46080+a]=t[180][a]}t[181]="����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�".split("");for(a=0;a!=t[181].length;++a)if(t[181][a].charCodeAt(0)!==65533){r[t[181][a]]=46336+a;e[46336+a]=t[181][a]}t[182]="����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�".split("");for(a=0;a!=t[182].length;++a)if(t[182][a].charCodeAt(0)!==65533){r[t[182][a]]=46592+a;e[46592+a]=t[182][a]}t[183]="����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�".split("");for(a=0;a!=t[183].length;++a)if(t[183][a].charCodeAt(0)!==65533){r[t[183][a]]=46848+a;e[46848+a]=t[183][a]}t[184]="����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�".split("");for(a=0;a!=t[184].length;++a)if(t[184][a].charCodeAt(0)!==65533){r[t[184][a]]=47104+a;e[47104+a]=t[184][a]}t[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split("");for(a=0;a!=t[185].length;++a)if(t[185][a].charCodeAt(0)!==65533){r[t[185][a]]=47360+a;e[47360+a]=t[185][a]}t[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split("");for(a=0;a!=t[186].length;++a)if(t[186][a].charCodeAt(0)!==65533){r[t[186][a]]=47616+a;e[47616+a]=t[186][a]}t[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split("");for(a=0;a!=t[187].length;++a)if(t[187][a].charCodeAt(0)!==65533){r[t[187][a]]=47872+a;e[47872+a]=t[187][a]}t[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split("");for(a=0;a!=t[188].length;++a)if(t[188][a].charCodeAt(0)!==65533){r[t[188][a]]=48128+a;e[48128+a]=t[188][a]}t[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split("");for(a=0;a!=t[189].length;++a)if(t[189][a].charCodeAt(0)!==65533){r[t[189][a]]=48384+a;e[48384+a]=t[189][a]}t[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�".split("");for(a=0;a!=t[190].length;++a)if(t[190][a].charCodeAt(0)!==65533){r[t[190][a]]=48640+a;e[48640+a]=t[190][a]}t[191]="����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�".split("");for(a=0;a!=t[191].length;++a)if(t[191][a].charCodeAt(0)!==65533){r[t[191][a]]=48896+a;e[48896+a]=t[191][a]}t[192]="����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�".split("");for(a=0;a!=t[192].length;++a)if(t[192][a].charCodeAt(0)!==65533){r[t[192][a]]=49152+a;e[49152+a]=t[192][a]}t[193]="����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�".split("");for(a=0;a!=t[193].length;++a)if(t[193][a].charCodeAt(0)!==65533){r[t[193][a]]=49408+a;e[49408+a]=t[193][a]}t[194]="����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�".split("");for(a=0;a!=t[194].length;++a)if(t[194][a].charCodeAt(0)!==65533){r[t[194][a]]=49664+a;e[49664+a]=t[194][a]}t[195]="����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�".split("");for(a=0;a!=t[195].length;++a)if(t[195][a].charCodeAt(0)!==65533){r[t[195][a]]=49920+a;e[49920+a]=t[195][a]}t[196]="����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�".split("");for(a=0;a!=t[196].length;++a)if(t[196][a].charCodeAt(0)!==65533){r[t[196][a]]=50176+a;e[50176+a]=t[196][a]}t[197]="����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�".split("");for(a=0;a!=t[197].length;++a)if(t[197][a].charCodeAt(0)!==65533){r[t[197][a]]=50432+a;e[50432+a]=t[197][a]}t[198]="����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������".split("");for(a=0;a!=t[198].length;++a)if(t[198][a].charCodeAt(0)!==65533){r[t[198][a]]=50688+a;e[50688+a]=t[198][a]}t[201]="����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�".split("");for(a=0;a!=t[201].length;++a)if(t[201][a].charCodeAt(0)!==65533){r[t[201][a]]=51456+a;e[51456+a]=t[201][a]}t[202]="����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�".split("");for(a=0;a!=t[202].length;++a)if(t[202][a].charCodeAt(0)!==65533){r[t[202][a]]=51712+a;e[51712+a]=t[202][a]}t[203]="����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�".split("");for(a=0;a!=t[203].length;++a)if(t[203][a].charCodeAt(0)!==65533){r[t[203][a]]=51968+a;e[51968+a]=t[203][a]}t[204]="����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�".split("");for(a=0;a!=t[204].length;++a)if(t[204][a].charCodeAt(0)!==65533){r[t[204][a]]=52224+a;e[52224+a]=t[204][a]}t[205]="����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�".split("");for(a=0;a!=t[205].length;++a)if(t[205][a].charCodeAt(0)!==65533){r[t[205][a]]=52480+a;e[52480+a]=t[205][a]}t[206]="����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�".split("");for(a=0;a!=t[206].length;++a)if(t[206][a].charCodeAt(0)!==65533){r[t[206][a]]=52736+a;e[52736+a]=t[206][a]}t[207]="����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�".split("");for(a=0;a!=t[207].length;++a)if(t[207][a].charCodeAt(0)!==65533){r[t[207][a]]=52992+a;e[52992+a]=t[207][a]}t[208]="����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�".split("");for(a=0;a!=t[208].length;++a)if(t[208][a].charCodeAt(0)!==65533){r[t[208][a]]=53248+a;e[53248+a]=t[208][a]}t[209]="����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�".split("");for(a=0;a!=t[209].length;++a)if(t[209][a].charCodeAt(0)!==65533){r[t[209][a]]=53504+a;e[53504+a]=t[209][a]}t[210]="����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�".split("");for(a=0;a!=t[210].length;++a)if(t[210][a].charCodeAt(0)!==65533){r[t[210][a]]=53760+a;e[53760+a]=t[210][a]}t[211]="����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�".split("");for(a=0;a!=t[211].length;++a)if(t[211][a].charCodeAt(0)!==65533){r[t[211][a]]=54016+a;e[54016+a]=t[211][a]}t[212]="����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�".split("");for(a=0;a!=t[212].length;++a)if(t[212][a].charCodeAt(0)!==65533){r[t[212][a]]=54272+a;e[54272+a]=t[212][a]}t[213]="����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�".split("");for(a=0;a!=t[213].length;++a)if(t[213][a].charCodeAt(0)!==65533){r[t[213][a]]=54528+a;e[54528+a]=t[213][a]}t[214]="����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�".split("");for(a=0;a!=t[214].length;++a)if(t[214][a].charCodeAt(0)!==65533){r[t[214][a]]=54784+a;e[54784+a]=t[214][a]}t[215]="����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�".split("");for(a=0;a!=t[215].length;++a)if(t[215][a].charCodeAt(0)!==65533){r[t[215][a]]=55040+a;e[55040+a]=t[215][a]}t[216]="����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�".split("");for(a=0;a!=t[216].length;++a)if(t[216][a].charCodeAt(0)!==65533){r[t[216][a]]=55296+a;e[55296+a]=t[216][a]}t[217]="����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�".split("");for(a=0;a!=t[217].length;++a)if(t[217][a].charCodeAt(0)!==65533){r[t[217][a]]=55552+a;e[55552+a]=t[217][a]}t[218]="����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�".split("");for(a=0;a!=t[218].length;++a)if(t[218][a].charCodeAt(0)!==65533){r[t[218][a]]=55808+a;e[55808+a]=t[218][a]}t[219]="����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�".split("");for(a=0;a!=t[219].length;++a)if(t[219][a].charCodeAt(0)!==65533){r[t[219][a]]=56064+a;e[56064+a]=t[219][a]}t[220]="����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�".split("");for(a=0;a!=t[220].length;++a)if(t[220][a].charCodeAt(0)!==65533){r[t[220][a]]=56320+a;e[56320+a]=t[220][a]}t[221]="����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�".split("");for(a=0;a!=t[221].length;++a)if(t[221][a].charCodeAt(0)!==65533){r[t[221][a]]=56576+a;e[56576+a]=t[221][a]}t[222]="����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�".split("");for(a=0;a!=t[222].length;++a)if(t[222][a].charCodeAt(0)!==65533){r[t[222][a]]=56832+a;e[56832+a]=t[222][a]}t[223]="����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�".split("");for(a=0;a!=t[223].length;++a)if(t[223][a].charCodeAt(0)!==65533){r[t[223][a]]=57088+a;e[57088+a]=t[223][a]}t[224]="����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�".split("");for(a=0;a!=t[224].length;++a)if(t[224][a].charCodeAt(0)!==65533){r[t[224][a]]=57344+a;e[57344+a]=t[224][a]}t[225]="����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�".split("");for(a=0;a!=t[225].length;++a)if(t[225][a].charCodeAt(0)!==65533){r[t[225][a]]=57600+a;e[57600+a]=t[225][a]}t[226]="����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�".split("");for(a=0;a!=t[226].length;++a)if(t[226][a].charCodeAt(0)!==65533){r[t[226][a]]=57856+a;e[57856+a]=t[226][a]}t[227]="����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�".split("");for(a=0;a!=t[227].length;++a)if(t[227][a].charCodeAt(0)!==65533){r[t[227][a]]=58112+a;e[58112+a]=t[227][a]}t[228]="����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�".split("");for(a=0;a!=t[228].length;++a)if(t[228][a].charCodeAt(0)!==65533){r[t[228][a]]=58368+a;e[58368+a]=t[228][a]}t[229]="����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�".split("");for(a=0;a!=t[229].length;++a)if(t[229][a].charCodeAt(0)!==65533){r[t[229][a]]=58624+a;e[58624+a]=t[229][a]}t[230]="����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�".split(""); for(a=0;a!=t[230].length;++a)if(t[230][a].charCodeAt(0)!==65533){r[t[230][a]]=58880+a;e[58880+a]=t[230][a]}t[231]="����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�".split("");for(a=0;a!=t[231].length;++a)if(t[231][a].charCodeAt(0)!==65533){r[t[231][a]]=59136+a;e[59136+a]=t[231][a]}t[232]="����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�".split("");for(a=0;a!=t[232].length;++a)if(t[232][a].charCodeAt(0)!==65533){r[t[232][a]]=59392+a;e[59392+a]=t[232][a]}t[233]="����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�".split("");for(a=0;a!=t[233].length;++a)if(t[233][a].charCodeAt(0)!==65533){r[t[233][a]]=59648+a;e[59648+a]=t[233][a]}t[234]="����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�".split("");for(a=0;a!=t[234].length;++a)if(t[234][a].charCodeAt(0)!==65533){r[t[234][a]]=59904+a;e[59904+a]=t[234][a]}t[235]="����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�".split("");for(a=0;a!=t[235].length;++a)if(t[235][a].charCodeAt(0)!==65533){r[t[235][a]]=60160+a;e[60160+a]=t[235][a]}t[236]="����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�".split("");for(a=0;a!=t[236].length;++a)if(t[236][a].charCodeAt(0)!==65533){r[t[236][a]]=60416+a;e[60416+a]=t[236][a]}t[237]="����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�".split("");for(a=0;a!=t[237].length;++a)if(t[237][a].charCodeAt(0)!==65533){r[t[237][a]]=60672+a;e[60672+a]=t[237][a]}t[238]="����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�".split("");for(a=0;a!=t[238].length;++a)if(t[238][a].charCodeAt(0)!==65533){r[t[238][a]]=60928+a;e[60928+a]=t[238][a]}t[239]="����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�".split("");for(a=0;a!=t[239].length;++a)if(t[239][a].charCodeAt(0)!==65533){r[t[239][a]]=61184+a;e[61184+a]=t[239][a]}t[240]="����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�".split("");for(a=0;a!=t[240].length;++a)if(t[240][a].charCodeAt(0)!==65533){r[t[240][a]]=61440+a;e[61440+a]=t[240][a]}t[241]="����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�".split("");for(a=0;a!=t[241].length;++a)if(t[241][a].charCodeAt(0)!==65533){r[t[241][a]]=61696+a;e[61696+a]=t[241][a]}t[242]="����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�".split("");for(a=0;a!=t[242].length;++a)if(t[242][a].charCodeAt(0)!==65533){r[t[242][a]]=61952+a;e[61952+a]=t[242][a]}t[243]="����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split("");for(a=0;a!=t[243].length;++a)if(t[243][a].charCodeAt(0)!==65533){r[t[243][a]]=62208+a;e[62208+a]=t[243][a]}t[244]="����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split("");for(a=0;a!=t[244].length;++a)if(t[244][a].charCodeAt(0)!==65533){r[t[244][a]]=62464+a;e[62464+a]=t[244][a]}t[245]="����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split("");for(a=0;a!=t[245].length;++a)if(t[245][a].charCodeAt(0)!==65533){r[t[245][a]]=62720+a;e[62720+a]=t[245][a]}t[246]="����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split("");for(a=0;a!=t[246].length;++a)if(t[246][a].charCodeAt(0)!==65533){r[t[246][a]]=62976+a;e[62976+a]=t[246][a]}t[247]="����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split("");for(a=0;a!=t[247].length;++a)if(t[247][a].charCodeAt(0)!==65533){r[t[247][a]]=63232+a;e[63232+a]=t[247][a]}t[248]="����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split("");for(a=0;a!=t[248].length;++a)if(t[248][a].charCodeAt(0)!==65533){r[t[248][a]]=63488+a;e[63488+a]=t[248][a]}t[249]="����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split("");for(a=0;a!=t[249].length;++a)if(t[249][a].charCodeAt(0)!==65533){r[t[249][a]]=63744+a;e[63744+a]=t[249][a]}return{enc:r,dec:e}}();cptable[1250]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1251]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1252]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1253]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1254]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1255]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1256]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1257]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1258]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[1e4]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[10006]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[10007]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[10008]=function(){var e=[],r={},t=[],a;t[0]="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€���������������������������������������������������������������������������������������".split("");for(a=0;a!=t[0].length;++a)if(t[0][a].charCodeAt(0)!==65533){r[t[0][a]]=0+a;e[0+a]=t[0][a]}t[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。・ˉˇ¨〃々―~�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split("");for(a=0;a!=t[161].length;++a)if(t[161][a].charCodeAt(0)!==65533){r[t[161][a]]=41216+a;e[41216+a]=t[161][a]}t[162]="���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split("");for(a=0;a!=t[162].length;++a)if(t[162][a].charCodeAt(0)!==65533){r[t[162][a]]=41472+a;e[41472+a]=t[162][a]}t[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split("");for(a=0;a!=t[163].length;++a)if(t[163][a].charCodeAt(0)!==65533){r[t[163][a]]=41728+a;e[41728+a]=t[163][a]}t[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split("");for(a=0;a!=t[164].length;++a)if(t[164][a].charCodeAt(0)!==65533){r[t[164][a]]=41984+a;e[41984+a]=t[164][a]}t[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split("");for(a=0;a!=t[165].length;++a)if(t[165][a].charCodeAt(0)!==65533){r[t[165][a]]=42240+a;e[42240+a]=t[165][a]}t[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������".split("");for(a=0;a!=t[166].length;++a)if(t[166][a].charCodeAt(0)!==65533){r[t[166][a]]=42496+a;e[42496+a]=t[166][a]}t[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");for(a=0;a!=t[167].length;++a)if(t[167][a].charCodeAt(0)!==65533){r[t[167][a]]=42752+a;e[42752+a]=t[167][a]}t[168]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split("");for(a=0;a!=t[168].length;++a)if(t[168][a].charCodeAt(0)!==65533){r[t[168][a]]=43008+a;e[43008+a]=t[168][a]}t[169]="��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split("");for(a=0;a!=t[169].length;++a)if(t[169][a].charCodeAt(0)!==65533){r[t[169][a]]=43264+a;e[43264+a]=t[169][a]}t[176]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split("");for(a=0;a!=t[176].length;++a)if(t[176][a].charCodeAt(0)!==65533){r[t[176][a]]=45056+a;e[45056+a]=t[176][a]}t[177]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split("");for(a=0;a!=t[177].length;++a)if(t[177][a].charCodeAt(0)!==65533){r[t[177][a]]=45312+a;e[45312+a]=t[177][a]}t[178]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split("");for(a=0;a!=t[178].length;++a)if(t[178][a].charCodeAt(0)!==65533){r[t[178][a]]=45568+a;e[45568+a]=t[178][a]}t[179]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split("");for(a=0;a!=t[179].length;++a)if(t[179][a].charCodeAt(0)!==65533){r[t[179][a]]=45824+a;e[45824+a]=t[179][a]}t[180]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split("");for(a=0;a!=t[180].length;++a)if(t[180][a].charCodeAt(0)!==65533){r[t[180][a]]=46080+a;e[46080+a]=t[180][a]}t[181]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split("");for(a=0;a!=t[181].length;++a)if(t[181][a].charCodeAt(0)!==65533){r[t[181][a]]=46336+a;e[46336+a]=t[181][a]}t[182]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split("");for(a=0;a!=t[182].length;++a)if(t[182][a].charCodeAt(0)!==65533){r[t[182][a]]=46592+a;e[46592+a]=t[182][a]}t[183]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split("");for(a=0;a!=t[183].length;++a)if(t[183][a].charCodeAt(0)!==65533){r[t[183][a]]=46848+a;e[46848+a]=t[183][a]}t[184]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split("");for(a=0;a!=t[184].length;++a)if(t[184][a].charCodeAt(0)!==65533){r[t[184][a]]=47104+a;e[47104+a]=t[184][a]}t[185]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split("");for(a=0;a!=t[185].length;++a)if(t[185][a].charCodeAt(0)!==65533){r[t[185][a]]=47360+a;e[47360+a]=t[185][a]}t[186]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split("");for(a=0;a!=t[186].length;++a)if(t[186][a].charCodeAt(0)!==65533){r[t[186][a]]=47616+a;e[47616+a]=t[186][a]}t[187]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split("");for(a=0;a!=t[187].length;++a)if(t[187][a].charCodeAt(0)!==65533){r[t[187][a]]=47872+a;e[47872+a]=t[187][a]}t[188]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split("");for(a=0;a!=t[188].length;++a)if(t[188][a].charCodeAt(0)!==65533){r[t[188][a]]=48128+a;e[48128+a]=t[188][a]}t[189]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split("");for(a=0;a!=t[189].length;++a)if(t[189][a].charCodeAt(0)!==65533){r[t[189][a]]=48384+a;e[48384+a]=t[189][a]}t[190]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split("");for(a=0;a!=t[190].length;++a)if(t[190][a].charCodeAt(0)!==65533){r[t[190][a]]=48640+a;e[48640+a]=t[190][a]}t[191]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split("");for(a=0;a!=t[191].length;++a)if(t[191][a].charCodeAt(0)!==65533){r[t[191][a]]=48896+a;e[48896+a]=t[191][a]}t[192]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split("");for(a=0;a!=t[192].length;++a)if(t[192][a].charCodeAt(0)!==65533){r[t[192][a]]=49152+a;e[49152+a]=t[192][a]}t[193]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split("");for(a=0;a!=t[193].length;++a)if(t[193][a].charCodeAt(0)!==65533){r[t[193][a]]=49408+a;e[49408+a]=t[193][a]}t[194]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split("");for(a=0;a!=t[194].length;++a)if(t[194][a].charCodeAt(0)!==65533){r[t[194][a]]=49664+a;e[49664+a]=t[194][a]}t[195]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split("");for(a=0;a!=t[195].length;++a)if(t[195][a].charCodeAt(0)!==65533){r[t[195][a]]=49920+a;e[49920+a]=t[195][a]}t[196]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split("");for(a=0;a!=t[196].length;++a)if(t[196][a].charCodeAt(0)!==65533){r[t[196][a]]=50176+a;e[50176+a]=t[196][a]}t[197]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split("");for(a=0;a!=t[197].length;++a)if(t[197][a].charCodeAt(0)!==65533){r[t[197][a]]=50432+a;e[50432+a]=t[197][a]}t[198]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split("");for(a=0;a!=t[198].length;++a)if(t[198][a].charCodeAt(0)!==65533){r[t[198][a]]=50688+a;e[50688+a]=t[198][a]}t[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split("");for(a=0;a!=t[199].length;++a)if(t[199][a].charCodeAt(0)!==65533){r[t[199][a]]=50944+a;e[50944+a]=t[199][a]}t[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split("");for(a=0;a!=t[200].length;++a)if(t[200][a].charCodeAt(0)!==65533){r[t[200][a]]=51200+a;e[51200+a]=t[200][a]}t[201]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split("");for(a=0;a!=t[201].length;++a)if(t[201][a].charCodeAt(0)!==65533){r[t[201][a]]=51456+a;e[51456+a]=t[201][a]}t[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split("");for(a=0;a!=t[202].length;++a)if(t[202][a].charCodeAt(0)!==65533){r[t[202][a]]=51712+a;e[51712+a]=t[202][a]}t[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split("");for(a=0;a!=t[203].length;++a)if(t[203][a].charCodeAt(0)!==65533){r[t[203][a]]=51968+a;e[51968+a]=t[203][a]}t[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split("");for(a=0;a!=t[204].length;++a)if(t[204][a].charCodeAt(0)!==65533){r[t[204][a]]=52224+a;e[52224+a]=t[204][a]}t[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split("");for(a=0;a!=t[205].length;++a)if(t[205][a].charCodeAt(0)!==65533){r[t[205][a]]=52480+a;e[52480+a]=t[205][a]}t[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split("");for(a=0;a!=t[206].length;++a)if(t[206][a].charCodeAt(0)!==65533){r[t[206][a]]=52736+a;e[52736+a]=t[206][a]}t[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split("");for(a=0;a!=t[207].length;++a)if(t[207][a].charCodeAt(0)!==65533){r[t[207][a]]=52992+a;e[52992+a]=t[207][a]}t[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split("");for(a=0;a!=t[208].length;++a)if(t[208][a].charCodeAt(0)!==65533){r[t[208][a]]=53248+a;e[53248+a]=t[208][a]}t[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split("");for(a=0;a!=t[209].length;++a)if(t[209][a].charCodeAt(0)!==65533){r[t[209][a]]=53504+a;e[53504+a]=t[209][a]}t[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split("");for(a=0;a!=t[210].length;++a)if(t[210][a].charCodeAt(0)!==65533){r[t[210][a]]=53760+a;e[53760+a]=t[210][a]}t[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split("");for(a=0;a!=t[211].length;++a)if(t[211][a].charCodeAt(0)!==65533){r[t[211][a]]=54016+a;e[54016+a]=t[211][a]}t[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split("");for(a=0;a!=t[212].length;++a)if(t[212][a].charCodeAt(0)!==65533){r[t[212][a]]=54272+a;e[54272+a]=t[212][a]}t[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split("");for(a=0;a!=t[213].length;++a)if(t[213][a].charCodeAt(0)!==65533){r[t[213][a]]=54528+a;e[54528+a]=t[213][a]}t[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split("");for(a=0;a!=t[214].length;++a)if(t[214][a].charCodeAt(0)!==65533){r[t[214][a]]=54784+a;e[54784+a]=t[214][a]}t[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split("");for(a=0;a!=t[215].length;++a)if(t[215][a].charCodeAt(0)!==65533){r[t[215][a]]=55040+a;e[55040+a]=t[215][a]}t[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split("");for(a=0;a!=t[216].length;++a)if(t[216][a].charCodeAt(0)!==65533){ -r[t[216][a]]=55296+a;e[55296+a]=t[216][a]}t[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split("");for(a=0;a!=t[217].length;++a)if(t[217][a].charCodeAt(0)!==65533){r[t[217][a]]=55552+a;e[55552+a]=t[217][a]}t[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split("");for(a=0;a!=t[218].length;++a)if(t[218][a].charCodeAt(0)!==65533){r[t[218][a]]=55808+a;e[55808+a]=t[218][a]}t[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split("");for(a=0;a!=t[219].length;++a)if(t[219][a].charCodeAt(0)!==65533){r[t[219][a]]=56064+a;e[56064+a]=t[219][a]}t[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split("");for(a=0;a!=t[220].length;++a)if(t[220][a].charCodeAt(0)!==65533){r[t[220][a]]=56320+a;e[56320+a]=t[220][a]}t[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split("");for(a=0;a!=t[221].length;++a)if(t[221][a].charCodeAt(0)!==65533){r[t[221][a]]=56576+a;e[56576+a]=t[221][a]}t[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split("");for(a=0;a!=t[222].length;++a)if(t[222][a].charCodeAt(0)!==65533){r[t[222][a]]=56832+a;e[56832+a]=t[222][a]}t[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split("");for(a=0;a!=t[223].length;++a)if(t[223][a].charCodeAt(0)!==65533){r[t[223][a]]=57088+a;e[57088+a]=t[223][a]}t[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split("");for(a=0;a!=t[224].length;++a)if(t[224][a].charCodeAt(0)!==65533){r[t[224][a]]=57344+a;e[57344+a]=t[224][a]}t[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split("");for(a=0;a!=t[225].length;++a)if(t[225][a].charCodeAt(0)!==65533){r[t[225][a]]=57600+a;e[57600+a]=t[225][a]}t[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split("");for(a=0;a!=t[226].length;++a)if(t[226][a].charCodeAt(0)!==65533){r[t[226][a]]=57856+a;e[57856+a]=t[226][a]}t[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split("");for(a=0;a!=t[227].length;++a)if(t[227][a].charCodeAt(0)!==65533){r[t[227][a]]=58112+a;e[58112+a]=t[227][a]}t[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split("");for(a=0;a!=t[228].length;++a)if(t[228][a].charCodeAt(0)!==65533){r[t[228][a]]=58368+a;e[58368+a]=t[228][a]}t[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split("");for(a=0;a!=t[229].length;++a)if(t[229][a].charCodeAt(0)!==65533){r[t[229][a]]=58624+a;e[58624+a]=t[229][a]}t[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split("");for(a=0;a!=t[230].length;++a)if(t[230][a].charCodeAt(0)!==65533){r[t[230][a]]=58880+a;e[58880+a]=t[230][a]}t[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split("");for(a=0;a!=t[231].length;++a)if(t[231][a].charCodeAt(0)!==65533){r[t[231][a]]=59136+a;e[59136+a]=t[231][a]}t[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split("");for(a=0;a!=t[232].length;++a)if(t[232][a].charCodeAt(0)!==65533){r[t[232][a]]=59392+a;e[59392+a]=t[232][a]}t[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split("");for(a=0;a!=t[233].length;++a)if(t[233][a].charCodeAt(0)!==65533){r[t[233][a]]=59648+a;e[59648+a]=t[233][a]}t[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split("");for(a=0;a!=t[234].length;++a)if(t[234][a].charCodeAt(0)!==65533){r[t[234][a]]=59904+a;e[59904+a]=t[234][a]}t[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split("");for(a=0;a!=t[235].length;++a)if(t[235][a].charCodeAt(0)!==65533){r[t[235][a]]=60160+a;e[60160+a]=t[235][a]}t[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split("");for(a=0;a!=t[236].length;++a)if(t[236][a].charCodeAt(0)!==65533){r[t[236][a]]=60416+a;e[60416+a]=t[236][a]}t[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split("");for(a=0;a!=t[237].length;++a)if(t[237][a].charCodeAt(0)!==65533){r[t[237][a]]=60672+a;e[60672+a]=t[237][a]}t[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split("");for(a=0;a!=t[238].length;++a)if(t[238][a].charCodeAt(0)!==65533){r[t[238][a]]=60928+a;e[60928+a]=t[238][a]}t[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split("");for(a=0;a!=t[239].length;++a)if(t[239][a].charCodeAt(0)!==65533){r[t[239][a]]=61184+a;e[61184+a]=t[239][a]}t[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split("");for(a=0;a!=t[240].length;++a)if(t[240][a].charCodeAt(0)!==65533){r[t[240][a]]=61440+a;e[61440+a]=t[240][a]}t[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split("");for(a=0;a!=t[241].length;++a)if(t[241][a].charCodeAt(0)!==65533){r[t[241][a]]=61696+a;e[61696+a]=t[241][a]}t[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split("");for(a=0;a!=t[242].length;++a)if(t[242][a].charCodeAt(0)!==65533){r[t[242][a]]=61952+a;e[61952+a]=t[242][a]}t[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split("");for(a=0;a!=t[243].length;++a)if(t[243][a].charCodeAt(0)!==65533){r[t[243][a]]=62208+a;e[62208+a]=t[243][a]}t[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split("");for(a=0;a!=t[244].length;++a)if(t[244][a].charCodeAt(0)!==65533){r[t[244][a]]=62464+a;e[62464+a]=t[244][a]}t[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split("");for(a=0;a!=t[245].length;++a)if(t[245][a].charCodeAt(0)!==65533){r[t[245][a]]=62720+a;e[62720+a]=t[245][a]}t[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split("");for(a=0;a!=t[246].length;++a)if(t[246][a].charCodeAt(0)!==65533){r[t[246][a]]=62976+a;e[62976+a]=t[246][a]}t[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split("");for(a=0;a!=t[247].length;++a)if(t[247][a].charCodeAt(0)!==65533){r[t[247][a]]=63232+a;e[63232+a]=t[247][a]}return{enc:r,dec:e}}();cptable[10029]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[10079]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[10081]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();if(typeof module!=="undefined"&&module.exports&&typeof DO_NOT_EXPORT_CODEPAGE==="undefined")module.exports=cptable;(function(e,r){"use strict";if(typeof cptable==="undefined"){if(typeof require!=="undefined"){var t=cptable;if(typeof module!=="undefined"&&module.exports&&typeof DO_NOT_EXPORT_CODEPAGE==="undefined")module.exports=r(t);else e.cptable=r(t)}else throw new Error("cptable not found")}else cptable=r(cptable)})(this,function(e){"use strict";var r={1200:"utf16le",1201:"utf16be",12000:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65000:"utf7",65001:"utf8"};var t=[874,1250,1251,1252,1253,1254,1255,1256,1e4];var a=[932,936,949,950];var n=[65001];var i={};var s={};var f={};var o={};var l=function R(e){return String.fromCharCode(e)};var c=function D(e){return e.charCodeAt(0)};var h=typeof Buffer!=="undefined";if(h){var u=1024,d=new Buffer(u);var p=function O(e){var r=new Buffer(65536);for(var t=0;t<65536;++t)r[t]=0;var a=Object.keys(e),n=a.length;for(var i=0,s=a[i];i>10&1023)];n[s++]=t[56320+(o&1023)]}}}n=n.slice(0,s)}else{n=new Buffer(a);for(i=0;i>8}return function f(e){var r=e.length,t=0,n=0;if(2*r>u){u=2*r;d=new Buffer(u)}if(Buffer.isBuffer(e)){for(t=0;t>8}return function l(e,r){var t=e.length,n=new Buffer(2*t),i=0,s=0,f=0,o=0,l=0;if(typeof e==="string"){for(i=o=0;i0)n[o++]=a[s]}n=n.slice(0,o)}else if(Buffer.isBuffer(e)){for(i=o=0;i0)n[o++]=a[s]}else{f=s-65536;s=2*(55296+(f>>10&1023));n[o++]=a[s+1]||a[s];if(a[s+1]>0)n[o++]=a[s];s=2*(56320+(f&1023));n[o++]=a[s+1]||a[s];if(a[s+1]>0)n[o++]=a[s]}}n=n.slice(0,o)}else{for(i=o=0;i0)n[o++]=a[s]}}if(!r||r==="buf")return n;if(r!=="arr")return n.toString("binary");return[].slice.call(n)}};var m=function L(r){var t=e[r].dec;var a=new Buffer(131072),n=0,i,s=0,f=0,o=0;for(o=0;o<65536;++o){a[2*o]=255;a[2*o+1]=253}for(n=0;n>8}return function l(e){var r=e.length,t=new Buffer(2*r),n=0,i=0,s=0;if(Buffer.isBuffer(e)){for(n=0;nu){u=4*r;d=new Buffer(u)}var n=0;if(r>=3&&e[0]==239)if(e[1]==187&&e[2]==191)n=3;for(var i=1,s=0,f=0;n>8}else{t-=65536;a=55296+(t>>10&1023);t=56320+(t&1023);d[s++]=a&255;d[s++]=a>>>8;d[s++]=t&255;d[s++]=t>>>8&255}}return d.slice(0,s).toString("ucs2")};s[65001]=function U(e,r){if(h&&Buffer.isBuffer(e)){if(!r||r==="buf")return e;if(r!=="arr")return e.toString("binary");return[].slice.call(e)}var t=e.length,a=0,n=0,i=0;var s=typeof e==="string";if(4*t>u){u=4*t;d=new Buffer(u)}for(var f=0;f>6);d[i++]=128+(a&63)}else if(a>=55296&&a<=57343){a-=55296;++f;n=(s?e.charCodeAt(f):e[f].charCodeAt(0))-56320+(a<<10);d[i++]=240+(n>>>18&7);d[i++]=144+(n>>>12&63);d[i++]=128+(n>>>6&63);d[i++]=128+(n&63)}else{d[i++]=224+(a>>12);d[i++]=128+(a>>6&63);d[i++]=128+(a&63)}}if(!r||r==="buf")return d.slice(0,i);if(r!=="arr")return d.slice(0,i).toString("binary");return[].slice.call(d,0,i)}}var C=function H(){if(h){if(f[t[0]])return;var r=0,l=0;for(r=0;r255){s[u]=f>>8;s[++u]=f&255}else s[u]=f&255}else if(g=r[t])switch(g){case"utf8":if(h&&b){s=new Buffer(a,g);u=s.length;break}for(c=0;c>6);s[++u]=128+(f&63)}else if(f>=55296&&f<=57343){f-=55296;d=(b?a.charCodeAt(++c):a[++c].charCodeAt(0))-56320+(f<<10);s[u]=240+(d>>>18&7);s[++u]=144+(d>>>12&63);s[++u]=128+(d>>>6&63);s[++u]=128+(d&63)}else{s[u]=224+(f>>12);s[++u]=128+(f>>6&63);s[++u]=128+(f&63)}}break;case"ascii":if(h&&typeof a==="string"){s=new Buffer(a,g);u=s.length;break}for(c=0;c>8}break;case"utf16be":for(c=0;c>8;s[u++]=f&255}break;case"utf32le":for(c=0;c=55296&&f<=57343)f=65536+(f-55296<<10)+(a[++c].charCodeAt(0)-56320);s[u++]=f&255;f>>=8;s[u++]=f&255;f>>=8;s[u++]=f&255;f>>=8;s[u++]=f&255}break;case"utf32be":for(c=0;c=55296&&f<=57343)f=65536+(f-55296<<10)+(a[++c].charCodeAt(0)-56320);s[u+3]=f&255;f>>=8;s[u+2]=f&255;f>>=8;s[u+1]=f&255;f>>=8;s[u]=f&255;u+=4}break;case"utf7":for(c=0;c-1){s[u++]=m.charCodeAt(0);continue}var C=V(1201,m);s[u++]=43;s[u++]=A.charCodeAt(C[0]>>2);s[u++]=A.charCodeAt(((C[0]&3)<<4)+((C[1]||0)>>4));s[u++]=A.charCodeAt(((C[1]&15)<<2)+((C[2]||0)>>6));s[u++]=45}break;default:throw new Error("Unsupported magic: "+t+" "+r[t]);}else throw new Error("Unrecognized CP: "+t);s=s.slice(0,u);if(!h)return n=="str"?s.map(l).join(""):s;if(!n||n==="buf")return s;if(n!=="arr")return s.toString("binary");return[].slice.call(s)};var I=function X(t,a){var n;if(n=f[t])return n(a);if(typeof a==="string")return X(t,a.split("").map(c));var i=a.length,s=new Array(i),o="",l=0,u=0,d=1,p=0,v=0;var g=e[t],b,m="";if(g&&(b=g.dec)){for(u=0;u=3&&a[0]==239)if(a[1]==187&&a[2]==191)u=3;for(;u>10&1023);l=56320+(l&1023);s[p++]=String.fromCharCode(v);s[p++]=String.fromCharCode(l)}}break;case"ascii":if(h&&Buffer.isBuffer(a))return a.toString(m);for(u=0;u=2&&a[0]==255)if(a[1]==254)u=2;if(h&&Buffer.isBuffer(a))return a.toString(m);d=2;for(;u+1=2&&a[0]==254)if(a[1]==255)u=2;d=2;for(;u+1=4&&a[0]==255)if(a[1]==254&&a[2]===0&&a[3]===0)u=4;d=4;for(;u65535){l-=65536;s[p++]=String.fromCharCode(55296+(l>>10&1023));s[p++]=String.fromCharCode(56320+(l&1023))}else s[p++]=String.fromCharCode(l)}break;case"utf32be":if(i>=4&&a[3]==255)if(a[2]==254&&a[1]===0&&a[0]===0)u=4;d=4;for(;u65535){l-=65536;s[p++]=String.fromCharCode(55296+(l>>10&1023));s[p++]=String.fromCharCode(56320+(l&1023))}else s[p++]=String.fromCharCode(l)}break;case"utf7":if(i>=4&&a[0]==43&&a[1]==47&&a[2]==118){if(i>=5&&a[3]==56&&a[4]==45)u=5;else if(a[3]==56||a[3]==57||a[3]==43||a[3]==47)u=4}for(;u>4;E.push(w);x=A.indexOf(String.fromCharCode(a[u+y++]));if(x===-1)break;S=(T&15)<<4|x>>2;E.push(S);I=A.indexOf(String.fromCharCode(a[u+y++]));if(I===-1)break;B=(x&3)<<6|I;if(I<64)E.push(B)}k=X(1201,E);for(y=0;y>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return r.join("")}function f(e){var r=[];for(var t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join("")}var o=function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);if(r==255&&t==254)return s(e.substr(2));if(r==254&&t==255)return f(e.substr(2));if(r==65279)return e.substr(1);return e};var l=function Ov(e){return String.fromCharCode(e)};if(typeof cptable!=="undefined"){n=function(e){t=e};o=function(e){if(e.charCodeAt(0)===255&&e.charCodeAt(1)===254){return cptable.utils.decode(1200,i(e.substr(2)))}return e};l=function Fv(e){if(t===1200)return String.fromCharCode(e);return cptable.utils.decode(t,[e&255,e>>8])[0]}}var c=null;var h=true;var u=function Pv(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(r){var t="";var a,n,i,s,f,o,l;for(var c=0;c>2;f=(a&3)<<4|n>>4;o=(n&15)<<2|i>>6;l=i&63;if(isNaN(n)){o=l=64}else if(isNaN(i)){l=64}t+=e.charAt(s)+e.charAt(f)+e.charAt(o)+e.charAt(l)}return t},decode:function r(t){var a="";var n,i,s;var f,o,l,c;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var h=0;h>4;i=(o&15)<<4|l>>2;s=(l&3)<<6|c;a+=String.fromCharCode(n);if(l!=64){a+=String.fromCharCode(i)}if(c!=64){a+=String.fromCharCode(s)}}return a}}}();var d=typeof Buffer!=="undefined"&&typeof process!=="undefined"&&typeof process.versions!=="undefined"&&process.versions.node;function p(e){return new(d?Buffer:Array)(e)}function v(e){if(d)return new Buffer(e,"binary");return e.split("").map(function(e){return e.charCodeAt(0)&255})}var g=function(e){return[].concat.apply([],e)};var b=/\u0000/g,m=/[\u0001-\u0006]/;var C={};var E=function Nv(e){e.version="0.10.0";function r(e){var r="",t=e.length-1;while(t>=0)r+=e.charAt(t--);return r}function t(e,r){var t="";while(t.length=r?a:t("0",r-a.length)+a}function n(e,r){var a=""+e;return a.length>=r?a:t(" ",r-a.length)+a}function i(e,r){var a=""+e;return a.length>=r?a:a+t(" ",r-a.length)}function s(e,r){var a=""+Math.round(e);return a.length>=r?a:t("0",r-a.length)+a}function f(e,r){var a=""+e;return a.length>=r?a:t("0",r-a.length)+a}var o=Math.pow(2,32);function l(e,r){if(e>o||e<-o)return s(e,r);var t=Math.round(e);return f(t,r)}function c(e,r){r=r||0;return e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var h=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var u=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function d(e){e[0]="General";e[1]="0";e[2]="0.00";e[3]="#,##0";e[4]="#,##0.00";e[9]="0%";e[10]="0.00%";e[11]="0.00E+00";e[12]="# ?/?";e[13]="# ??/??";e[14]="m/d/yy";e[15]="d-mmm-yy";e[16]="d-mmm";e[17]="mmm-yy";e[18]="h:mm AM/PM";e[19]="h:mm:ss AM/PM";e[20]="h:mm";e[21]="h:mm:ss";e[22]="m/d/yy h:mm";e[37]="#,##0 ;(#,##0)";e[38]="#,##0 ;[Red](#,##0)";e[39]="#,##0.00;(#,##0.00)";e[40]="#,##0.00;[Red](#,##0.00)";e[45]="mm:ss";e[46]="[h]:mm:ss";e[47]="mmss.0";e[48]="##0.0E+0";e[49]="@";e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "';e[65535]="General"}var p={};d(p);function v(e,r,t){var a=e<0?-1:1;var n=e*a;var i=0,s=1,f=0;var o=1,l=0,c=0;var h=Math.floor(n);while(lr){if(l>r){c=o;f=i}else{c=l;f=s}}if(!t)return[0,a*f,c];var u=Math.floor(a*f/c);return[u,a*f-u*c,c]}function g(e,r,t){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),i=0;var s=[];var f={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(f.u)<1e-6)f.u=0;if(r&&r.date1904)a+=1462;if(f.u>.9999){f.u=0;if(++n==86400){f.T=n=0;++a;++f.D}}if(a===60){s=t?[1317,10,29]:[1900,2,29];i=3}else if(a===0){s=t?[1317,8,29]:[1900,1,0];i=6}else{if(a>60)--a;var o=new Date(1900,0,1);o.setDate(o.getDate()+a-1);s=[o.getFullYear(),o.getMonth()+1,o.getDate()];i=o.getDay();if(a<60)i=(i+6)%7;if(t)i=A(o,s)}f.y=s[0];f.m=s[1];f.d=s[2];f.S=n%60;n=Math.floor(n/60);f.M=n%60;n=Math.floor(n/60);f.H=n;f.q=i;return f}e.parse_date_code=g;var b=new Date(1899,11,31,0,0,0);var m=b.getTime();var C=new Date(1900,2,1,0,0,0);function E(e,r){var t=e.getTime();if(r)t-=1461*24*60*60*1e3;else if(e>=C)t+=24*60*60*1e3;return(t-(m+(e.getTimezoneOffset()-b.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function k(e){return e.toString(10)}e._general_int=k;var w=function M(){var e=/\.(\d*[1-9])0+$/,r=/\.0*$/,t=/\.(\d*[1-9])0+/,a=/\.0*[Ee]/,n=/(E[+-])(\d)$/;function i(e){var r=e<0?12:11;var t=o(e.toFixed(12));if(t.length<=r)return t;t=e.toPrecision(10);if(t.length<=r)return t;return e.toExponential(5)}function s(r){var t=r.toFixed(11).replace(e,".$1");if(t.length>(r<0?12:11))t=r.toPrecision(6);return t}function f(e){for(var r=0;r!=e.length;++r)if((e.charCodeAt(r)|32)===101)return e.replace(t,".$1").replace(a,"E").replace("e","E").replace(n,"$10$2");return e}function o(t){return t.indexOf(".")>-1?t.replace(r,"").replace(e,".$1"):t}return function l(e){var r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),t;if(r>=-4&&r<=-1)t=e.toPrecision(10+r);else if(Math.abs(r)<=9)t=i(e);else if(r===10)t=e.toFixed(10).substr(0,12);else t=s(e);return o(f(t))}}();e._general_num=w;function S(e,r){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?k(e):w(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return N(14,E(e,r&&r.date1904),r);}throw new Error("unsupported value in General format: "+e)}e._general=S;function A(){return 0}function B(e,r,t,n){var i="",s=0,f=0,o=t.y,l,c=0;switch(e){case 98:o=t.y+543;case 121:switch(r.length){case 1:;case 2:l=o%100;c=2;break;default:l=o%1e4;c=4;break;}break;case 109:switch(r.length){case 1:;case 2:l=t.m;c=r.length;break;case 3:return u[t.m-1][1];case 5:return u[t.m-1][0];default:return u[t.m-1][2];}break;case 100:switch(r.length){case 1:;case 2:l=t.d;c=r.length;break;case 3:return h[t.q][0];default:return h[t.q][1];}break;case 104:switch(r.length){case 1:;case 2:l=1+(t.H+11)%12;c=r.length;break;default:throw"bad hour format: "+r;}break;case 72:switch(r.length){case 1:;case 2:l=t.H;c=r.length;break;default:throw"bad hour format: "+r;}break;case 77:switch(r.length){case 1:;case 2:l=t.M;c=r.length;break;default:throw"bad minute format: "+r;}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;if(t.u===0&&(r=="s"||r=="ss"))return a(t.S,r.length);if(n>=2)f=n===3?1e3:100;else f=n===1?10:1;s=Math.round(f*(t.S+t.u));if(s>=60*f)s=0;if(r==="s")return s===0?"0":""+s/f;i=a(s,2+n);if(r==="ss")return i.substr(0,2);return"."+i.substr(2,r.length-1);case 90:switch(r){case"[h]":;case"[hh]":l=t.D*24+t.H;break;case"[m]":;case"[mm]":l=(t.D*24+t.H)*60+t.M; -break;case"[s]":;case"[ss]":l=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+r;}c=r.length===3?1:2;break;case 101:l=o;c=1;}if(c>0)return a(l,c);else return""}function _(e){var r=3;if(e.length<=r)return e;var t=e.length%r,a=e.substr(0,t);for(;t!=e.length;t+=r)a+=(a.length>0?",":"")+e.substr(t,r);return a}var T=function U(){var e=/%/g;function s(r,a,n){var i=a.replace(e,""),s=a.length-i.length;return T(r,i,n*Math.pow(10,2*s))+t("%",s)}function f(e,r,t){var a=r.length-1;while(r.charCodeAt(a-1)===44)--a;return T(e,r.substr(0,a),t/Math.pow(10,3*(r.length-a)))}function o(e,r){var t;var a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";else if(r<0)return"-"+o(e,-r);var n=e.indexOf(".");if(n===-1)n=e.indexOf("E");var i=Math.floor(Math.log(r)*Math.LOG10E)%n;if(i<0)i+=n;t=(r/Math.pow(10,i)).toPrecision(a+1+(n+i)%n);if(t.indexOf("e")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);if(t.indexOf(".")===-1)t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+i);else t+="E+"+(s-i);while(t.substr(0,2)==="0."){t=t.charAt(0)+t.substr(2,n)+"."+t.substr(2+n);t=t.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(e,r,t,a){return r+t+a.substr(0,(n+i)%n)+"."+a.substr(i)+"E"})}else t=r.toExponential(a);if(e.match(/E\+00$/)&&t.match(/e[+-]\d$/))t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1);if(e.match(/E\-/)&&t.match(/e\+/))t=t.replace(/e\+/,"e");return t.replace("e","E")}var c=/# (\?+)( ?)\/( ?)(\d+)/;function h(e,r,i){var s=parseInt(e[4],10),f=Math.round(r*s),o=Math.floor(f/s);var l=f-o*s,c=s;return i+(o===0?"":""+o)+" "+(l===0?t(" ",e[1].length+1+e[4].length):n(l,e[1].length)+e[2]+"/"+e[3]+a(c,e[4].length))}function u(e,r,a){return a+(r===0?"":""+r)+t(" ",e[1].length+2+e[4].length)}var d=/^#*0*\.([0#]+)/;var p=/\).*[0#]/;var g=/\(###\) ###\\?-####/;function b(e){var r="",t;for(var a=0;a!=e.length;++a)switch(t=e.charCodeAt(a)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t);}return r}function m(e,r){var t=Math.pow(10,r);return""+Math.round(e*t)/t}function C(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 0}return Math.round((e-Math.floor(e))*Math.pow(10,r))}function E(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 1}return 0}function k(e){if(e<2147483647&&e>-2147483648)return""+(e>=0?e|0:e-1|0);return""+Math.floor(e)}function w(e,u,S){if(e.charCodeAt(0)===40&&!u.match(p)){var A=u.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(S>=0)return w("n",A,S);return"("+w("n",A,-S)+")"}if(u.charCodeAt(u.length-1)===44)return f(e,u,S);if(u.indexOf("%")!==-1)return s(e,u,S);if(u.indexOf("E")!==-1)return o(u,S);if(u.charCodeAt(0)===36)return"$"+w(e,u.substr(u.charAt(1)==" "?2:1),S);var B;var x,I,y,R=Math.abs(S),D=S<0?"-":"";if(u.match(/^00+$/))return D+l(R,u.length);if(u.match(/^[#?]+$/)){B=l(S,0);if(B==="0")B="";return B.length>u.length?B:b(u.substr(0,u.length-B.length))+B}if(x=u.match(c))return h(x,R,D);if(u.match(/^#+0+$/))return D+l(R,u.length-u.indexOf("0"));if(x=u.match(d)){B=m(S,x[1].length).replace(/^([^\.]+)$/,"$1."+b(x[1])).replace(/\.$/,"."+b(x[1])).replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",b(x[1]).length-r.length)});return u.indexOf("0.")!==-1?B:B.replace(/^0\./,".")}u=u.replace(/^#+([0.])/,"$1");if(x=u.match(/^(0*)\.(#*)$/)){return D+m(R,x[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,x[1].length?"0.":".")}if(x=u.match(/^#{1,3},##0(\.?)$/))return D+_(l(R,0));if(x=u.match(/^#,##0\.([#0]*0)$/)){return S<0?"-"+w(e,u,-S):_(""+(Math.floor(S)+E(S,x[1].length)))+"."+a(C(S,x[1].length),x[1].length)}if(x=u.match(/^#,#*,#0/))return w(e,u.replace(/^#,#*,/,""),S);if(x=u.match(/^([0#]+)(\\?-([0#]+))+$/)){B=r(w(e,u.replace(/[\\-]/g,""),S));I=0;return r(r(u.replace(/\\/g,"")).replace(/[0#]/g,function(e){return I=0)return x("n",o,f);return"("+x("n",o,-f)+")"}if(s.charCodeAt(s.length-1)===44)return S(e,s,f);if(s.indexOf("%")!==-1)return A(e,s,f);if(s.indexOf("E")!==-1)return B(s,f);if(s.charCodeAt(0)===36)return"$"+x(e,s.substr(s.charAt(1)==" "?2:1),f);var l;var h,m,C,E=Math.abs(f),k=f<0?"-":"";if(s.match(/^00+$/))return k+a(E,s.length);if(s.match(/^[#?]+$/)){l=""+f;if(f===0)l="";return l.length>s.length?l:b(s.substr(0,s.length-l.length))+l}if(h=s.match(c))return u(h,E,k);if(s.match(/^#+0+$/))return k+a(E,s.length-s.indexOf("0"));if(h=s.match(d)){l=(""+f).replace(/^([^\.]+)$/,"$1."+b(h[1])).replace(/\.$/,"."+b(h[1]));l=l.replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",b(h[1]).length-r.length)});return s.indexOf("0.")!==-1?l:l.replace(/^0\./,".")}s=s.replace(/^#+([0.])/,"$1");if(h=s.match(/^(0*)\.(#*)$/)){return k+(""+E).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,h[1].length?"0.":".")}if(h=s.match(/^#{1,3},##0(\.?)$/))return k+_(""+E);if(h=s.match(/^#,##0\.([#0]*0)$/)){return f<0?"-"+x(e,s,-f):_(""+f)+"."+t("0",h[1].length)}if(h=s.match(/^#,#*,#0/))return x(e,s.replace(/^#,#*,/,""),f);if(h=s.match(/^([0#]+)(\\?-([0#]+))+$/)){l=r(x(e,s.replace(/[\\-]/g,""),f));m=0;return r(r(s.replace(/\\/g,"")).replace(/[0#]/g,function(e){return m-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r-1){}break;case" ":++r;break;default:++r;break;}}return false}e.is_date=y;function R(e,r,t,a){var n=[],i="",s=0,f="",o="t",l,h,u;var d="H";while(s=12?"P":"A";b.t="T";d="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(l!=null)b.v=l.H>=12?"PM":"AM";b.t="T";s+=5;d="h"}else{b.t="t";++s}if(l==null&&b.t==="T")return"";n[n.length]=b;o=f;break;case"[":i=f;while(e.charAt(s++)!=="]"&&s-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!y(e))n[n.length]={t:"t",v:i}}break;case".":if(l!=null){i=f;while(++s-1||f=="\\"&&e.charAt(s+1)=="-"&&s-1)i+=f;n[n.length]={t:"n",v:i};break;case"?":i=f;while(e.charAt(++s)===f)i+=f;n[n.length]={t:f,v:i};o=f;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":f,v:f};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=f;while(s-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:f,v:f};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(f)===-1)throw new Error("unrecognized character "+f+" in "+e);n[n.length]={t:"t",v:f};++s;break;}}var m=0,C=0,E;for(s=n.length-1,o="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=d;o="h";if(m<1)m=1;break;case"s":if(E=n[s].v.match(/\.0+$/))C=Math.max(C,E[0].length-1);if(m<3)m=3;case"d":;case"y":;case"M":;case"e":o=n[s].t;break;case"m":if(o==="s"){n[s].t="M";if(m<2)m=2}break;case"X":break;case"Z":if(m<1&&n[s].v.match(/[Hh]/))m=1;if(m<2&&n[s].v.match(/[Mm]/))m=2;if(m<3&&n[s].v.match(/[Ss]/))m=3;}}switch(m){case 0:break;case 1:if(l.u>=.5){l.u=0;++l.S}if(l.S>=60){l.S=0;++l.M}if(l.M>=60){l.M=0;++l.H}break;case 2:if(l.u>=.5){l.u=0;++l.S}if(l.S>=60){l.S=0;++l.M}break;}var k="",w;for(s=0;s0){if(k.charCodeAt(0)==40){_=r<0&&k.charCodeAt(0)===45?-r:r;x=T("(",k,_)}else{_=r<0&&a>1?-r:r;x=T("n",k,_);if(_<0&&n[0]&&n[0].t=="t"){x=x.substr(1);n[0].v="-"+n[0].v}}w=x.length-1;var R=n.length;for(s=0;s-1){R=s;break}var D=n.length;if(R===n.length&&x.indexOf("E")===-1){for(s=n.length-1;s>=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;if(w>=n[s].v.length-1){w-=n[s].v.length;n[s].v=x.substr(w+1,n[s].v.length)}else if(w<0)n[s].v="";else{n[s].v=x.substr(0,w+1);w=-1}n[s].t="t";D=s}if(w>=0&&D=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;h=n[s].v.indexOf(".")>-1&&s===R?n[s].v.indexOf(".")-1:n[s].v.length-1;A=n[s].v.substr(h+1);for(;h>=0;--h){if(w>=0&&(n[s].v.charAt(h)==="0"||n[s].v.charAt(h)==="#"))A=x.charAt(w--)+A}n[s].v=A;n[s].t="t";D=s}if(w>=0&&D-1&&s===R?n[s].v.indexOf(".")+1:0;A=n[s].v.substr(0,h);for(;h-1){_=a>1&&r<0&&s>0&&n[s-1].v==="-"?-r:r;n[s].v=T(n[s].t,n[s].v,_);n[s].t="t"}var O="";for(s=0;s!==n.length;++s)if(n[s]!=null)O+=n[s].v;return O}e._eval=R;var D=/\[[=<>]/;var O=/\[([=<>]*)(-?\d+\.?\d*)\]/;function F(e,r){if(r==null)return false;var t=parseFloat(r[2]);switch(r[1]){case"=":if(e==t)return true;break;case">":if(e>t)return true;break;case"<":if(e":if(e!=t)return true;break;case">=":if(e>=t)return true;break;case"<=":if(e<=t)return true;break;}return false}function P(e,r){var t=x(e);var a=t.length,n=t[a-1].indexOf("@");if(a<4&&n>-1)--a;if(t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if(typeof r!=="number")return[4,t.length===4||n>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=n>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=n>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=n>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"];break;case 4:break;}var i=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf("[")===-1&&t[1].indexOf("[")===-1)return[a,i];if(t[0].match(D)!=null||t[1].match(D)!=null){var s=t[0].match(O);var f=t[1].match(O);return F(r,s)?[a,t[0]]:F(r,f)?[a,t[1]]:[a,t[s!=null&&f!=null?2:1]]}return[a,i]}function N(e,r,t){if(t==null)t={};var a="";switch(typeof e){case"string":if(e=="m/d/yy"&&t.dateNF)a=t.dateNF;else a=e;break;case"number":if(e==14&&t.dateNF)a=t.dateNF;else a=(t.table!=null?t.table:p)[e];break;}if(c(a,0))return S(r,t);if(r instanceof Date)r=E(r,t.date1904);var n=P(a,r);if(c(n[1]))return S(r,t);if(r===true)r="TRUE";else if(r===false)r="FALSE";else if(r===""||r==null)return"";return R(n[1],r,t,n[0])}function L(e,r){if(typeof r!="number"){r=+r||-1;for(var t=0;t<392;++t){if(p[t]==undefined){if(r<0)r=t;continue}if(p[t]==e){r=t;break}}if(r<0)r=391}p[r]=e;return r}e.load=L;e._table=p;e.get_table=function H(){return p};e.load_table=function W(e){for(var r=0;r!=392;++r)if(e[r]!==undefined)L(e[r],r)};e.init_table=d;e.format=N};E(C);var k={"General Number":"General","General Date":C._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":C._table[15],"Short Date":C._table[14],"Long Time":C._table[19],"Medium Time":C._table[18],"Short Time":C._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:C._table[2],Standard:C._table[4],Percent:C._table[10],Scientific:C._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var w=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function S(e){var r=typeof e=="number"?C._table[e]:e;r=r.replace(w,"(\\d+)");return new RegExp("^"+r+"$")}function A(e,r,t){var a=-1,n=-1,i=-1,s=-1,f=-1,o=-1;(r.match(w)||[]).forEach(function(e,r){var l=parseInt(t[r+1],10);switch(e.toLowerCase().charAt(0)){case"y":a=l;break;case"d":i=l;break;case"h":s=l;break;case"s":o=l;break;case"m":if(s>=0)f=l;else n=l;break;}});if(o>=0&&f==-1&&n>=0){f=n;n=-1}var l=(""+(a>=0?a:(new Date).getFullYear())).slice(-4)+"-"+("00"+(n>=1?n:1)).slice(-2)+"-"+("00"+(i>=1?i:1)).slice(-2);if(l.length==7)l="0"+l;if(l.length==8)l="20"+l;var c=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(f>=0?f:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2);if(s==-1&&f==-1&&o==-1)return l;if(a==-1&&n==-1&&i==-1)return c;return l+"T"+c}var B=true;var _=function Lv(){var e={};e.version="0.13.1";function r(e,r){var t=e.split("/"),a=r.split("/");for(var n=0,i=0,s=Math.min(t.length,a.length);n0&&p!==I)A[p].name="!MiniFAT";A[g[0]].name="!FAT";A.fat_addrs=g;A.ssz=a;var B={},_=[],T=[],x=[],y={};d(u,A,S,_,n,B,T);o(T,y,x,_);_.shift();var R={FileIndex:T,FullPaths:x,FullPathDir:y};if(r&&r.raw)R.raw={header:C,sectors:S};return R}function i(e){e.chk(y,"Header Signature: ");e.chk(D,"CLSID: ");var r=e._R(2,"u");return[e._R(2,"u"),r]}function s(e,r){var t=9;e.l+=2;switch(t=e._R(2)){case 9:if(r!=3)throw new Error("Sector Shift: Expected 9 saw "+t);break;case 12:if(r!=4)throw new Error("Sector Shift: Expected 12 saw "+t);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+t);}e.chk("0600","Mini Sector Shift: ");e.chk("000000000000","Reserved: ")}function f(e,r){var t=Math.ceil(e.length/r)-1;var a=[];for(var n=1;n>>2)-1;if(!s)return;for(var o=0;o=0;){n[o]=true;i[i.length]=o;s.push(e[o]);var c=t[Math.floor(o*4/a)];l=o*4&f;if(a<4+l)throw new Error("FAT boundary crossed: "+o+" 4 "+a);if(!e[c])break;o=vr(e[c],l)}return{nodes:i,data:je([s])}}function h(e,r,t,a){var n=e.length,i=[];var s=[],f=[],o=[];var l=a-1,c=0,h=0,u=0,d=0;for(c=0;c=n)u-=n;if(s[u])continue;o=[];for(h=u;h>=0;){s[h]=true;f[f.length]=h;o.push(e[h]);var p=t[Math.floor(h*4/a)];d=h*4&l;if(a<4+d)throw new Error("FAT boundary crossed: "+h+" 4 "+a);if(!e[p])break;h=vr(e[p],d)}i[u]={nodes:f,data:je([o])}}return i}function d(e,r,t,a,n,i,s){var f=0,o=a.length?2:0;var l=r[e].data;var h=0,u=0,d;for(;h0&&f!==I)r[f].name="!StreamData"}else if(g.size>=4096){g.storage="fat";if(r[g.start]===undefined)r[g.start]=c(t,g.start,r.fat_addrs,r.ssz);r[g.start].name=g.name;g.content=r[g.start].data.slice(0,g.size);Ar(g.content,0)}else{g.storage="minifat";if(f!==I&&g.start!==I&&r[f]){g.content=r[f].data.slice(g.start*x,g.start*x+g.size);Ar(g.content,0)}}i[d]=g;s.push(g)}}function p(e,r){return new Date((pr(e,r+4)/1e7*Math.pow(2,32)+pr(e,r)/1e7-11644473600)*1e3)}var C;function E(e,r){if(C==null)C=require("fs");return n(C.readFileSync(e),r)}function k(e,r){switch(r&&r.type||"base64"){case"file":return E(e,r);case"base64":return n(v(u.decode(e)),r);case"binary":return n(v(e),r);}return n(e,r)}function w(e,r){var t=r||{},a=t.root||"Root Entry";if(!e.FullPaths)e.FullPaths=[];if(!e.FileIndex)e.FileIndex=[];if(e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");if(e.FullPaths.length===0){e.FullPaths[0]=a+"/";e.FileIndex[0]={name:a,type:5}}if(t.CLSID)e.FileIndex[0].clsid=t.CLSID;S(e)}function S(e){var r="Sh33tJ5";if(_.find(e,"/"+r))return;var t=xr(4);t[0]=55;t[1]=t[3]=50;t[2]=54;e.FileIndex.push({name:r,type:2,content:t,size:4,L:69,R:69,C:69});e.FullPaths.push(e.FullPaths[0]+r);A(e)}function A(e,n){w(e);var i=false,s=false;for(var f=e.FullPaths.length-1;f>=0;--f){var o=e.FileIndex[f];switch(o.type){case 0:if(s)i=true;else{e.FileIndex.pop();e.FullPaths.pop()}break;case 1:;case 2:;case 5:s=true;if(isNaN(o.R*o.L*o.C))i=true;if(o.R>-1&&o.L>-1&&o.R==o.L)i=true;break;default:i=true;break;}}if(!i&&!n)return;var l=new Date(1987,1,19),c=0;var h=[];for(f=0;f1?1:-1;d.size=0;d.type=5}else if(p.slice(-1)=="/"){for(c=f+1;c=h.length?-1:c;for(c=f+1;c=h.length?-1:c;d.type=1}else{if(t(e.FullPaths[f+1]||"")==t(p))d.R=f+1;d.type=2}}}function B(e,r){A(e);var t=function(e){var r=0,t=0;for(var a=0;a>6;else t+=i+511>>9}var s=e.FullPaths.length+3>>2;var f=r+7>>3;var o=r+127>>7;var l=f+t+s+o;var c=l+127>>7;var h=c<=109?0:Math.ceil((c-109)/127);while(l+c+h+127>>7>c)h=++c<=109?0:Math.ceil((c-109)/127);var u=[1,h,c,o,s,t,r,0];e.FileIndex[0].size=r<<6;u[7]=(e.FileIndex[0].start=u[0]+u[1]+u[2]+u[3]+u[4]+u[5])+(u[6]+7>>3);return u}(e);var a=xr(t[7]<<9);var n=0,i=0;{for(n=0;n<8;++n)a._W(1,R[n]);for(n=0;n<8;++n)a._W(2,0);a._W(2,62);a._W(2,3);a._W(2,65534);a._W(2,9);a._W(2,6);for(n=0;n<3;++n)a._W(2,0);a._W(4,0);a._W(4,t[2]);a._W(4,t[0]+t[1]+t[2]+t[3]-1);a._W(4,0);a._W(4,1<<12);a._W(4,t[3]?t[0]+t[1]+t[2]-1:I);a._W(4,t[3]);a._W(-4,t[1]?t[0]-1:I);a._W(4,t[1]);for(n=0;n<109;++n)a._W(-4,n>9)}s(t[6]+7>>3);while(a.l&511)a._W(-4,O.ENDOFCHAIN);i=n=0;for(f=0;f=4096)continue;l.start=i;s(o+63>>6)}while(a.l&511)a._W(-4,O.ENDOFCHAIN);for(n=0;n=4096){a.l=l.start+1<<9;for(f=0;f0&&l.size<4096){for(f=0;f3)a=true;switch(n[i].substr(n[i].length-1)){ -case"Y":throw new Error("Unsupported ISO Duration Field: "+n[i].substr(n[i].length-1));case"D":t*=24;case"H":t*=60;case"M":if(!a)throw new Error("Unsupported ISO Duration Field: M");else t*=60;case"S":break;}r+=t*parseInt(n[i],10)}return r}var M=new Date("2017-02-19T19:06:09.000Z");if(isNaN(M.getFullYear()))M=new Date("2/19/17");var U=M.getFullYear()==2017;function H(e,r){var t=new Date(e);if(U){if(r>0)t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3);else if(r<0)t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3);return t}if(e instanceof Date)return e;if(M.getFullYear()==1917&&!isNaN(t.getFullYear())){var a=t.getFullYear();if(e.indexOf(""+a)>-1)return t;t.setFullYear(t.getFullYear()+100);return t}var n=e.match(/\d+/g)||["2017","2","19","0","0","0"];var i=new Date(+n[0],+n[1]-1,+n[2],+n[3]||0,+n[4]||0,+n[5]||0);if(e.indexOf("Z")>-1)i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3);return i}function W(e){var r="";for(var t=0;t!=e.length;++t)r+=String.fromCharCode(e[t]);return r}function z(e){var r=[];for(var t=0;t!=e.length;++t)r.push(e.charCodeAt(t));return r}function V(e){if(typeof JSON!="undefined"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;var r={};for(var t in e)if(e.hasOwnProperty(t))r[t]=V(e[t]);return r}function X(e,r){var t="";while(t.length8099)return t;if((n>0||i>1)&&a!=101)return r;if(e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/))return r;if(e.match(/[^-0-9:,\/\\]/))return t;return r}var K="abacaba".split(/(:?b)/i).length==5;function Y(e,r,t){if(K||typeof r=="string")return e.split(r);var a=e.split(r),n=[a[0]];for(var i=1;i\/]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;var oe=/<[\/\?]?[a-zA-Z0-9:]+(?:\s+[^"\s?>\/]+=(?:"[^"]*"|'[^']*'|[^'">\s]+))*\s?[\/\?]?>/g;if(!se.match(oe))oe=/<[^>]*>/g;var le=/<\w*:/,ce=/<(\/?)\w+:/;function he(e,r){var t={};var a=0,n=0;for(;a!==e.length;++a)if((n=e.charCodeAt(a))===32||n===10||n===13)break;if(!r)t[0]=e.substr(0,a);if(a===e.length)return t;var i=e.match(fe),s=0,f="",o=0,l="",c="",h=1;if(i)for(o=0;o!=i.length;++o){c=i[o];for(n=0;n!=c.length;++n)if(c.charCodeAt(n)===61)break;l=c.substr(0,n);h=(a=c.charCodeAt(n+1))==34||a==39?1:0;f=c.substring(n+1+h,c.length-h);for(s=0;s!=l.length;++s)if(l.charCodeAt(s)===58)break;if(s===l.length){if(l.indexOf("_")>0)l=l.substr(0,l.indexOf("_"));t[l]=f}else{var u=(s===5&&l.substr(0,5)==="xmlns"?"xmlns":"")+l.substr(s+1);if(t[u]&&l.substr(s-3,3)=="ext")continue;t[u]=f}}return t}function ue(e){return e.replace(ce,"<$1")}var de={""":'"',"'":"'",">":">","<":"<","&":"&"};var pe=y(de);var ve=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/g,r=/_x([\da-fA-F]{4})_/g;return function t(a){var n=a+"",i=n.indexOf("-1?16:10))||e}).replace(r,function(e,r){return String.fromCharCode(parseInt(r,16))});var s=n.indexOf("]]>");return t(n.slice(0,i))+n.slice(i+9,s)+t(n.slice(s+3))}}();var ge=/[&<>'"]/g,be=/[\u0000-\u0008\u000b-\u001f]/g;function me(e,r){var t=e+"";return t.replace(ge,function(e){return pe[e]}).replace(be,function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"})}function Ce(e){return me(e).replace(/ /g,"_x0020_")}var Ee=/[\u0000-\u001f]/g;function ke(e){var r=e+"";return r.replace(ge,function(e){return pe[e]}).replace(Ee,function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"})}var we=function(){var e=/&#(\d+);/g;function r(e,r){return String.fromCharCode(parseInt(r,10))}return function t(a){return a.replace(e,r)}}();var Se=function(){return function e(r){return r.replace(/(\r\n|[\r\n])/g," ")}}();function Ae(e,r){switch(e){case 1:;case true:;case"1":;case"true":;case"TRUE":return true;default:return false;}}var Be=function Mv(e){var r="",t=0,a=0,n=0,i=0,s=0,f=0;while(t191&&a<224){s=(a&31)<<6;s|=n&63;r+=String.fromCharCode(s);continue}i=e.charCodeAt(t++);if(a<240){r+=String.fromCharCode((a&15)<<12|(n&63)<<6|i&63);continue}s=e.charCodeAt(t++);f=((a&7)<<18|(n&63)<<12|(i&63)<<6|s&63)-65536;r+=String.fromCharCode(55296+(f>>>10&1023));r+=String.fromCharCode(56320+(f&1023))}return r};var _e=function(e){var r=[],t=0,a=0,n=0;while(t>6)));r.push(String.fromCharCode(128+(a&63)));break;case a>=55296&&a<57344:a-=55296;n=e.charCodeAt(t++)-56320+(a<<10);r.push(String.fromCharCode(240+(n>>18&7)));r.push(String.fromCharCode(144+(n>>12&63)));r.push(String.fromCharCode(128+(n>>6&63)));r.push(String.fromCharCode(128+(n&63)));break;default:r.push(String.fromCharCode(224+(a>>12)));r.push(String.fromCharCode(128+(a>>6&63)));r.push(String.fromCharCode(128+(a&63)));}}return r.join("")};if(d){var Te=function Uv(e){var r=new Buffer(2*e.length),t,a,n=1,i=0,s=0,f;for(a=0;a>>10&1023);t=56320+(t&1023)}if(s!==0){r[i++]=s&255;r[i++]=s>>>8;s=0}r[i++]=t%256;r[i++]=t>>>8}return r.slice(0,i).toString("ucs2")};var xe="foo bar baz☃🍣";if(Be(xe)==Te(xe))Be=Te;var Ie=function Hv(e){return Buffer(e,"binary").toString("utf8")};if(Be(xe)==Ie(xe))Be=Ie;_e=function(e){return new Buffer(e,"utf8").toString("binary")}}var ye=function(){var e={};return function r(t,a){var n=t+"|"+(a||"");if(e[n])return e[n];return e[n]=new RegExp("<(?:\\w+:)?"+t+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",a||"")}}();function Re(e){return e.trim().replace(/\s+/g," ").replace(/<\s*[bB][rR]\s*\/?/g,"\n").replace(/<[^>]*>/g,"").replace(/ /g," ")}var De=function(){var e={};return function r(t){if(e[t]!==undefined)return e[t];return e[t]=new RegExp("<(?:vt:)?"+t+">([\\s\\S]*?)","g")}}();var Oe=/<\/?(?:vt:)?variant>/g,Fe=/<(?:vt:)([^>]*)>([\s\S]*)"+r+""}function Me(e){return x(e).map(function(r){return" "+r+'="'+e[r]+'"'}).join("")}function Ue(e,r,t){return"<"+e+(T(t)?Me(t):"")+(T(r)?(r.match(Ne)?' xml:space="preserve"':"")+">"+r+""}function He(e,r){try{return e.toISOString().replace(/\.\d*/,"")}catch(t){if(r)throw t}return""}function We(e){switch(typeof e){case"string":return Ue("vt:lpwstr",e);case"number":return Ue((e|0)==e?"vt:i4":"vt:r8",String(e));case"boolean":return Ue("vt:bool",e?"true":"false");}if(e instanceof Date)return Ue("vt:filetime",He(e));throw new Error("Unable to serialize "+e)}var ze={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};ze.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];var Ve={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function Xe(e,r){var t=1-2*(e[r+7]>>>7);var a=((e[r+7]&127)<<4)+(e[r+6]>>>4&15);var n=e[r+6]&15;for(var i=5;i>=0;--i)n=n*256+e[r+i];if(a==2047)return n==0?t*Infinity:NaN;if(a==0)a=-1022;else{a-=1023;n+=Math.pow(2,52)}return t*Math.pow(2,a-52)*n}function Ge(e,r,t){var a=(r<0||1/r==-Infinity?1:0)<<7,n=0,i=0;var s=a?-r:r;if(!isFinite(s)){n=2047;i=isNaN(r)?26985:0}else if(s==0)n=i=0;else{n=Math.floor(Math.log(s)/Math.LN2);i=s*Math.pow(2,52-n);if(n<=-1023&&(!isFinite(i)||i>4|a}var je=function(e){var r=[];for(var t=0;t0?Je(e,r+4,r+4+t-1):""};var rr=er;var tr=function(e,r){var t=2*pr(e,r);return t>0?Je(e,r+4,r+4+t-1):""};var ar=tr;var nr,ir;nr=ir=function Wv(e,r){var t=pr(e,r);return t>0?Ye(e,r+4,r+4+t):""};var sr=function(e,r){var t=pr(e,r);return t>0?Je(e,r+4,r+4+t):""};var fr=sr;var or,lr;or=lr=function(e,r){return Xe(e,r)};var cr=function zv(e){return Array.isArray(e)};if(d){Ye=function(e,r,t){if(!Buffer.isBuffer(e))return $e(e,r,t);return e.toString("utf16le",r,t)};Ze=function(e,r,t){return Buffer.isBuffer(e)?e.toString("hex",r,r+t):Qe(e,r,t)};er=function Vv(e,r){if(!Buffer.isBuffer(e))return rr(e,r);var t=e.readUInt32LE(r);return t>0?e.toString("utf8",r+4,r+4+t-1):""};tr=function Xv(e,r){if(!Buffer.isBuffer(e))return ar(e,r);var t=2*e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t-1)};nr=function Gv(e,r){if(!Buffer.isBuffer(e))return ir(e,r);var t=e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t)};sr=function jv(e,r){if(!Buffer.isBuffer(e))return fr(e,r);var t=e.readUInt32LE(r);return e.toString("utf8",r+4,r+4+t)};Je=function Kv(e,r,t){return Buffer.isBuffer(e)?e.toString("utf8",r,t):Je(e,r,t)};je=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):Ke(e)};g=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)};or=function Yv(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return lr(e,r)};cr=function $v(e){return Buffer.isBuffer(e)||Array.isArray(e)}}if(typeof cptable!=="undefined"){Ye=function(e,r,t){return cptable.utils.decode(1200,e.slice(r,t))};Je=function(e,r,t){return cptable.utils.decode(65001,e.slice(r,t))};er=function(e,r){var a=pr(e,r);return a>0?cptable.utils.decode(t,e.slice(r+4,r+4+a-1)):""};tr=function(e,r){var t=2*pr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};nr=function(e,r){var t=pr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t)):""};sr=function(e,r){var t=pr(e,r);return t>0?cptable.utils.decode(65001,e.slice(r+4,r+4+t)):""}}var hr=function(e,r){return e[r]};var ur=function(e,r){return e[r+1]*(1<<8)+e[r]};var dr=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var pr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var vr=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var gr=function(e){return(e.match(/../g)||[]).map(function(e){return parseInt(e,16)})};var br=typeof Buffer!=="undefined"?function(e){return Buffer.isBuffer(e)?new Buffer(e,"hex"):gr(e)}:gr;function mr(e,r){var a="",n,i,s=[],f,o,c,h;switch(r){case"dbcs":h=this.l;if(d&&Buffer.isBuffer(this))a=this.slice(this.l,this.l+2*e).toString("utf16le");else for(c=0;c!=e;++c){a+=String.fromCharCode(ur(this,h));h+=2}e*=2;break;case"utf8":a=Je(this,this.l,this.l+e);break;case"utf16le":e*=2;a=Ye(this,this.l,this.l+e);break;case"wstr":if(typeof cptable!=="undefined")a=cptable.utils.decode(t,this.slice(this.l,this.l+2*e));else return mr.call(this,e,"dbcs");e=2*e;break;case"lpstr":a=er(this,this.l);e=5+a.length;break;case"lpwstr":a=tr(this,this.l);e=5+a.length;if(a[a.length-1]=="\0")e+=2;break;case"lpp4":e=4+pr(this,this.l);a=nr(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+pr(this,this.l);a=sr(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;a="";while((f=hr(this,this.l+e++))!==0)s.push(l(f));a=s.join("");break;case"_wstr":e=0;a="";while((f=ur(this,this.l+e))!==0){s.push(l(f));e+=2}e+=2;a=s.join("");break;case"dbcs-cont":a="";h=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){f=hr(this,h);this.l=h+1;o=mr.call(this,e-c,f?"dbcs-cont":"sbcs-cont");return s.join("")+o}s.push(l(ur(this,h)));h+=2}a=s.join("");e*=2;break;case"sbcs-cont":a="";h=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){f=hr(this,h);this.l=h+1;o=mr.call(this,e-c,f?"dbcs-cont":"sbcs-cont");return s.join("")+o}s.push(l(hr(this,h)));h+=1}a=s.join("");break;default:switch(e){case 1:n=hr(this,this.l);this.l++;return n;case 2:n=(r==="i"?dr:ur)(this,this.l);this.l+=2;return n;case 4:if(r==="i"||(this[this.l+3]&128)===0){n=vr(this,this.l);this.l+=4;return n}else{i=pr(this,this.l);this.l+=4}return i;case 8:if(r==="f"){i=or(this,this.l);this.l+=8;return i};case 16:a=Ze(this,this.l,e);break;};}this.l+=e;return a}var Cr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var Er=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var kr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function wr(e,r,t){var a=0,n=0;if(t==="dbcs"){for(n=0;n!=r.length;++n)kr(this,r.charCodeAt(n),this.l+2*n);a=2*r.length}else if(t==="sbcs"){for(n=0;n!=r.length;++n)this[this.l+n]=r.charCodeAt(n)&255;a=r.length}else if(t==="hex"){for(;n>8}while(this.l>>=8;this[this.l+1]=r&255;break;case 3:a=3;this[this.l]=r&255;r>>>=8;this[this.l+1]=r&255;r>>>=8;this[this.l+2]=r&255;break;case 4:a=4;Cr(this,r,this.l);break;case 8:a=8;if(t==="f"){Ge(this,r,this.l);break};case 16:break;case-4:a=4;Er(this,r,this.l);break;}this.l+=a;return this}function Sr(e,r){var t=Ze(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function Ar(e,r){e.l=r;e._R=mr;e.chk=Sr;e._W=wr}function Br(e,r){e.l+=r}function _r(e,r){if(typeof console!="undefined")console.log(e.slice(e.l,e.l+r));e.l+=r}function Tr(e,r){e.l+=r}function xr(e){var r=p(e);Ar(r,0);return r}function Ir(e,r,t){if(!e)return;var a,n,i;Ar(e,e.l||0);var s=e.length,f=0,o=0;while(e.la.l)a=a.slice(0,a.l);if(a.length>0)e.push(a);a=null};var i=function c(e){if(a&&e=128?1:0)+1+a;if(a>=128)++i;if(a>=16384)++i;if(a>=2097152)++i;var s=e.next(i);if(n<=127)s._W(1,n);else{s._W(1,(n&127)+128);s._W(1,n>>7)}for(var f=0;f!=4;++f){if(a>=128){s._W(1,(a&127)+128);a>>=7}else{s._W(1,a);break}}if(a>0&&cr(t))e.push(t)}function Dr(e,r,t){var a=V(e);if(r.s){if(a.cRel)a.c+=r.s.c;if(a.rRel)a.r+=r.s.r}else{a.c+=r.c;a.r+=r.r}if(!t||t.biff<12){while(a.c>=256)a.c-=256;while(a.r>=65536)a.r-=65536}return a}function Or(e,r,t){var a=V(e);a.s=Dr(a.s,r.s,t);a.e=Dr(a.e,r.s,t);return a}function Fr(e){var r=Yr(e);if(e.cRel===0)r=Xr(r);if(e.rRel===0)r=Hr(r);return r}function Pr(e,r){if(e.s.r==0&&!e.s.rRel){if(e.e.r==(r.biff>=12?1048575:65535)&&!e.e.rRel){return(e.s.cRel?"":"$")+Vr(e.s.c)+":"+(e.e.cRel?"":"$")+Vr(e.e.c)}}if(e.s.c==0&&!e.s.cRel){if(e.e.c==(r.biff>=12?65535:255)&&!e.e.cRel){return(e.s.rRel?"":"$")+Ur(e.s.r)+":"+(e.e.rRel?"":"$")+Ur(e.e.r)}}return Fr(e.s)+":"+Fr(e.e)}var Nr={};var Lr=function(e,r){var t;if(typeof r!=="undefined")t=r;else if(typeof require!=="undefined"){try{t=undefined}catch(a){t=null}}e.rc4=function(e,r){var t=new Array(256);var a=0,n=0,i=0,s=0;for(n=0;n!=256;++n)t[n]=n;for(n=0;n!=256;++n){i=i+t[n]+e[n%e.length].charCodeAt(0)&255;s=t[n];t[n]=t[i];t[i]=s}n=i=0;var f=Buffer(r.length);for(a=0;a!=r.length;++a){n=n+1&255;i=(i+t[n])%256;s=t[n];t[n]=t[i];t[i]=s;f[a]=r[a]^t[t[n]+t[i]&255]}return f};e.md5=function(e){if(!t)throw new Error("Unsupported crypto");return t.createHash("md5").update(e).digest("hex")}};Lr(Nr,typeof crypto!=="undefined"?crypto:undefined);function Mr(e){return parseInt(Wr(e),10)-1}function Ur(e){return""+(e+1)}function Hr(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function Wr(e){return e.replace(/\$(\d+)$/,"$1")}function zr(e){var r=Gr(e),t=0,a=0;for(;a!==r.length;++a)t=26*t+r.charCodeAt(a)-64;return t-1}function Vr(e){var r="";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function Xr(e){return e.replace(/^([A-Z])/,"$$$1")}function Gr(e){return e.replace(/^\$([A-Z])/,"$1")}function jr(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Kr(e){var r=jr(e);return{c:zr(r[0]),r:Mr(r[1])}}function Yr(e){return Vr(e.c)+Ur(e.r)}function $r(e){return Xr(Hr(e))}function Zr(e){return Gr(Wr(e))}function Qr(e){var r=e.split(":").map(Kr);return{s:r[0],e:r[r.length-1]}}function Jr(e,r){if(typeof r==="undefined"||typeof r==="number"){return Jr(e.s,e.e)}if(typeof e!=="string")e=Yr(e);if(typeof r!=="string")r=Yr(r);return e==r?e:e+":"+r}function qr(e){var r={s:{c:0,r:0},e:{c:0,r:0}};var t=0,a=0,n=0;var i=e.length;for(t=0;a26)break;t=26*t+n}r.s.c=--t;for(t=0;a9)break;t=10*t+n}r.s.r=--t;if(a===i||e.charCodeAt(++a)===58){r.e.c=r.s.c;r.e.r=r.s.r;return r}for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-64)<1||n>26)break;t=26*t+n}r.e.c=--t;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-48)<0||n>9)break;t=10*t+n}r.e.r=--t;return r}function et(e,r){var t=e.t=="d"&&r instanceof Date;if(e.z!=null)try{return e.w=C.format(e.z,t?P(r):r)}catch(a){}try{return e.w=C.format((e.XF||{}).numFmtId||(t?14:0),t?P(r):r)}catch(a){return""+r}}function rt(e,r,t){if(e==null||e.t==null||e.t=="z")return"";if(e.w!==undefined)return e.w;if(e.t=="d"&&!e.z&&t&&t.dateNF)e.z=t.dateNF;if(r==undefined)return et(e,e.v);return et(e,r)}function tt(e,r){var t=r&&r.sheet?r.sheet:"Sheet1";var a={};a[t]=e;return{SheetNames:[t],Sheets:a}}function at(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=t.dense?[]:{};var n={s:{c:1e7,r:1e7},e:{c:0,r:0}};for(var i=0;i!=e.length;++i){for(var s=0;s!=e[i].length;++s){if(typeof e[i][s]==="undefined")continue;var f={v:e[i][s]};if(Array.isArray(f.v)){f.f=e[i][s][1];f.v=f.v[0]}if(n.s.r>i)n.s.r=i;if(n.s.c>s)n.s.c=s;if(n.e.r0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}function ft(e,r){return{ich:e._R(2),ifnt:e._R(2)}}function ot(e,r){if(!r)r=xr(4);r._W(2,e.ich||0);r._W(2,e.ifnt||0);return r}function lt(e,r){var t=e.l;var a=e._R(1);var n=it(e);var i=[];var s={t:n,h:n};if((a&1)!==0){var f=e._R(4);for(var o=0;o!=f;++o)i.push(ft(e));s.r=i}else s.r=[{ich:0,ifnt:0}];e.l=t+r;return s}function ct(e,r){var t=false;if(r==null){t=true;r=xr(15+4*e.t.length)}r._W(1,0);st(e.t,r);return t?r.slice(0,r.l):r}var ht=lt;function ut(e,r){var t=false;if(r==null){t=true;r=xr(23+4*e.t.length)}r._W(1,1);st(e.t,r);r._W(4,1);ot({ich:0,ifnt:0},r);return t?r.slice(0,r.l):r}function dt(e){var r=e._R(4);var t=e._R(2);t+=e._R(1)<<16;var a=e._R(1);return{c:r,iStyleRef:t}}function pt(e,r){if(r==null)r=xr(8);r._W(-4,e.c);r._W(3,e.iStyleRef||e.s);r._W(1,0);return r}var vt=it;var gt=st;function bt(e){var r=e._R(4);return r===0||r===4294967295?"":e._R(r,"dbcs")}function mt(e,r){var t=false;if(r==null){t=true;r=xr(127)}r._W(4,e.length>0?e.length:4294967295);if(e.length>0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}var Ct=it;var Et=st;var kt=bt;var wt=mt;function St(e){var r=e.slice(e.l,e.l+4);var t=r[0]&1,a=r[0]&2;e.l+=4;r[0]&=252;var n=a===0?or([0,0,0,0,r[0],r[1],r[2],r[3]],0):vr(r,0)>>2;return t?n/100:n}function At(e,r){if(r==null)r=xr(4);var t=0,a=0,n=e*100;if(e==(e|0)&&e>=-(1<<29)&&e<1<<29){a=1}else if(n==(n|0)&&n>=-(1<<29)&&n<1<<29){a=1;t=1}if(a)r._W(-4,((t?n:e)<<2)+(t+2));else throw new Error("unsupported RkNumber "+e)}function Bt(e){var r={s:{},e:{}};r.s.r=e._R(4);r.e.r=e._R(4);r.s.c=e._R(4);r.e.c=e._R(4);return r}function _t(e,r){if(!r)r=xr(16);r._W(4,e.s.r);r._W(4,e.e.r);r._W(4,e.s.c);r._W(4,e.e.c);return r}var Tt=Bt;var xt=_t;function It(e,r){return e._R(8,"f")}function yt(e,r){return(r||xr(8))._W(8,e,"f")}var Rt={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var Dt=R(Rt);function Ot(e,r){var t={};var a=e._R(1);var n=a&1;var i=a>>>1;var s=e._R(1);var f=e._R(2,"i");var o=e._R(1);var l=e._R(1);var c=e._R(1);var h=e._R(1);switch(i){case 0:t.auto=1;break;case 1:t.index=s;var u=ta[s];if(u)t.rgb=uf(u);break;case 2:t.rgb=uf([o,l,c]);break;case 3:t.theme=s;break;}if(f!=0)t.tint=f>0?f/32767:f/32768;return t}function Ft(e,r){if(!r)r=xr(8);if(!e||e.auto){r._W(4,0);r._W(4,0);return r}if(e.index){r._W(1,2);r._W(1,e.index)}else if(e.theme){r._W(1,6);r._W(1,e.theme)}else{r._W(1,5);r._W(1,0)}var t=e.tint||0;if(t>0)t*=32767;else if(t<0)t*=32768;r._W(2,t);if(!e.rgb){r._W(2,0);r._W(1,0);r._W(1,0)}else{var a=e.rgb||"FFFFFF";r._W(1,parseInt(a.substr(0,2),16));r._W(1,parseInt(a.substr(2,2),16));r._W(1,parseInt(a.substr(4,2),16));r._W(1,255)}return r}function Pt(e,r,t){var a=e._R(1);e.l++;var n={fItalic:a&2,fStrikeout:a&8,fOutline:a&16,fShadow:a&32,fCondense:a&64,fExtend:a&128};return n}function Nt(e,r){if(!r)r=xr(2);var t=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);r._W(1,t);r._W(1,0);return r}{var Lt=2;var Mt=3;var Ut=11;var Ht=12;var Wt=19;var zt=21;var Vt=30;var Xt=64;var Gt=71;var jt=4096;var Kt=80;var Yt=81;var $t=[Kt,Yt]}var Zt={1:{n:"CodePage",t:Lt},2:{n:"Category",t:Kt},3:{n:"PresentationFormat",t:Kt},4:{n:"ByteCount",t:Mt},5:{n:"LineCount",t:Mt},6:{n:"ParagraphCount",t:Mt},7:{n:"SlideCount",t:Mt},8:{n:"NoteCount",t:Mt},9:{n:"HiddenCount",t:Mt},10:{n:"MultimediaClipCount",t:Mt},11:{n:"Scale",t:Ut},12:{n:"HeadingPair",t:jt|Ht},13:{n:"DocParts",t:jt|Vt},14:{n:"Manager",t:Kt},15:{n:"Company",t:Kt},16:{n:"LinksDirty",t:Ut},17:{n:"CharacterCount",t:Mt},19:{n:"SharedDoc",t:Ut},22:{n:"HLinksChanged",t:Ut},23:{n:"AppVersion",t:Mt,p:"version"},26:{n:"ContentType",t:Kt},27:{n:"ContentStatus",t:Kt},28:{n:"Language",t:Kt},29:{n:"Version",t:Kt},255:{}};var Qt={1:{n:"CodePage",t:Lt},2:{n:"Title",t:Kt},3:{n:"Subject",t:Kt},4:{n:"Author",t:Kt},5:{n:"Keywords",t:Kt},6:{n:"Comments",t:Kt},7:{n:"Template",t:Kt},8:{n:"LastAuthor",t:Kt},9:{n:"RevNumber",t:Kt},10:{n:"EditTime",t:Xt},11:{n:"LastPrinted",t:Xt},12:{n:"CreatedDate",t:Xt},13:{n:"ModifiedDate",t:Xt},14:{n:"PageCount",t:Mt},15:{n:"WordCount",t:Mt},16:{n:"CharCount",t:Mt},17:{n:"Thumbnail",t:Gt},18:{n:"ApplicationName",t:Vt},19:{n:"DocumentSecurity",t:Mt},255:{}};var Jt={2147483648:{n:"Locale",t:Wt},2147483651:{n:"Behavior",t:Wt},1919054434:{}};(function(){for(var e in Jt)if(Jt.hasOwnProperty(e))Zt[e]=Qt[e]=Jt[e]})();var qt={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var ea=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function ra(e){return e.map(function(e){return[e>>16&255,e>>8&255,e&255]})}var ta=ra([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var aa={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO", -"application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"};var na=function(){var e={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};x(e).forEach(function(r){if(!e[r].xlsm)e[r].xlsm=e[r].xlsx});x(e).forEach(function(r){x(e[r]).forEach(function(t){aa[e[r][t]]=r})});return e}();var ia=D(aa);ze.CT="http://schemas.openxmlformats.org/package/2006/content-types";function sa(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""}}function fa(e,r){var t=sa();if(!e||!e.match)return t;var a={};(e.match(oe)||[]).forEach(function(e){var r=he(e);switch(r[0].replace(le,"<")){case"0?t.calcchains[0]:"";t.sst=t.strs.length>0?t.strs[0]:"";t.style=t.styles.length>0?t.styles[0]:"";t.defaults=a;delete t.calcchains;return t}var oa=Ue("Types",null,{xmlns:ze.CT,"xmlns:xsd":ze.xsd,"xmlns:xsi":ze.xsi});var la=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",ia.rels[0]]].map(function(e){return Ue("Default",null,{Extension:e[0],ContentType:e[1]})});function ca(e,r){var t=[],a;t[t.length]=se;t[t.length]=oa;t=t.concat(la);var n=function(n){if(e[n]&&e[n].length>0){a=e[n][0];t[t.length]=Ue("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:na[n][r.bookType||"xlsx"]})}};var i=function(a){(e[a]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:na[a][r.bookType||"xlsx"]})})};var s=function(r){(e[r]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:ia[r][0]})})};n("workbooks");i("sheets");i("charts");s("themes");["strs","styles"].forEach(n);["coreprops","extprops","custprops"].forEach(s);s("vba");s("comments");s("drawings");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var ha={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function ua(e){var r=e.lastIndexOf("/");return e.substr(0,r+1)+"_rels/"+e.substr(r+1)+".rels"}function da(e,r){if(!e)return e;if(r.charAt(0)!=="/"){r="/"+r}var t={};var a={};(e.match(oe)||[]).forEach(function(e){var n=he(e);if(n[0]==="2){r[r.length]="";r[1]=r[1].replace("/>",">")}return r.join("")}function ga(e,r,t,a,n){if(!n)n={};if(!e["!id"])e["!id"]={};if(r<0)for(r=1;e["!id"]["rId"+r];++r){}n.Id="rId"+r;n.Type=a;n.Target=t;if(n.Type==ha.HLINK)n.TargetMode="External";if(e["!id"][n.Id])throw new Error("Cannot rewrite rId "+r);e["!id"][n.Id]=n;e[("/"+n.Target).replace("//","/")]=n;return r}var ba="application/vnd.oasis.opendocument.spreadsheet";function ma(e,r){var t=Kd(e);var a;var n;while(a=Yd.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=he(a[0],false);if(n.path=="/"&&n.type!==ba)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function Ca(e,r){var t=[se];t.push('\n');t.push(' \n');for(var a=0;a\n');t.push("");return t.join("")}function Ea(e,r,t){return[' \n',' \n'," \n"].join("")}function ka(e,r){return[' \n',' \n'," \n"].join("")}function wa(e,r){var t=[se];t.push('\n');for(var a=0;a!=e.length;++a){t.push(Ea(e[a][0],e[a][1]));t.push(ka("",e[a][0]))}t.push(Ea("","Document","pkg"));t.push("");return t.join("")}var Sa=function(){var e='Sheet'+"JS "+r.version+"";return function t(r,a){return e}}();var Aa=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];ze.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";ha.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var Ba=function(){var e=new Array(Aa.length);for(var r=0;r]*>([\\s\\S]*?)")}return e}();function _a(e){var r={};e=Be(e);for(var t=0;t0)r[a[1]]=n[1];if(a[2]==="date"&&r[a[1]])r[a[1]]=H(r[a[1]])}return r}var Ta=Ue("cp:coreProperties",null,{"xmlns:cp":ze.CORE_PROPS,"xmlns:dc":ze.dc,"xmlns:dcterms":ze.dcterms,"xmlns:dcmitype":ze.dcmitype,"xmlns:xsi":ze.xsi});function xa(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;a[a.length]=t?Ue(e,r,t):Le(e,r)}function Ia(e,r){var t=r||{};var a=[se,Ta],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)xa("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:He(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)xa("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:He(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=Aa.length;++i){var s=Aa[i];var f=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(f===true)f="1";else if(f===false)f="0";else if(typeof f=="number")f=String(f);if(f!=null)xa(s[0],f,null,a,n)}if(a.length>2){a[a.length]="";a[1]=a[1].replace("/>",">")}return a.join("")}var ya=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];ze.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";ha.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function Ra(e,r,t){var a={};if(!r)r={};e=Be(e);ya.forEach(function(t){switch(t[2]){case"string":r[t[1]]=(e.match(ye(t[0]))||[])[1];break;case"bool":r[t[1]]=(e.match(ye(t[0]))||[])[1]==="true";break;case"raw":var n=e.match(new RegExp("<"+t[0]+"[^>]*>([\\s\\S]*?)"));if(n&&n.length>0)a[t[1]]=n[1];break;}});if(a.HeadingPairs&&a.TitlesOfParts){var n=Pe(a.HeadingPairs,t);var i=Pe(a.TitlesOfParts,t).map(function(e){return e.v});var s=0,f=0;if(i.length>0)for(var o=0;o!==n.length;o+=2){f=+n[o+1].v;switch(n[o].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Werkbladen":r.Worksheets=f;r.SheetNames=i.slice(s,s+f);break;case"Named Ranges":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":r.NamedRanges=f;r.DefinedNames=i.slice(s,s+f);break;case"Charts":;case"Diagramme":r.Chartsheets=f;r.ChartNames=i.slice(s,s+f);break;}s+=f}}return r}var Da=Ue("Properties",null,{xmlns:ze.EXT_PROPS,"xmlns:vt":ze.vt});function Oa(e,r){var t=[],a={},n=Ue;if(!e)e={};e.Application="SheetJS";t[t.length]=se;t[t.length]=Da;ya.forEach(function(r){if(e[r[1]]===undefined)return;var a;switch(r[2]){case"string":a=String(e[r[1]]);break;case"bool":a=e[r[1]]?"true":"false";break;}if(a!==undefined)t[t.length]=n(r[0],a)});t[t.length]=n("HeadingPairs",n("vt:vector",n("vt:variant","Worksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"}));t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map(function(e){return""+me(e)+""}).join(""),{size:e.Worksheets,baseType:"lpstr"}));if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}ze.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";ha.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var Fa=/<[^>]+>[^<]*/g;function Pa(e,r){var t={},a="";var n=e.match(Fa);if(n)for(var i=0;i!=n.length;++i){var s=n[i],f=he(s);switch(f[0]){case"":a=null;break;default:if(s.indexOf("");var l=o[0].substring(4),c=o[1];switch(l){case"lpstr":;case"bstr":;case"lpwstr":t[a]=ve(c);break;case"bool":t[a]=Ae(c,"");break;case"i1":;case"i2":;case"i4":;case"i8":;case"int":;case"uint":t[a]=parseInt(c,10);break;case"r4":;case"r8":;case"decimal":t[a]=parseFloat(c);break;case"filetime":;case"date":t[a]=H(c);break;case"cy":;case"error":t[a]=ve(c);break;default:if(l.slice(-1)=="/")break;if(r.WTF&&typeof console!=="undefined")console.warn("Unexpected",s,l,o);}}else if(s.substr(0,2)==="2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var Ma={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};var Ua=y(Ma);function Ha(e,r,t){r=Ua[r]||r;e[r]=t}function Wa(e,r){var t=[];x(Ma).map(function(e){for(var r=0;r'+i.join("")+""}function Va(e){var r=e._R(4),t=e._R(4);return new Date((t/1e7*Math.pow(2,32)+r/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function Xa(e,r,t){var a=e._R(0,"lpstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function Ga(e,r,t){var a=e._R(0,"lpwstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function ja(e,r,t){if(r===31)return Ga(e);return Xa(e,r,t)}function Ka(e,r,t){return ja(e,r,t===false?0:4)}function Ya(e,r){if(!r)throw new Error("VtUnalignedString must have positive length");return ja(e,r,0)}function $a(e){var r=e._R(4);var t=[];for(var a=0;a!=r;++a)t[a]=e._R(0,"lpstr");return t}function Za(e){return $a(e)}function Qa(e){var r=nn(e,Yt);var t=nn(e,Mt);return[r,t]}function Ja(e){var r=e._R(4);var t=[];for(var a=0;a!=r/2;++a)t.push(Qa(e));return t}function qa(e){return Ja(e)}function en(e,r){var t=e._R(4);var a={};for(var n=0;n!=t;++n){var i=e._R(4);var s=e._R(4);a[i]=e._R(s,r===1200?"utf16le":"utf8").replace(b,"").replace(m,"!")}if(e.l&3)e.l=e.l>>2+1<<2;return a}function rn(e){var r=e._R(4);var t=e.slice(e.l,e.l+r);if((r&3)>0)e.l+=4-(r&3)&3;return t}function tn(e){var r={};r.Size=e._R(4);e.l+=r.Size;return r}function an(e,r){}function nn(e,r,t){var a=e._R(2),n,i=t||{};e.l+=2;if(r!==Ht)if(a!==r&&$t.indexOf(r)===-1)throw new Error("Expected type "+r+" saw "+a);switch(r===Ht?a:r){case 2:n=e._R(2,"i");if(!i.raw)e.l+=2;return n;case 3:n=e._R(4,"i");return n;case 11:return e._R(4)!==0;case 19:n=e._R(4);return n;case 30:return Xa(e,a,4).replace(b,"");case 31:return Ga(e);case 64:return Va(e);case 65:return rn(e);case 71:return tn(e);case 80:return Ka(e,a,!i.raw).replace(b,"");case 81:return Ya(e,a).replace(b,"");case 4108:return qa(e);case 4126:return Za(e);default:throw new Error("TypedPropertyValue unrecognized type "+r+" "+a);}}function sn(e,r){var t=e.l;var a=e._R(4);var i=e._R(4);var s=[],f=0;var o=0;var l=-1,c={};for(f=0;f!=i;++f){var h=e._R(4);var u=e._R(4);s[f]=[h,u+t]}var d={};for(f=0;f!=i;++f){if(e.l!==s[f][1]){var p=true;if(f>0&&r)switch(r[s[f-1][0]].t){case 2:if(e.l+2===s[f][1]){e.l+=2;p=false}break;case 80:if(e.l<=s[f][1]){e.l=s[f][1];p=false}break;case 4108:if(e.l<=s[f][1]){e.l=s[f][1];p=false}break;}if(!r&&e.l<=s[f][1]){p=false;e.l=s[f][1]}if(p)throw new Error("Read Error: Expected address "+s[f][1]+" at "+e.l+" :"+f)}if(r){var v=r[s[f][0]];d[v.n]=nn(e,v.t,{raw:true});if(v.p==="version")d[v.n]=String(d[v.n]>>16)+"."+String(d[v.n]&65535);if(v.n=="CodePage")switch(d[v.n]){case 0:d[v.n]=1252;case 874:;case 932:;case 936:;case 949:;case 950:;case 1250:;case 1251:;case 1253:;case 1254:;case 1255:;case 1256:;case 1257:;case 1258:;case 1e4:;case 1200:;case 1201:;case 1252:;case 65e3:;case-536:;case 65001:;case-535:n(o=d[v.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[v.n]);}}else{if(s[f][0]===1){o=d.CodePage=nn(e,Lt);n(o);if(l!==-1){var g=e.l;e.l=s[l][1];c=en(e,o);e.l=g}}else if(s[f][0]===0){if(o===0){l=f;e.l=s[f+1][1];continue}c=en(e,o)}else{var b=c[s[f][0]];var m;switch(e[e.l]){case 65:e.l+=4;m=rn(e);break;case 30:e.l+=4;m=Ka(e,e[e.l-4]);break;case 31:e.l+=4;m=Ka(e,e[e.l-4]);break;case 3:e.l+=4;m=e._R(4,"i");break;case 19:e.l+=4;m=e._R(4);break;case 5:e.l+=4;m=e._R(8,"f");break;case 11:e.l+=4;m=hn(e,4);break;case 64:e.l+=4;m=H(Va(e));break;default:throw new Error("unparsed value: "+e[e.l]);}d[b]=m}}}e.l=t+a;return d}function fn(e,r){var t=e.content;if(!t)return{};Ar(t,0);var a,n,i,s,f=0;t.chk("feff","Byte Order: ");var o=t._R(2);var l=t._R(4);t.chk(_.utils.consts.HEADER_CLSID,"CLSID: ");a=t._R(4);if(a!==1&&a!==2)throw new Error("Unrecognized #Sets: "+a);n=t._R(16);s=t._R(4);if(a===1&&s!==t.l)throw new Error("Length mismatch: "+s+" !== "+t.l);else if(a===2){i=t._R(16);f=t._R(4)}var c=sn(t,r);var h={SystemIdentifier:l};for(var u in c)h[u]=c[u];h.FMTID=n;if(a===1)return h;if(t.l!==f)throw new Error("Length mismatch 2: "+t.l+" !== "+f);var d;try{d=sn(t,null)}catch(p){}for(u in d)h[u]=d[u];h.FMTID=[n,i];return h}function on(e,r){e._R(r);return null}function ln(e,r){if(!r)r=xr(e);for(var t=0;t=12?2:1);var i=1,s="sbcs-cont";var f=t;if(a&&a.biff>=8)t=1200;if(!a||a.biff==8){var o=e._R(1);if(o){i=2;s="dbcs-cont"}}else if(a.biff==12){i=2;s="wstr"}var l=n?e._R(n,s):"";t=f;return l}function Cn(e){var r=t;t=1200;var a=e._R(2),n=e._R(1);var i=n&1,s=n&4,f=n&8;var o=1+(n&1);var l=0,c;var h={};if(f)l=e._R(2);if(s)c=e._R(4);var u=n&1?"dbcs-cont":"sbcs-cont";var d=a===0?"":e._R(a,u);if(f)e.l+=4*l;if(s)e.l+=c;h.t=d;if(!f){h.raw=""+h.t+"";h.r=h.t}t=r;return h}function En(e,r,t){var a;if(t){if(t.biff>=2&&t.biff<=5)return e._R(r,"sbcs-cont");if(t.biff>=12)return e._R(r,"dbcs-cont")}var n=e._R(1);if(n===0){a=e._R(r,"sbcs-cont")}else{a=e._R(r,"dbcs-cont")}return a}function kn(e,r,t){var a=e._R(t&&t.biff==2?1:2);if(a===0){e.l++;return""}return En(e,a,t)}function wn(e,r,t){if(t.biff>5)return kn(e,r,t);var a=e._R(1);if(a===0){e.l++;return""}return e._R(a,"sbcs-cont")}function Sn(e,r,t){var a=e._R(1);e.l++;var n=e._R(2);e.l+=2;return[a,n]}function An(e){var r=e._R(4),t=e.l;var a=false;if(r>24){e.l+=r-24;if(e._R(16)==="795881f43b1d7f48af2c825dc4852763")a=true;e.l=t}var n=e._R((a?r-24:r)>>1,"utf16le").replace(b,"");if(a)e.l+=24;return n}function Bn(e,r){var t=e._R(2);var a=e._R(4);var n=e._R(a,"cstr");var i=e._R(2);var s=e._R(2);var f=e._R(4);if(f===0)return n.replace(/\\/g,"/");var o=e._R(4);var l=e._R(2);var c=e._R(o>>1,"utf16le").replace(b,"");return c}function _n(e,r){var t=e._R(16);r-=16;switch(t){case"e0c9ea79f9bace118c8200aa004ba90b":return An(e,r);case"0303000000000000c000000000000046":return Bn(e,r);default:throw new Error("Unsupported Moniker "+t);}}function Tn(e,r){var t=e._R(4);var a=e._R(t,"utf16le").replace(b,"");return a}function xn(e,r){var t=e.l+r;var a=e._R(4);if(a!==2)throw new Error("Unrecognized streamVersion: "+a);var n=e._R(2);e.l+=2;var i,s,f,o,l,c,h;if(n&16)i=Tn(e,t-e.l);if(n&128)s=Tn(e,t-e.l);if((n&257)===257)f=Tn(e,t-e.l);if((n&257)===1)o=_n(e,t-e.l);if(n&8)l=Tn(e,t-e.l);if(n&32)c=e._R(16);if(n&64)h=Va(e);e.l=t;var u=s||f||o;if(l)u+="#"+l;return{Target:u}}function In(e,r){var t=e._R(1),a=e._R(1),n=e._R(1),i=e._R(1);return[t,a,n,i]}function yn(e,r){var t=In(e,r);t[3]=0;return t}function Rn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);return{r:t,c:a,ixfe:n}}function Dn(e,r,t,a){if(!a)a=xr(6);a._W(2,e);a._W(2,r);a._W(2,t||0);return a}function On(e){var r=e._R(2);var t=e._R(2);e.l+=8;return{type:r,flags:t}}function Fn(e,r,t){return r===0?"":wn(e,r,t)}function Pn(e,r,t){var a=t.biff>8?4:2;var n=e._R(a),i=e._R(a,"i"),s=e._R(a,"i");return[n,i,s]}function Nn(e,r){var t=e._R(2);var a=St(e);return[t,a]}function Ln(e,r,t){e.l+=4;r-=4;var a=e.l+r;var n=mn(e,r,t);var i=e._R(2);a-=e.l;if(i!==a)throw new Error("Malformed AddinUdf: padding = "+a+" != "+i);e.l+=i;return n}function Mn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);var i=e._R(2);return{s:{c:n,r:t},e:{c:i,r:a}}}function Un(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(1);var i=e._R(1);return{s:{c:n,r:t},e:{c:i,r:a}}}var Hn=Un;function Wn(e,r){e.l+=4;var t=e._R(2);var a=e._R(2);var n=e._R(2);e.l+=12;return[a,t,n]}function zn(e,r){var t={};e.l+=4;e.l+=16;t.fSharedNote=e._R(2);e.l+=4;return t}function Vn(e,r){var t={};e.l+=4;e.cf=e._R(2);return t}function Xn(e,r){e.l+=2;e.l+=e._R(2)}var Gn={0:Xn,4:Xn,5:Xn,6:Xn,7:Vn,8:Xn,9:Xn,10:Xn,11:Xn,12:Xn,13:zn,14:Xn,15:Xn,16:Xn,17:Xn,18:Xn,19:Xn,20:Xn,21:Wn};function jn(e,r,t){var a=e.l+r;var n=[];while(e.l=2){t.dt=e._R(2);e.l-=2}switch(t.BIFFVer){case 1536:;case 1280:;case 2:;case 7:break;default:if(r>6)throw new Error("Unexpected BIFF Ver "+t.BIFFVer);}e._R(r);return t}function Yn(e,r,t){var a=1536,n=16;switch(t.bookType){case"biff8":break;case"biff5":a=1280;n=8;break;case"biff4":a=4;n=6;break;case"biff3":a=3;n=6;break;case"biff2":a=2;n=4;break;default:throw new Error("unsupported BIFF version");}var i=xr(n);i._W(2,a);i._W(2,r);if(n>4)i._W(2,29282);if(n>6)i._W(2,1997);if(n>8){i._W(2,49161);i._W(2,1);i._W(2,1798);i._W(2,0)}return i}function $n(e,r){if(r===0)return 1200;var t;if((t=e._R(2))!==1200){}return 1200}function Zn(e,r,t){if(t.enc){e.l+=r;return""}var a=e.l;var n=kn(e,0,t);e._R(r+a-e.l);return n}function Qn(e,r){var t=xr(112);t._W(r.biff==8?2:1,7);t._W(1,0);t._W(4,859007059);t._W(4,5458548);while(t.l>15);n&=32767}var i={Unsynced:a&1,DyZero:(a&2)>>1,ExAsc:(a&4)>>2,ExDsc:(a&8)>>3};return[i,n]}function si(e,r){var t=e._R(2),a=e._R(2),n=e._R(2),i=e._R(2);var s=e._R(2),f=e._R(2),o=e._R(2);var l=e._R(2),c=e._R(2);return{Pos:[t,a],Dim:[n,i],Flags:s,CurTab:f,FirstTab:o,Selected:l,TabRatio:c}}function fi(e){var r=xr(18);r._W(2,0);r._W(2,0);r._W(2,29280);r._W(2,17600);r._W(2,56);r._W(2,0);r._W(2,0);r._W(2,1);r._W(2,500);return r}function oi(e,r,t){var a={dyHeight:e._R(2),fl:e._R(2)};switch(t&&t.biff||8){case 2:break;case 3:;case 4:e.l+=2;break;default:e.l+=10;break;}a.name=mn(e,0,t);return a}function li(e,r){var t=Rn(e);t.isst=e._R(4);return t}function ci(e,r,t){var a=e.l+r;var n=Rn(e,6);if(t.biff==2)e.l++;var i=kn(e,a-e.l,t);n.val=i;return n}function hi(e,r,t,a){var n=xr(6+3+2*t.length);Dn(e,r,0,n);n._W(2,t.length);n._W(1,1);n._W(2*t.length,t,"utf16le");return n}function ui(e,r,t){var a=e._R(2);var n=wn(e,0,t);return[a,n]}var di=wn;function pi(e,r,t){var a=e.l+r;var n=t.biff==8||!t.biff?4:2;var i=e._R(n),s=e._R(n);var f=e._R(2),o=e._R(2);e.l=a;return{s:{r:i,c:f},e:{r:s,c:o}}}function vi(e,r){var t=xr(14);t._W(4,e.s.r);t._W(4,e.e.r+1);t._W(2,e.s.c);t._W(2,e.e.c+1);t._W(2,0);return t}function gi(e,r){var t=e._R(2),a=e._R(2);var n=Nn(e);return{r:t,c:a,ixfe:n[0],rknum:n[1]}}function bi(e,r){var t=e.l+r-2;var a=e._R(2),n=e._R(2);var i=[];while(e.l>26];if(!a.cellStyles)return n;n.alc=i&7;n.fWrap=i>>3&1;n.alcV=i>>4&7;n.fJustLast=i>>7&1;n.trot=i>>8&255;n.cIndent=i>>16&15;n.fShrinkToFit=i>>20&1;n.iReadOrder=i>>22&2;n.fAtrNum=i>>26&1;n.fAtrFnt=i>>27&1;n.fAtrAlc=i>>28&1;n.fAtrBdr=i>>29&1;n.fAtrPat=i>>30&1;n.fAtrProt=i>>31&1;n.dgLeft=s&15;n.dgRight=s>>4&15;n.dgTop=s>>8&15;n.dgBottom=s>>12&15;n.icvLeft=s>>16&127;n.icvRight=s>>23&127;n.grbitDiag=s>>30&3;n.icvTop=f&127;n.icvBottom=f>>7&127;n.icvDiag=f>>14&127;n.dgDiag=f>>21&15;n.icvFore=o&127;n.icvBack=o>>7&127;n.fsxButton=o>>14&1;return n}function Ei(e,r,t){return Ci(e,r,0,t)}function ki(e,r,t){return Ci(e,r,1,t)}function wi(e,r,t){var a={};a.ifnt=e._R(2);a.numFmtId=e._R(2);a.flags=e._R(2);a.fStyle=a.flags>>2&1;r-=6;a.data=Ci(e,r,a.fStyle,t);return a}function Si(e,r){e.l+=4;var t=[e._R(2),e._R(2)];if(t[0]!==0)t[0]--;if(t[1]!==0)t[1]--;if(t[0]>7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}function Ai(e){var r=xr(8);r._W(4,0);r._W(2,e[0]?e[0]+1:0);r._W(2,e[1]?e[1]+1:0);return r}function Bi(e,r,t){var a=Rn(e,6);if(t.biff==2)++e.l;var n=gn(e,2);a.val=n;a.t=n===true||n===false?"b":"e";return a}function _i(e,r,t,a,n){var i=xr(8);Dn(e,r,0,i);bn(t,n,i);return i}function Ti(e,r){var t=Rn(e,6);var a=It(e,8);t.val=a;return t}function xi(e,r,t,a){var n=xr(14);Dn(e,r,0,n);yt(t,n);return n}var Ii=Fn;function yi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(2);t.sbcch=i;if(i==1025||i==14849)return[i,n];if(i<1||i>255)throw new Error("Unexpected SupBook type: "+i);var s=En(e,i);var f=[];while(a>e.l)f.push(kn(e));return[i,n,s,f]}function Ri(e,r,t){var a=e._R(2);var n;var i={fBuiltIn:a&1,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=Ln(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}var Di=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function Oi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var f=e._R(t&&t.biff==2?1:2);var o=0;if(!t||t.biff>=5){e.l+=2;o=e._R(2);e.l+=4}var l=En(e,s,t);if(n&32)l=Di[l.charCodeAt(0)];var c=a-e.l;if(t&&t.biff==2)--c;var h=a==e.l||f==0?[]:Uc(e,c,t,f);return{chKey:i,Name:l,itab:o,rgce:h}}function Fi(e,r,t){if(t.biff<8)return Pi(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(Pn(e,t.biff>8?12:6,t));var s=[];return a}function Pi(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=mn(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function Ni(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=En(e,a,t); -var s=En(e,n,t);return[i,s]}function Li(e,r,t){var a=Un(e,6);e.l++;var n=e._R(1);r-=8;return[Wc(e,r,t),n]}function Mi(e,r,t){var a=Hn(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,zc(e,r,t,a)]}function Ui(e,r){var t=e._R(4)!==0;var a=e._R(4)!==0;var n=e._R(4);return[t,a,n]}function Hi(e,r,t){if(t.biff<8)return;var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var f=wn(e,0,t);if(t.biff<8)e._R(1);return[{r:a,c:n},f,s,i]}function Wi(e,r,t){return Hi(e,r,t)}function zi(e,r){var t=[];var a=e._R(2);while(a--)t.push(Mn(e,r));return t}function Vi(e,r,t){if(t&&t.biff<8)return Gi(e,r,t);var a=Wn(e,22);var n=jn(e,r-22,a[1]);return{cmo:a,ft:n}}var Xi=[];Xi[8]=function(e,r,t){var a=e.l+r;e.l+=10;var n=e._R(2);e.l+=4;var i=e._R(2);e.l+=2;var s=e._R(2);e.l+=4;var f=e._R(1);e.l+=f;e.l=a;return{fmt:n}};function Gi(e,r,t){var a=e._R(4);var n=e._R(2);var i=e._R(2);var s=e._R(2);var f=e._R(2);var o=e._R(2);var l=e._R(2);var c=e._R(2);var h=e._R(2);var u=e._R(2);var d=e._R(2);var p=e._R(2);var v=e._R(2);e.l+=6;r-=36;var g=[];g.push((Xi[n]||Br)(e,r,t));return{cmo:[i,n,s],ft:g}}function ji(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=Sn(e,6,t);var f=e._R(2);var o=e._R(2);var l=dn(e,2);var c=e._R(2);e.l+=c;for(var h=1;h=(u?f:2*f))break}if(n.length!==f&&n.length!==f*2){throw new Error("cchText: "+f+" != "+n.length)}e.l=a+r;return{t:n}}catch(p){e.l=a+r;return{t:n}}}function Ki(e,r){var t=Mn(e,8);e.l+=16;var a=xn(e,r-24);return[t,a]}function Yi(e,r){var t=e.l+r;e._R(2);var a=Mn(e,8);var n=e._R((r-10)/2,"dbcs-cont");n=n.replace(b,"");return[a,n]}function $i(e,r){var t=[],a;a=e._R(2);t[0]=qt[a]||a;a=e._R(2);t[1]=qt[a]||a;return t}function Zi(e){if(!e)e=xr(4);e._W(2,1);e._W(2,1);return e}function Qi(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(yn(e,8));return a}function Ji(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(yn(e,8));return a}function qi(e,r){e.l+=2;var t={cxfs:0,crc:0};t.cxfs=e._R(2);t.crc=e._R(4);return t}function es(e,r,t){if(!t.cellStyles)return Br(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var f=e._R(a);var o=e._R(2);if(a==2)e.l+=2;return{s:n,e:i,w:s,ixfe:f,flags:o}}function rs(e,r,t){var a={};e.l+=16;a.header=It(e,8);a.footer=It(e,8);e.l+=2;return a}function ts(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function as(e){var r=xr(2*e);for(var t=0;t0){if(n[n.l]===42){n.l+=h;continue}++n.l;a[++E]=[];k=0;for(k=0;k!=b.length;++k){var w=n.slice(n.l,n.l+b[k].len);n.l+=b[k].len;Ar(w,0);var S=cptable.utils.decode(g,w);switch(b[k].type){case"C":a[E][k]=cptable.utils.decode(g,w);a[E][k]=a[E][k].trim();break;case"D":if(S.length===8)a[E][k]=new Date(+S.substr(0,4),+S.substr(4,2)-1,+S.substr(6,2));else a[E][k]=S;break;case"F":a[E][k]=parseFloat(S.trim());break;case"I":a[E][k]=w._R(4,"i");break;case"L":switch(S.toUpperCase()){case"Y":;case"T":a[E][k]=true;break;case"N":;case"F":a[E][k]=false;break;case" ":;case"?":a[E][k]=false;break;default:throw new Error("DBF Unrecognized L:|"+S+"|");}break;case"M":if(!s)throw new Error("DBF Unexpected MEMO for type "+i.toString(16));a[E][k]="##MEMO##"+w._R(4);break;case"N":a[E][k]=+S.replace(/\u0000/g,"").trim();break;case"T":var A=w._R(4),B=w._R(4);throw new Error(A+" | "+B);case"Y":a[E][k]=w.read(4,"i")/1e4;break;case"0":if(b[k].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+b[k].type);}}}if(i!=2)if(n.l0)switch(m){case"ID":break;case"E":break;case"B":break;case"O":break;case"P":if(b[1].charAt(0)=="P")o.push(g.substr(3).replace(/;;/g,";"));break;case"C":for(s=1;s0){h[a].hpt=p;h[a].hpx=Df(p)}else if(p==0)h[a].hidden=true;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+g);}if(w<1)l=null;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+g);}}if(h.length>0)c["!rows"]=h;if(u.length>0)c["!cols"]=u;return[f,c]}function t(r,t){var a=e(r,t);var n=a[0],i=a[1];var s=at(n,t);x(i).forEach(function(e){s[e]=i[e]});return s}function a(e,r){return tt(t(e,r),r)}function n(e,r,t,a,n){var i="C;Y"+(t+1)+";X"+(a+1)+";K";switch(e.t){case"n":i+=e.v||0;if(e.f&&!e.F)i+=";E"+hl(e.f,{r:t,c:a});break;case"b":i+=e.v?"TRUE":"FALSE";break;case"e":i+=e.w||e.v;break;case"d":i+='"'+(e.w||e.v)+'"';break;case"s":i+='"'+e.v.replace(/"/g,"")+'"';break;}return i}function i(e,r){r.forEach(function(r,t){var a="F;W"+(t+1)+" "+(t+1)+" ";if(r.hidden)a+="0";else{if(typeof r.width=="number")r.wpx=Ef(r.width);if(typeof r.wpx=="number")r.wch=kf(r.wpx);if(typeof r.wch=="number")a+=Math.round(r.wch)}if(a.charAt(a.length-1)!=" ")e.push(a)})}function s(e,r){r.forEach(function(r,t){var a="F;";if(r.hidden)a+="M0;";else if(r.hpt)a+="M"+20*r.hpt+";";else if(r.hpx)a+="M"+20*Rf(r.hpx)+";";if(a.length>2)e.push(a+"R"+(t+1))})}function f(e,r){var t=["ID;PWXL;N;E"],a=[];var f=qr(e["!ref"]),o;var l=Array.isArray(e);var c="\r\n";t.push("P;PGeneral");t.push("F;P0;DG0G8;M255");if(e["!cols"])i(t,e["!cols"]);if(e["!rows"])s(t,e["!rows"]);t.push("B;Y"+(f.e.r-f.s.r+1)+";X"+(f.e.c-f.s.c+1)+";D"+[f.s.c,f.s.r,f.e.c,f.e.r].join(" "));for(var h=f.s.r;h<=f.e.r;++h){for(var u=f.s.c;u<=f.e.c;++u){var d=Yr({r:h,c:u});o=l?(e[h]||[])[u]:e[d];if(!o||o.v==null&&(!o.f||o.F))continue;a.push(n(o,e,h,u,r))}}return t.join(c)+c+a.join(c)+c+"E"+c}return{to_workbook:a,to_sheet:t,from_sheet:f}}();var Cs=function(){function e(e,t){switch(t.type){case"base64":return r(u.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=e.split("\n"),a=-1,n=-1,i=0,s=[];for(;i!==t.length;++i){if(t[i].trim()==="BOT"){s[++a]=[];n=0;continue}if(a<0)continue;var f=t[i].trim().split(",");var o=f[0],l=f[1];++i;var c=t[i].trim();switch(+o){case-1:if(c==="BOT"){s[++a]=[];n=0;continue}else if(c!=="EOD")throw new Error("Unrecognized DIF special command "+c);break;case 0:if(c==="TRUE")s[a][n]=true;else if(c==="FALSE")s[a][n]=false;else if(!isNaN(G(l)))s[a][n]=G(l);else if(!isNaN(j(l).getDate()))s[a][n]=H(l);else s[a][n]=l;++n;break;case 1:c=c.substr(1,c.length-2);s[a][n++]=c!==""?c:null;break;}if(c==="EOD")break}return s}function t(r,t){return at(e(r,t),t)}function a(e,r){return tt(t(e,r),r)}var n=function(){var e=function t(e,r,a,n,i){e.push(r);e.push(a+","+n);e.push('"'+i.replace(/"/g,'""')+'"')};var r=function a(e,r,t,n){e.push(r+","+t);e.push(r==1?'"'+n.replace(/"/g,'""')+'"':n)};return function n(t,a){var n=[];var i=qr(t["!ref"]),s;var f=Array.isArray(t);e(n,"TABLE",0,1,"sheetjs");e(n,"VECTORS",0,i.e.r-i.s.r+1,"");e(n,"TUPLES",0,i.e.c-i.s.c+1,"");e(n,"DATA",0,0,"");for(var o=i.s.r;o<=i.e.r;++o){r(n,-1,0,"BOT");for(var l=i.s.c;l<=i.e.c;++l){var c=Yr({r:o,c:l});s=f?(t[o]||[])[l]:t[c];if(!s){r(n,1,0,"");continue}switch(s.t){case"n":var u=h?s.w:s.v;if(!u&&s.v!=null)u=s.v;if(u==null){if(h&&s.f&&!s.F)r(n,1,0,"="+s.f);else r(n,1,0,"")}else r(n,0,u,"V");break;case"b":r(n,0,s.v?1:0,s.v?"TRUE":"FALSE");break;case"s":r(n,1,0,!h||isNaN(s.v)?s.v:'="'+s.v+'"');break;case"d":if(!s.w)s.w=C.format(s.z||C._table[14],P(H(s.v)));if(h)r(n,0,s.w,"V");else r(n,1,0,s.w);break;default:r(n,1,0,"");}}}r(n,-1,0,"EOD");var d="\r\n";var p=n.join(d);return p}}();return{to_workbook:a,to_sheet:t,from_sheet:n}}();var Es=function(){function e(e,r,t,a,n){if(n.raw)r[t][a]=e;else if(e==="TRUE")r[t][a]=true;else if(e==="FALSE")r[t][a]=false;else if(e===""){}else if(!isNaN(G(e)))r[t][a]=G(e);else if(!isNaN(j(e).getDate()))r[t][a]=H(e);else r[t][a]=e}function r(r,t){var a=t||{};var n=[];if(!r||r.length===0)return n;var i=r.split(/[\r\n]/);var s=i.length-1;while(s>=0&&i[s].length===0)--s;var f=10,o=0;var l=0;for(;l<=s;++l){o=i[l].indexOf(" ");if(o==-1)o=i[l].length;else o++;f=Math.max(f,o)}for(l=0;l<=s;++l){n[l]=[];var c=0;e(i[l].slice(0,f).trim(),n,l,c,a);for(c=1;c<=(i[l].length-f)/10+1;++c)e(i[l].slice(f+(c-1)*10,f+c*10).trim(),n,l,c,a)}return n}function t(e){var r=[],t=false,a=0,n=0;for(;a=(r[9]||0))return",";return"\t"}function a(e,r){var a=r||{};var n="";if(c!=null&&a.dense==null)a.dense=c;var i=a.dense?[]:{};var s={s:{c:0,r:0},e:{c:0,r:0}};if(e.substr(0,4)=="sep="&&e.charCodeAt(5)==10){n=e.charAt(4);e=e.substr(6)}else n=t(e.substr(0,1024));var f=0,o=0,l=0;var h=0,u=0,d=n.charCodeAt(0),p=false,v=0;e=e.replace(/\r\n/gm,"\n");var g=a.dateNF!=null?S(a.dateNF):null;function b(){var r=e.slice(h,u);var t={};if(r.charAt(0)=='"'&&r.charAt(r.length-1)=='"')r=r.slice(1,-1).replace(/""/g,'"');if(r.length==0)t.t="z";else if(a.raw){t.t="s";t.v=r}else if(r.trim().length==0){t.t="s";t.v=r}else if(r.charCodeAt(0)==61){if(r.charCodeAt(1)==34&&r.charCodeAt(r.length-1)==34){t.t="s";t.v=r.slice(2,-1).replace(/""/g,'"')}else if(pl(r)){t.t="n";t.f=r.substr(1)}else{t.t="s";t.v=r}}else if(r=="TRUE"){t.t="b";t.v=true}else if(r=="FALSE"){t.t="b";t.v=false}else if(!isNaN(l=G(r))){t.t="n";if(a.cellText!==false)t.w=r;t.v=l}else if(!isNaN(j(r).getDate())||g&&r.match(g)){t.z=a.dateNF||C._table[14];var n=0;if(g&&r.match(g)){r=A(r,a.dateNF,r.match(g)||[]);n=1}if(a.cellDates){t.t="d";t.v=H(r,n)}else{t.t="n";t.v=P(H(r,n))}if(a.cellText!==false)t.w=C.format(t.z,t.v instanceof Date?P(t.v):t.v);if(!a.cellNF)delete t.z}else{t.t="s";t.v=r}if(t.t=="z"){}else if(a.dense){if(!i[f])i[f]=[];i[f][o]=t}else i[Yr({c:o,r:f})]=t;h=u+1;if(s.e.c0)b();i["!ref"]=Jr(s);return i}function n(e,t){if(e.substr(0,4)=="sep=")return a(e,t);if(e.indexOf("\t")>=0||e.indexOf(",")>=0)return a(e,t);return at(r(e,t),t)}function i(e,r){var t="",a=r.type=="string"?[0,0,0,0]:sv(e,r);switch(r.type){case"base64":t=u.decode(e);break;case"binary":t=e;break;case"buffer":t=e.toString("binary");break;case"array":t=W(e);break;case"string":t=e;break;default:throw new Error("Unrecognized type "+r.type);}if(a[0]==239&&a[1]==187&&a[2]==191)t=Be(t.slice(3));return n(t,r)}function s(e,r){return tt(i(e,r),r)}function f(e,r){var t=[];var a=qr(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){var f=[];for(var o=a.s.c;o<=a.e.c;++o){var l=Yr({r:s,c:o});n=i?(e[s]||[])[o]:e[l];if(!n||n.v==null){f.push(" ");continue}var c=(n.w||(rt(n),n.w)||"").substr(0,10);while(c.length<10)c+=" ";f.push(c+(o==0?" ":""))}t.push(f.join(""))}return t.join("\n")}return{to_workbook:s,to_sheet:i,from_sheet:f}}();function ks(e,r){var t=r||{},a=!!t.WTF;t.WTF=true;try{var n=ms.to_workbook(e,t);t.WTF=a;return n}catch(i){t.WTF=a;if(!i.message.match(/SYLK bad record ID/)&&a)throw i;return Es.to_workbook(e,r)}}var ws=function(){function e(e,r,t){if(!e)return;Ar(e,e.l||0);var a=t.Enum||k;while(e.l=4096)a.qpro=true;break;case 6:l=e;break;case 15:if(!a.qpro)e[1].v=e[1].v.substr(1);case 13:;case 14:;case 16:;case 51:if(c==14&&(e[2]&112)==112&&(e[2]&15)>1&&(e[2]&15)<15){e[1].z=a.dateNF||C._table[14];if(a.cellDates){e[1].t="d";e[1].v=N(e[1].v)}}if(a.dense){if(!n[e[0].r])n[e[0].r]=[];n[e[0].r][e[0].c]=e[1]}else n[Yr(e[0])]=e[1];break;}else switch(c){case 22:e[1].v=e[1].v.substr(1);case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>s){n["!ref"]=Jr(l);f[i]=n;n=a.dense?[]:{};l={s:{r:0,c:0},e:{r:0,c:0}};s=e[3];i="Sheet"+(s+1);o.push(i)}n[Yr(e[0])]=e[1];if(l.e.c>1;if(t[1].v&1){switch(a&7){case 1:a=(a>>3)*500;break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(a&7);}}t[1].v=a;return t}function p(e,r){var t=l(e,r);var a=e._R(4);var n=e._R(4);var i=e._R(2);if(i==65535){t[1].v=0;return t}var s=i&32768;i=(i&32767)-16446;t[1].v=(i>0?n<>>-i)+(i>-32?a<>>-(i+32));return t}function g(e,r){var t=p(e,14);e.l+=r-14;return t}function b(e,r){var t=l(e,r);var a=e._R(4);t[1].v=a>>6;return t}function m(e,r){var t=l(e,r);var a=e._R(8,"f");t[1].v=a;return t}function E(e,r){var t=m(e,14);e.l+=r-10;return t}var k={0:{n:"BOF",f:dn},1:{n:"EOF",f:Br},2:{n:"CALCMODE",f:Br},3:{n:"CALCORDER",f:Br},4:{n:"SPLIT",f:Br},5:{n:"SYNC",f:Br},6:{n:"RANGE",f:a},7:{n:"WINDOW1",f:Br},8:{n:"COLW1",f:Br},9:{n:"WINTWO",f:Br},10:{n:"COLW2",f:Br},11:{n:"NAME",f:Br},12:{n:"BLANK",f:Br},13:{n:"INTEGER",f:s},14:{n:"NUMBER",f:f},15:{n:"LABEL",f:i},16:{n:"FORMULA",f:o},24:{n:"TABLE",f:Br},25:{n:"ORANGE",f:Br},26:{n:"PRANGE",f:Br},27:{n:"SRANGE",f:Br},28:{n:"FRANGE",f:Br},29:{n:"KRANGE1",f:Br},32:{n:"HRANGE",f:Br},35:{n:"KRANGE2",f:Br},36:{n:"PROTEC",f:Br},37:{n:"FOOTER",f:Br},38:{n:"HEADER",f:Br},39:{n:"SETUP",f:Br},40:{n:"MARGINS",f:Br},41:{n:"LABELFMT",f:Br},42:{n:"TITLES",f:Br},43:{n:"SHEETJS",f:Br},45:{n:"GRAPH",f:Br},46:{n:"NGRAPH",f:Br},47:{n:"CALCCOUNT",f:Br},48:{n:"UNFORMATTED",f:Br},49:{n:"CURSORW12",f:Br},50:{n:"WINDOW",f:Br},51:{n:"STRING",f:i},55:{n:"PASSWORD",f:Br},56:{n:"LOCKED",f:Br},60:{n:"QUERY",f:Br},61:{n:"QUERYNAME",f:Br},62:{n:"PRINT",f:Br},63:{n:"PRINTNAME",f:Br},64:{n:"GRAPH2",f:Br},65:{n:"GRAPHNAME",f:Br},66:{n:"ZOOM",f:Br},67:{n:"SYMSPLIT",f:Br},68:{n:"NSROWS",f:Br},69:{n:"NSCOLS",f:Br},70:{n:"RULER",f:Br},71:{n:"NNAME",f:Br},72:{n:"ACOMM",f:Br},73:{n:"AMACRO",f:Br},74:{n:"PARSE",f:Br},255:{n:"",f:Br}};var w={0:{n:"BOF",f:Br},1:{n:"EOF",f:Br},3:{n:"??",f:Br},4:{n:"??",f:Br},5:{n:"??",f:Br},6:{n:"??",f:Br},7:{n:"??",f:Br},9:{n:"??",f:Br},10:{n:"??",f:Br},11:{n:"??",f:Br},12:{n:"??",f:Br},14:{n:"??",f:Br},15:{n:"??",f:Br},16:{n:"??",f:Br},17:{n:"??",f:Br},18:{n:"??",f:Br},19:{n:"??",f:Br},21:{n:"??",f:Br},22:{n:"LABEL16",f:h},23:{n:"NUMBER17",f:p},24:{n:"NUMBER18",f:d},25:{n:"FORMULA19",f:g},26:{n:"??",f:Br},27:{n:"??",f:Br},28:{n:"??",f:Br},29:{n:"??",f:Br},30:{n:"??",f:Br},31:{n:"??",f:Br},33:{n:"??",f:Br},37:{n:"NUMBER25",f:b},39:{n:"NUMBER27",f:m},40:{n:"FORMULA28",f:E},255:{n:"",f:Br}};return{to_workbook:r}}();var Ss={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var As=function Zv(){var e=ye("t"),r=ye("rPr"),t=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/,n=/\r\n/g;var i=function f(e,r,t){var a={},n=65001,i="";var s=e.match(oe),f=0;if(s)for(;f!=s.length;++f){var o=he(s[f]);switch(o[0].replace(/\w*:/g,"")){case"":;case"":a.shadow=1;break;case"":break;case"":;case"":a.outline=1;break;case"":break;case"":;case"":a.strike=1;break;case"":break;case"":;case"":a.u=1;break;case"":break;case"":;case"":a.b=1;break;case"":break;case"":;case"":a.i=1;break;case"":break;case"');if(a.b){r.push("");t.push("")}if(a.i){r.push("");t.push("")}if(a.strike){r.push("");t.push("")}if(i=="superscript")i="sup";else if(i=="subscript")i="sub";if(i!=""){r.push("<"+i+">");t.push("")}t.push("");return n};function s(t){var a=[[],"",[]];var s=t.match(e),f=65001;if(!T(s))return"";a[1]=s[1];var o=t.match(r);if(T(o))f=i(o[1],a[0],a[2]);return a[0].join("")+a[1].replace(n,"
    ")+a[2].join("")}return function o(e){return e.replace(t,"").split(a).map(s).join("")}}();var Bs=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,_s=/<(?:\w+:)?r>/;var Ts=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function xs(e,r){var t=r?r.cellHTML:true;var a={};if(!e)return null;var n;if(e.match(/^\s*<(?:\w+:)?t[^>]*>/)){a.t=ve(Be(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||""));a.r=Be(e);if(t)a.h=ke(a.t)}else if(n=e.match(_s)){a.r=Be(e);a.t=ve(Be((e.replace(Ts,"").match(Bs)||[]).join("").replace(oe,"")));if(t)a.h=As(a.r)}return a}var Is=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/;var ys=/<(?:\w+:)?(?:si|sstItem)>/g;var Rs=/<\/(?:\w+:)?(?:si|sstItem)>/;function Ds(e,r){var t=[],a="";if(!e)return t;var n=e.match(Is);if(T(n)){a=n[2].replace(ys,"").split(Rs);for(var i=0;i!=a.length;++i){var s=xs(a[i].trim(),r);if(s!=null)t[t.length]=s}n=he(n[1]);t.Count=n.count;t.Unique=n.uniqueCount}return t}ha.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Os=/^\s|\s$|[\t\n\r]/;function Fs(e,r){if(!r.bookSST)return"";var t=[se];t[t.length]=Ue("sst",null,{xmlns:ze.main[0],count:e.Count,uniqueCount:e.Unique});for(var a=0;a!=e.length;++a){if(e[a]==null)continue;var n=e[a];var i="";if(n.r)i+=n.r;else{i+=""}i+="";t[t.length]=i}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Ps(e,r){return[e._R(4),e._R(4)]}function Ns(e,r){var t=[];var a=false;Ir(e,function n(e,i,s){switch(s){case 159:t.Count=e[0];t.Unique=e[1];break;case 19:t.push(e);break;case 160:return true;case 35:a=true;break;case 36:a=false;break;default:if(i.indexOf("Begin")>0){}else if(i.indexOf("End")>0){}if(!a||r.WTF)throw new Error("Unexpected record "+s+" "+i);}});return t}function Ls(e,r){if(!r)r=xr(8);r._W(4,e.Count);r._W(4,e.Unique);return r}var Ms=ct;function Us(e,r){var t=yr();Rr(t,"BrtBeginSst",Ls(e));for(var a=0;a=4)e.l+=r-4;return t}function zs(e,r){var t={};t.id=e._R(0,"lpp4");t.R=Ws(e,4);t.U=Ws(e,4);t.W=Ws(e,4);return t}function Vs(e){var r=e._R(4);var t=e.l+r-4;var a={};var n=e._R(4);var i=[];while(n-- >0){var s={};s.t=e._R(4);s.v=e._R(0,"lpp4");i.push(s)}a.name=e._R(0,"lpp4");a.comps=i;return a}function Xs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(Vs(e));return t}function Gs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(e._R(0,"lpp4"));return t}function js(e,r){var t={};var a=e._R(4);var n=e.l+a-4;e.l+=4;t.id=e._R(0,"lpp4");t.name=e._R(0,"lpp4");t.R=Ws(e,4);t.U=Ws(e,4);t.W=Ws(e,4);return t}function Ks(e,r){var t=js(e);t.ename=e._R(0,"8lpp4");t.blksz=e._R(4);t.cmode=e._R(4);if(e._R(4)!=4)throw new Error("Bad !Primary record");return t}function Ys(e,r){var t=e.l+r;var a={};a.Flags=e._R(4)&63;e.l+=4;a.AlgID=e._R(4);var n=false;switch(a.AlgID){case 26126:;case 26127:;case 26128:n=a.Flags==36;break;case 26625:n=a.Flags==4;break;case 0:n=a.Flags==16||a.Flags==4||a.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+a.AlgID;}if(!n)throw new Error("Encryption Flags/AlgID mismatch");a.AlgIDHash=e._R(4);a.KeySize=e._R(4);a.ProviderType=e._R(4);e.l+=8;a.CSPName=e._R(t-e.l>>1,"utf16le").slice(0,-1);e.l=t;return a}function $s(e,r){var t={};e.l+=4;t.Salt=e.slice(e.l,e.l+16);e.l+=16;t.Verifier=e.slice(e.l,e.l+16);e.l+=16;var a=e._R(4);t.VerifierHash=e.slice(e.l,e.l+a);e.l+=a;return t}function Zs(e,r){var t=Ws(e);switch(t.Minor){case 2:return Qs(e,t);case 3:return Js(e,t);case 4:return qs(e,t);}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}function Qs(e,r){var t=e._R(4);if((t&63)!=36)throw new Error("EncryptionInfo mismatch");var a=e._R(4);var n=e.l+a;var i=Ys(e,a);var s=$s(e,e.length-e.l);return{t:"Std",h:i,v:s}}function Js(e,r){throw new Error("File is password-protected: ECMA-376 Extensible")}function qs(e,r){throw new Error("File is password-protected: ECMA-376 Agile")}function ef(e,r){var t={};var a=t.EncryptionVersionInfo=Ws(e,4);r-=4;if(a.Minor!=2)throw new Error("unrecognized minor version code: "+a.Minor);if(a.Major>4||a.Major<2)throw new Error("unrecognized major version code: "+a.Major);t.Flags=e._R(4);r-=4;var n=e._R(4);r-=4;t.EncryptionHeader=Ys(e,n);r-=n;t.EncryptionVerifier=$s(e,r);return t}function rf(e,r){var t={};var a=t.EncryptionVersionInfo=Ws(e,4);r-=4;if(a.Major!=1||a.Minor!=1)throw"unrecognized version code "+a.Major+" : "+a.Minor;t.Salt=e._R(16);t.EncryptedVerifier=e._R(16);t.EncryptedVerifierHash=e._R(16);return t}function tf(e){var r=0,t;var a=Hs(e);var n=a.length+1,i,s;var f,o,l;t=p(n);t[0]=a.length;for(i=1;i!=n;++i)t[i]=a[i-1];for(i=n-1;i>=0;--i){s=t[i];f=(r&16384)===0?0:1;o=r<<1&32767;l=f|o;r=l^s}return r^52811}var af=function(){var e=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0];var r=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163];var t=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628];var a=function(e){return(e/2|e*128)&255};var n=function(e,r){return a(e^r)};var i=function(e){var a=r[e.length-1];var n=104;for(var i=e.length-1;i>=0;--i){var s=e[i];for(var f=0;f!=7;++f){if(s&64)a^=t[n];s*=2;--n}}return a};return function(r){var t=Hs(r);var a=i(t);var s=t.length;var f=p(16);for(var o=0;o!=16;++o)f[o]=0;var l,c,h;if((s&1)===1){l=a>>8;f[s]=n(e[0],l);--s;l=a&255;c=t[t.length-1];f[s]=n(c,l)}while(s>0){--s;l=a>>8;f[s]=n(t[s],l);--s;l=a&255;f[s]=n(t[s],l)}s=15;h=15-t.length;while(h>0){l=a>>8;f[s]=n(e[h],l);--s;--h;l=a&255;f[s]=n(t[s],l);--s;--h}return f}}();var nf=function(e,r,t,a,n){if(!n)n=r;if(!a)a=af(e);var i,s;for(i=0;i!=r.length;++i){s=r[i];s^=a[t];s=(s>>5|s<<3)&255;n[i]=s;++t}return[n,t,a]};var sf=function(e){var r=0,t=af(e);return function(e){var a=nf("",e,r,t);r=a[1];return a[0]}};function ff(e,r,t,a){var n={key:dn(e),verificationBytes:dn(e)};if(t.password)n.verifier=tf(t.password);a.valid=n.verificationBytes===n.verifier;if(a.valid)a.insitu_decrypt=sf(t.password);return n}function of(e,r,t){var a=t||{};a.Info=e._R(2);e.l-=2;if(a.Info===1)a.Data=rf(e,r);else a.Data=ef(e,r);return a}function lf(e,r,t){var a={Type:t.biff>=8?e._R(2):0};if(a.Type)of(e,r-2,a);else ff(e,r-2,t,a);return a}var cf=function(){function e(e,t){switch(t.type){case"base64":return r(u.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){throw new Error("Unsupported RTF")}function t(r,t){return tt(e(r,t),t)}function a(){throw new Error("Unsupported")}return{to_workbook:t,to_sheet:e,from_sheet:a}}();function hf(e){var r=e.substr(e[0]==="#"?1:0,6);return[parseInt(r.substr(0,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(4,2),16)]}function uf(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().substr(1)}function df(e){var r=e[0]/255,t=e[1]/255,a=e[2]/255;var n=Math.max(r,t,a),i=Math.min(r,t,a),s=n-i;if(s===0)return[0,0,r];var f=0,o=0,l=n+i;o=s/(l>1?2-l:l);switch(n){case r:f=((t-a)/s+6)%6;break;case t:f=(a-r)/s+2;break;case a:f=(r-t)/s+4;break;}return[f/6,o,l/2]}function pf(e){var r=e[0],t=e[1],a=e[2];var n=t*2*(a<.5?a:1-a),i=a-n/2;var s=[i,i,i],f=6*r;var o;if(t!==0)switch(f|0){ -case 0:;case 6:o=n*f;s[0]+=n;s[1]+=o;break;case 1:o=n*(2-f);s[0]+=o;s[1]+=n;break;case 2:o=n*(f-2);s[1]+=n;s[2]+=o;break;case 3:o=n*(4-f);s[1]+=o;s[2]+=n;break;case 4:o=n*(f-4);s[2]+=n;s[0]+=o;break;case 5:o=n*(6-f);s[2]+=o;s[0]+=n;break;}for(var l=0;l!=3;++l)s[l]=Math.round(s[l]*255);return s}function vf(e,r){if(r===0)return e;var t=df(hf(e));if(r<0)t[2]=t[2]*(1+r);else t[2]=1-(1-t[2])*(1-r);return uf(pf(t))}var gf=6,bf=15,mf=1,Cf=gf;function Ef(e){return Math.floor((e+Math.round(128/Cf)/256)*Cf)}function kf(e){return Math.floor((e-5)/Cf*100+.5)/100}function wf(e){return Math.round((e*Cf+5)/Cf*256)/256}function Sf(e){return((e-5)/Cf*100+.5)/100}function Af(e){return(e*Cf+5)/Cf*256/256}function Bf(e){return wf(kf(Ef(e)))}function _f(e){var r=Math.abs(e-Bf(e)),t=Cf;if(r>.005)for(Cf=mf;Cf.5)t--;if(Math.abs(t)":;case"":break;case"":;case"":n={};if(t.diagonalUp){n.diagonalUp=t.diagonalUp}if(t.diagonalDown){n.diagonalDown=t.diagonalDown}r.Borders.push(n);break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in borders");}})}function Pf(e,r,t,a){r.Fills=[];var n={};e[0].match(oe).forEach(function(e){var t=he(e);switch(t[0]){case"":;case"":break;case"":;case"":n={};r.Fills.push(n);break;case"":break;case"":break;case"":r.Fills.push(n);n={};break;case"":if(t.patternType)n.patternType=t.patternType;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":break;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in fills");}})}function Nf(e,r,t,a){r.Fonts=[];var n={};e[0].match(oe).forEach(function(e){var i=he(e);switch(i[0]){case"":;case"":break;case"":break;case"
    ":;case"":r.Fonts.push(n);n={};break;case"":;case"":break;case"":n.bold=1;break;case"":n.italic=1;break;case"":n.underline=1;break;case"":n.strike=1;break;case"":n.outline=1;break;case"":n.shadow=1;break;case"":n.condense=1;break;case"":n.extend=1;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+i[0]+" in fonts");}})}function Lf(e,r,t){r.NumberFmt=[];var a=x(C._table);for(var n=0;n":;case"":;case"":break;case"0){if(o>392){for(o=392;o>60;--o)if(r.NumberFmt[o]==null)break;r.NumberFmt[o]=f}C.load(f,o)}}break;case"":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function Mf(e,r){var t=[""];[[5,8],[23,26],[41,44],[50,392]].forEach(function(r){for(var a=r[0];a<=r[1];++a)if(e[a]!=null)t[t.length]=Ue("numFmt",null,{numFmtId:a,formatCode:me(e[a])})});if(t.length===1)return"";t[t.length]="";t[0]=Ue("numFmts",null,{count:t.length-2}).replace("/>",">");return t.join("")}var Uf=["numFmtId","fillId","fontId","borderId","xfId"];var Hf=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function Wf(e,r,t){r.CellXf=[];var a;e[0].match(oe).forEach(function(e){var n=he(e),i=0;switch(n[0]){case"":;case"":;case"":break;case"":a=n;delete a[0];for(i=0;i392){for(i=392;i>60;--i)if(r.NumberFmt[a.numFmtId]==r.NumberFmt[i]){a.numFmtId=i;break}}r.CellXf.push(a);break;case"":break;case"":var s={};if(n.vertical)s.vertical=n.vertical;if(n.horizontal)s.horizontal=n.horizontal;if(n.textRotation!=null)s.textRotation=n.textRotation;if(n.indent)s.indent=n.indent;if(n.wrapText)s.wrapText=n.wrapText;a.alignment=s;break;case"":break;case"":;case"":break;case"":break;case"";if(r.length===2)return"";r[0]=Ue("cellXfs",null,{count:r.length-2}).replace("/>",">");return r.join("")}var Vf=function Qv(){var e=/]*)>[\S\s]*?<\/numFmts>/;var r=/]*)>[\S\s]*?<\/cellXfs>/;var t=/]*)>[\S\s]*?<\/fills>/;var a=/]*)>[\S\s]*?<\/fonts>/;var n=/]*)>[\S\s]*?<\/borders>/;return function i(s,f,o){var l={};if(!s)return l;s=s.replace(//gm,"").replace(//gm,"");var c;if(c=s.match(e))Lf(c,l,o);if(c=s.match(a))Nf(c,l,f,o);if(c=s.match(t))Pf(c,l,f,o);if(c=s.match(n))Ff(c,l,f,o);if(c=s.match(r))Wf(c,l,o);return l}}();var Xf=Ue("styleSheet",null,{xmlns:ze.main[0],"xmlns:vt":ze.vt});ha.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function Gf(e,r){var t=[se,Xf],a;if(e.SSF&&(a=Mf(e.SSF))!=null)t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';if(a=zf(r.cellXfs))t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function jf(e,r){var t=e._R(2);var a=it(e,r-2);return[t,a]}function Kf(e,r,t){if(!t)t=xr(6+4*r.length);t._W(2,e);st(r,t);return t.length>t.l?t.slice(0,t.l):t}function Yf(e,r,t){var a={};a.sz=e._R(2)/20;var n=Pt(e,2,t);if(n.fCondense)a.condense=1;if(n.fExtend)a.extend=1;if(n.fShadow)a.shadow=1;if(n.fOutline)a.outline=1;if(n.fStrikeout)a.strike=1;if(n.fItalic)a.italic=1;var i=e._R(2);if(i===700)a.bold=1;switch(e._R(2)){case 1:a.vertAlign="superscript";break;case 2:a.vertAlign="subscript";break;}var s=e._R(1);if(s!=0)a.underline=s;var f=e._R(1);if(f>0)a.family=f;var o=e._R(1);if(o>0)a.charset=o;e.l++;a.color=Ot(e,8);switch(e._R(1)){case 1:a.scheme="major";break;case 2:a.scheme="minor";break;}a.name=it(e,r-21);return a}function $f(e,r){if(!r)r=xr(25+4*32);r._W(2,e.sz*20);Nt(e,r);r._W(2,e.bold?700:400);var t=0;if(e.vertAlign=="superscript")t=1;else if(e.vertAlign=="subscript")t=2;r._W(2,t);r._W(1,e.underline||0);r._W(1,e.family||0);r._W(1,e.charset||0);r._W(1,0);Ft(e.color,r);var a=0;if(e.scheme=="major")a=1;if(e.scheme=="minor")a=2;r._W(1,a);st(e.name,r);return r.length>r.l?r.slice(0,r.l):r}var Zf=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];var Qf=y(Zf);var Jf=Br;function qf(e,r){if(!r)r=xr(4*3+8*7+16*1);var t=Qf[e.patternType];if(t==null)t=40;r._W(4,t);var a=0;if(t!=40){Ft({auto:1},r);Ft({auto:1},r);for(;a<12;++a)r._W(4,0)}else{for(;a<4;++a)r._W(4,0);for(;a<12;++a)r._W(4,0)}return r.length>r.l?r.slice(0,r.l):r}function eo(e,r){var t=e._R(2);var a=e._R(2);Br(e,r-4);return{ixfe:t,numFmtId:a}}function ro(e,r,t){if(!t)t=xr(16);t._W(2,r||0);t._W(2,e.numFmtId||0);t._W(2,0);t._W(2,0);t._W(2,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);return t}function to(e,r){if(!r)r=xr(10);r._W(1,0);r._W(1,0);r._W(4,0);r._W(4,0);return r}var ao=Br;function no(e,r){if(!r)r=xr(51);r._W(1,0);to(null,r);to(null,r);to(null,r);to(null,r);to(null,r);return r.length>r.l?r.slice(0,r.l):r}function io(e,r){if(!r)r=xr(12+4*10);r._W(4,e.xfId);r._W(2,1);r._W(1,+e.builtinId);r._W(1,0);mt(e.name||"",r);return r.length>r.l?r.slice(0,r.l):r}function so(e,r,t){var a=xr(4+256*2*4);a._W(4,e);mt(r,a);mt(t,a);return a.length>a.l?a.slice(0,a.l):a}function fo(e,r,t){var a={};a.NumberFmt=[];for(var n in C._table)a.NumberFmt[n]=C._table[n];a.CellXf=[];a.Fonts=[];var i=[];var s=false;Ir(e,function f(e,n,o){switch(o){case 44:a.NumberFmt[e[0]]=e[1];C.load(e[1],e[0]);break;case 43:a.Fonts.push(e);if(e.color.theme!=null&&r&&r.themeElements&&r.themeElements.clrScheme){e.color.rgb=vf(r.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0)}break;case 1025:break;case 45:break;case 46:break;case 47:if(i[i.length-1]=="BrtBeginCellXFs"){a.CellXf.push(e)}break;case 48:;case 507:;case 572:;case 475:break;case 1171:;case 2102:;case 1130:;case 512:;case 2095:break;case 35:s=true;break;case 36:s=false;break;case 37:i.push(n);break;case 38:i.pop();break;default:if((n||"").indexOf("Begin")>0)i.push(n);else if((n||"").indexOf("End")>0)i.pop();else if(!s||t.WTF)throw new Error("Unexpected record "+o+" "+n);}});return a}function oo(e,r){if(!r)return;var t=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(e){for(var a=e[0];a<=e[1];++a)if(r[a]!=null)++t});if(t==0)return;Rr(e,"BrtBeginFmts",nt(t));[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(r[a]!=null)Rr(e,"BrtFmt",Kf(a,r[a]))});Rr(e,"BrtEndFmts")}function lo(e,r){var t=1;if(t==0)return;Rr(e,"BrtBeginFonts",nt(t));Rr(e,"BrtFont",$f({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}));Rr(e,"BrtEndFonts")}function co(e,r){var t=2;if(t==0)return;Rr(e,"BrtBeginFills",nt(t));Rr(e,"BrtFill",qf({patternType:"none"}));Rr(e,"BrtFill",qf({patternType:"gray125"}));Rr(e,"BrtEndFills")}function ho(e,r){var t=1;if(t==0)return;Rr(e,"BrtBeginBorders",nt(t));Rr(e,"BrtBorder",no({}));Rr(e,"BrtEndBorders")}function uo(e,r){var t=1;Rr(e,"BrtBeginCellStyleXFs",nt(t));Rr(e,"BrtXF",ro({numFmtId:0,fontId:0,fillId:0,borderId:0},65535));Rr(e,"BrtEndCellStyleXFs")}function po(e,r){Rr(e,"BrtBeginCellXFs",nt(r.length));r.forEach(function(r){Rr(e,"BrtXF",ro(r,0))});Rr(e,"BrtEndCellXFs")}function vo(e,r){var t=1;Rr(e,"BrtBeginStyles",nt(1));Rr(e,"BrtStyle",io({xfId:0,builtinId:0,name:"Normal"}));Rr(e,"BrtEndStyles")}function go(e,r){var t=0;Rr(e,"BrtBeginDXFs",nt(t));Rr(e,"BrtEndDXFs")}function bo(e,r){var t=0;Rr(e,"BrtBeginTableStyles",so(t,"TableStyleMedium9","PivotStyleMedium4"));Rr(e,"BrtEndTableStyles")}function mo(e,r){return}function Co(e,r){var t=yr();Rr(t,"BrtBeginStyleSheet");oo(t,e.SSF);lo(t,e);co(t,e);ho(t,e);uo(t,e);po(t,r.cellXfs);vo(t,e);go(t,e);bo(t,e);mo(t,e);Rr(t,"BrtEndStyleSheet");return t.end()}ha.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function Eo(e,r,t){r.themeElements.clrScheme=[];var a={};(e[0].match(oe)||[]).forEach(function(e){var n=he(e);switch(n[0]){case"":break;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":if(n[0].charAt(1)==="/"){r.themeElements.clrScheme.push(a);a={}}else{a.name=n[0].substring(3,n[0].length-1)}break;default:if(t&&t.WTF)throw new Error("Unrecognized "+n[0]+" in clrScheme");}})}function ko(e,r,t){}function wo(e,r,t){}var So=/]*)>[\s\S]*<\/a:clrScheme>/;var Ao=/]*)>[\s\S]*<\/a:fontScheme>/;var Bo=/]*)>[\s\S]*<\/a:fmtScheme>/;function _o(e,r,t){r.themeElements={};var a;[["clrScheme",So,Eo],["fontScheme",Ao,ko],["fmtScheme",Bo,wo]].forEach(function(n){if(!(a=e.match(n[1])))throw new Error(n[0]+" not found in themeElements");n[2](a,r,t)})}var To=/]*)>[\s\S]*<\/a:themeElements>/;function xo(e,r){if(!e||e.length===0)return xo(Io());var t;var a={};if(!(t=e.match(To)))throw new Error("themeElements not found in theme");_o(t[0],a,r);return a}function Io(e,r){if(r&&r.themeXLSX)return r.themeXLSX;var t=[se];t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";return t.join("")}function yo(e,r,t){var a=e._R(4);if(a===124226)return;e.l+=r-4}function Ro(e,r){return e._R(4)}function Do(e,r){var t={};t.xclrType=e._R(2);t.nTintShade=e._R(2);switch(t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=Oo(e,4);break;case 2:t.xclrValue=In(e,4);break;case 3:t.xclrValue=Ro(e,4);break;case 4:e.l+=4;break;}e.l+=8;return t}function Oo(e,r){return Br(e,r)}function Fo(e,r){return Br(e,r)}function Po(e,r){var t=e._R(2);var a=e._R(2);var n=[t];switch(t){case 4:;case 5:;case 7:;case 8:;case 9:;case 10:;case 11:;case 13:n[1]=Do(e,a);break;case 6:n[1]=Fo(e,a);break;case 14:;case 15:n[1]=e._R(a===5?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+a);}return n}function No(e,r){var t=e.l+r;e.l+=2;var a=e._R(2);e.l+=2;var n=e._R(2);var i=[];while(n-- >0)i.push(Po(e,t-e.l));return{ixfe:a,ext:i}}function Lo(e,r){r.forEach(function(e){switch(e[0]){case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 13:break;case 14:break;case 15:break;}})}function Mo(e,r,t){var a=[];if(!e)return a;var n=0,i=1;(e.match(oe)||[]).forEach(function(e){var r=he(e);switch(r[0]){case"":;case"":break;case"0){}else if((r||"").indexOf("End")>0){}else if(!n||t.WTF)throw new Error("Unexpected record "+s+" "+r);}});return a}function zo(e,r){}function Vo(e,r,t){var a=t||{}}function Xo(e,r,t){if(!e)return e;var a=t||{};var n=false,i=false;Ir(e,function s(e,r,t){if(i)return;switch(t){case 359:;case 363:;case 364:;case 366:;case 367:;case 368:;case 369:;case 370:;case 371:;case 472:;case 577:;case 578:;case 579:;case 580:;case 581:;case 582:;case 583:;case 584:;case 585:;case 586:;case 587:break;case 35:n=true;break;case 36:n=false;break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!n||a.WTF)throw new Error("Unexpected record "+t.toString(16)+" "+r);}},a)}ha.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";ha.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";function Go(e,r){if(!e)return"??";var t=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return r["!id"][t].Target}var jo=1024;function Ko(e,r){var t=[21600,21600];var a=["m0,0l0",t[1],t[0],t[1],t[0],"0xe"].join(",");var n=[Ue("xml",null,{"xmlns:v":Ve.v,"xmlns:o":Ve.o,"xmlns:x":Ve.x,"xmlns:mv":Ve.mv}).replace(/\/>/,">"),Ue("o:shapelayout",Ue("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ue("v:shapetype",[Ue("v:stroke",null,{joinstyle:"miter"}),Ue("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:t.join(","),path:a})];while(jo",Ue("v:fill",Ue("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}),{color2:"#BEFF82",angle:"-180",type:"gradient"}),Ue("v:shadow",null,{on:"t",obscured:"t"}),Ue("v:path",null,{"o:connecttype":"none"}),'
    ','',"","",Le("x:Anchor",[e.c,0,e.r,0,e.c+3,100,e.r+5,100].join(",")),Le("x:AutoFill","False"),Le("x:Row",String(e.r)),Le("x:Column",String(e.c)),"","",""])});n.push("");return n.join("")}ha.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";function Yo(e,r,t,a,n){for(var i=0;i!=r.length;++i){var s=r[i];var f=Td(ee(e,s.replace(/^\//,""),true),s,n);if(!f||!f.length)continue;var o=x(t);for(var l=0;l!=o.length;++l){var c=o[l];var h=a[c];if(h){var u=h[s];if(u)$o(c,t[c],f)}}}}function $o(e,r,t){var a=Array.isArray(r);var n,i;t.forEach(function(e){if(a){i=Kr(e.ref);if(!r[i.r])r[i.r]=[];n=r[i.r][i.c]}else n=r[e.ref];if(!n){n={};if(a)r[i.r][i.c]=n;else r[e.ref]=n;var t=qr(r["!ref"]||"BDWGO1000001:A1");var s=Kr(e.ref);if(t.s.r>s.r)t.s.r=s.r;if(t.e.rs.c)t.s.c=s.c;if(t.e.c/))return[];var t=[];var a=[];var n=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^>]*>(.*)/);if(r)t.push(r[1])});var i=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/); -if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e,n){if(e===""||e.trim()==="")return;var i=e.match(/<(?:\w+:)?comment[^>]*>/);if(!i)return;var s=he(i[0]);var f={author:s.authorId&&t[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid};var o=Kr(s.ref);if(r.sheetRows&&r.sheetRows<=o.r)return;var l=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/);var c=!!l&&!!l[1]&&xs(l[1])||{r:"",t:"",h:""};f.r=c.r;if(c.r=="")c.t=c.h="";f.t=c.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)f.h=c.h;a.push(f)});return a}var Qo=Ue("comments",null,{xmlns:ze.main[0]});function Jo(e,r){var t=[se,Qo];var a=[];t.push("");e.map(function(e){return e[1]}).forEach(function(e){e.map(function(e){return me(e.a)}).forEach(function(e){if(a.indexOf(e)>-1)return;a.push(e);t.push(""+e+"")})});t.push("");t.push("");e.forEach(function(e){e[1].forEach(function(r){t.push('');t.push(Le("t",r.t==null?"":r.t));t.push("")})});t.push("");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function qo(e,r){var t={};t.iauthor=e._R(4);var a=Tt(e,16);t.rfx=a.s;t.ref=Yr(a.s);e.l+=16;return t}function el(e,r){if(r==null)r=xr(36);r._W(4,e[1].iauthor);xt(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var rl=it;function tl(e){return st(e.slice(0,54))}function al(e,r){var t=[];var a=[];var n={};var i=false;Ir(e,function s(e,f,o){switch(o){case 632:a.push(e);break;case 635:n=e;break;case 637:n.t=e.t;n.h=e.h;n.r=e.r;break;case 636:n.author=a[n.iauthor];delete n.iauthor;if(r.sheetRows&&r.sheetRows<=n.rfx.r)break;if(!n.t)n.t="";delete n.rfx;t.push(n);break;case 35:i=true;break;case 36:i=false;break;case 37:break;case 38:break;default:if((f||"").indexOf("Begin")>0){}else if((f||"").indexOf("End")>0){}else if(!i||r.WTF)throw new Error("Unexpected record "+o+" "+f);}});return t}function nl(e,r){var t=yr();var a=[];Rr(t,"BrtBeginComments");{Rr(t,"BrtBeginCommentAuthors");e.forEach(function(e){e[1].forEach(function(e){if(a.indexOf(e.a)>-1)return;a.push(e.a.slice(0,54));Rr(t,"BrtCommentAuthor",tl(e.a))})});Rr(t,"BrtEndCommentAuthors")}{Rr(t,"BrtBeginCommentList");e.forEach(function(e){e[1].forEach(function(r){r.iauthor=a.indexOf(r.a);var n={s:Kr(e[0]),e:Kr(e[0])};Rr(t,"BrtBeginComment",el([n,r]));if(r.t&&r.t.length>0)Rr(t,"BrtCommentText",ut(r));Rr(t,"BrtEndComment");delete r.iauthor})});Rr(t,"BrtEndCommentList")}Rr(t,"BrtEndComments");return t.end()}ha.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet";ha.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";function il(e,r,t,a,n,i){return{"!type":"dialog"}}function sl(e,r,t,a,n,i){return{"!type":"dialog"}}function fl(e,r,t,a,n,i){return{"!type":"macro"}}function ol(e,r,t,a,n,i){return{"!type":"macro"}}var ll=function(){var e=/(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g;var r={r:0,c:0};function t(e,t,a,n,i,s){var f=n.length>0?parseInt(n,10)|0:0,o=s.length>0?parseInt(s,10)|0:0;if(o<0&&i.length===0)o=0;var l=false,c=false;if(i.length>0||s.length==0)l=true;if(l)o+=r.c;else--o;if(a.length>0||n.length==0)c=true;if(c)f+=r.r;else--f;return t+(l?"":"$")+Vr(o)+(c?"":"$")+Ur(f)}return function a(n,i){r=i;return n.replace(e,t)}}();var cl=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)([1-9]\d{0,5}|10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6])(?![_.\(A-Za-z0-9])/g;var hl=function(){return function e(r,t){return r.replace(cl,function(e,r,a,n,i,s,f,o){var l=zr(n)-t.c;var c=Mr(s)-t.r;return r+"R"+(c==0?"":"["+c+"]")+"C"+(l==0?"":"["+l+"]")})}}();function ul(e,r){return e.replace(cl,function(e,t,a,n,i,s,f,o){return t+(a=="$"?a+n:Vr(zr(n)+r.c))+(i=="$"?i+s:Ur(Mr(s)+r.r))})}function dl(e,r,t){var a=Qr(r),n=a.s,i=Kr(t);var s={r:i.r-n.r,c:i.c-n.c};return ul(e,s)}function pl(e){if(e.length==1)return false;return true}function vl(e){return function(r,t){r.l+=e;return}}function gl(e){e.l+=1;return}function bl(e,r){var t=e._R(r==1?1:2);return[t&16383,t>>14&1,t>>15&1]}function ml(e,r,t){var a=2;if(t){if(t.biff>=2&&t.biff<=5)return Cl(e,r,t);else if(t.biff==12)a=4}var n=e._R(a),i=e._R(a);var s=bl(e,2);var f=bl(e,2);return{s:{r:n,c:s[0],cRel:s[1],rRel:s[2]},e:{r:i,c:f[0],cRel:f[1],rRel:f[2]}}}function Cl(e){var r=bl(e,2),t=bl(e,2);var a=e._R(1);var n=e._R(1);return{s:{r:r[0],c:a,cRel:r[1],rRel:r[2]},e:{r:t[0],c:n,cRel:t[1],rRel:t[2]}}}function El(e,r){var t=e._R(r==12?4:2),a=e._R(r==12?4:2);var n=bl(e,2);var i=bl(e,2);return{s:{r:t,c:n[0],cRel:n[1],rRel:n[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}function kl(e,r,t){if(t&&t.biff>=2&&t.biff<=5)return wl(e,r,t);var a=e._R(t&&t.biff==12?4:2);var n=bl(e,2);return{r:a,c:n[0],cRel:n[1],rRel:n[2]}}function wl(e,r,t){var a=bl(e,2);var n=e._R(1);return{r:a[0],c:n,cRel:a[1],rRel:a[2]}}function Sl(e,r,t){var a=t&&t.biff?t.biff:8;if(a>=2&&a<=5)return Al(e,r,t);var n=e._R(a>=12?4:2);var i=e._R(2);var s=(i&32768)>>15,f=(i&16384)>>14;i&=16383;if(f==1)while(n>524287)n-=1048576;if(s==1)while(i>8191)i=i-16384;return{r:n,c:i,cRel:s,rRel:f}}function Al(e,r){var t=e._R(2);var a=e._R(1);var n=(t&32768)>>15,i=(t&16384)>>14;t&=16383;if(n==1&&t>=8192)t=t-16384;if(i==1&&a>=128)a=a-256;return{r:t,c:a,cRel:i,rRel:n}}function Bl(e,r,t){var a=(e[e.l++]&96)>>5;var n=ml(e,t.biff>=2&&t.biff<=5?6:8,t);return[a,n]}function _l(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2,"i");var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}var s=ml(e,i,t);return[a,n,s]}function Tl(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t&&t.biff>8?12:8;return[a]}function xl(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}e.l+=i;return[a,n]}function Il(e,r,t){var a=(e[e.l++]&96)>>5;var n=El(e,t&&t.biff>8?12:8,t);return[a,n]}function yl(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t.biff==2?6:t.biff==12?14:7;return[a]}function Rl(e,r){var t=e[e.l+1]&1;var a=1;e.l+=4;return[t,a]}function Dl(e,r,t){e.l+=2;var a=e._R(t&&t.biff==2?1:2);var n=[];for(var i=0;i<=a;++i)n.push(e._R(t&&t.biff==2?1:2));return n}function Ol(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Fl(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Pl(e,r){var t=e[e.l+1]&255?1:0;e.l+=2;return[t,e._R(2)]}function Nl(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=t&&t.biff==2?3:4;return[a]}function Ll(e,r){var t=e._R(1),a=e._R(1);return[t,a]}function Ml(e,r){e._R(2);return Ll(e,2)}function Ul(e,r){e._R(2);return Ll(e,2)}function Hl(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=kl(e,0,t);return[n,i]}function Wl(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=Sl(e,0,t);return[a,n]}function zl(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=e._R(2);var i=kl(e,0,t);return[a,n,i]}function Vl(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=e._R(t&&t.biff<=3?1:2);return[nh[i],ah[i],n]}function Xl(e,r,t){e.l++;var a=e._R(1),n=t&&t.biff<=3?[0,e._R(1)]:Gl(e);return[a,(n[0]===0?ah:th)[n[1]]]}function Gl(e,r){return[e[e.l+1]>>7,e._R(2)&32767]}function jl(e,r,t){e.l+=t&&t.biff==2?3:4;return}var Kl=gl;function Yl(e,r,t){e.l++;if(t&&t.biff==12)return[e._R(4,"i"),0];var a=e._R(2);var n=e._R(t&&t.biff==2?1:2);return[a,n]}function $l(e,r){e.l++;return Rt[e._R(1)]}function Zl(e,r){e.l++;return e._R(2)}function Ql(e,r){e.l++;return e._R(1)!==0}function Jl(e,r){e.l++;return It(e,8)}function ql(e,r,t){e.l++;return mn(e,r-1,t)}function ec(e,r){var t=[e._R(1)];if(r==12)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2;break;}switch(t[0]){case 4:t[1]=hn(e,1)?"TRUE":"FALSE";e.l+=7;break;case 16:t[1]=Rt[e[e.l]];e.l+=8;break;case 0:e.l+=8;break;case 1:t[1]=It(e,8);break;case 2:t[1]=wn(e,0,{biff:r>0&&r<8?2:r});break;}return t}function rc(e,r){var t=e._R(2);var a=[];for(var n=0;n!=t;++n)a.push(Mn(e,8));return a}function tc(e,r,t){var a=0,n=0;if(t.biff==12){a=e._R(4);n=e._R(4)}else{n=1+e._R(1);a=1+e._R(2)}if(t.biff>=2&&t.biff<8){--a;if(--n==0)n=256}for(var i=0,s=[];i!=a&&(s[i]=[]);++i)for(var f=0;f!=n;++f)s[i][f]=ec(e,t.biff);return s}function ac(e,r,t){var a=e._R(1)>>>5&3;var n=!t||t.biff>=8?4:2;var i=e._R(n);switch(t.biff){case 2:e.l+=5;break;case 3:;case 4:e.l+=8;break;case 5:e.l+=12;break;}return[a,0,i]}function nc(e,r,t){if(t.biff==5)return ic(e,r,t);var a=e._R(1)>>>5&3;var n=e._R(2);var i=e._R(4);return[a,n,i]}function ic(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(2,"i");e.l+=8;var i=e._R(2);e.l+=12;return[a,n,i]}function sc(e,r,t){var a=e._R(1)>>>5&3;e.l+=t&&t.biff==2?3:4;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function fc(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function oc(e,r,t){var a=e._R(1)>>>5&3;e.l+=4;if(t.biff==12)e.l+=2;return[a]}function lc(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=4;if(t)switch(t.biff){case 5:throw new Error("PtgRefErr3d -- 5");case 12:i=6;break;}e.l+=i;return[a,n]}var cc=gl;var hc=gl;var uc=gl;var dc=gl;var pc=gl;var vc=gl;var gc=gl;var bc=gl;var mc=gl;var Cc=gl;var Ec=gl;var kc=gl;var wc=gl;var Sc=gl;var Ac=gl;var Bc=gl;var _c=gl;var Tc=gl;var xc=gl;var Ic=Br;var yc=Br;var Rc=Br;var Dc={1:{n:"PtgExp",f:Yl},2:{n:"PtgTbl",f:Rc},3:{n:"PtgAdd",f:cc},4:{n:"PtgSub",f:Bc},5:{n:"PtgMul",f:Cc},6:{n:"PtgDiv",f:hc},7:{n:"PtgPower",f:Sc},8:{n:"PtgConcat",f:Kl},9:{n:"PtgLt",f:bc},10:{n:"PtgLe",f:gc},11:{n:"PtgEq",f:uc},12:{n:"PtgGe",f:dc},13:{n:"PtgGt",f:pc},14:{n:"PtgNe",f:Ec},15:{n:"PtgIsect",f:vc},16:{n:"PtgUnion",f:Tc},17:{n:"PtgRange",f:Ac},18:{n:"PtgUplus",f:xc},19:{n:"PtgUminus",f:_c},20:{n:"PtgPercent",f:wc},21:{n:"PtgParen",f:kc},22:{n:"PtgMissArg",f:mc},23:{n:"PtgStr",f:ql},28:{n:"PtgErr",f:$l},29:{n:"PtgBool",f:Ql},30:{n:"PtgInt",f:Zl},31:{n:"PtgNum",f:Jl},32:{n:"PtgArray",f:yl},33:{n:"PtgFunc",f:Vl},34:{n:"PtgFuncVar",f:Xl},35:{n:"PtgName",f:ac},36:{n:"PtgRef",f:Hl},37:{n:"PtgArea",f:Bl},38:{n:"PtgMemArea",f:sc},39:{n:"PtgMemErr",f:Ic},40:{n:"PtgMemNoMem",f:yc},41:{n:"PtgMemFunc",f:fc},42:{n:"PtgRefErr",f:oc},43:{n:"PtgAreaErr",f:Tl},44:{n:"PtgRefN",f:Wl},45:{n:"PtgAreaN",f:Il},57:{n:"PtgNameX",f:nc},58:{n:"PtgRef3d",f:zl},59:{n:"PtgArea3d",f:_l},60:{n:"PtgRefErr3d",f:lc},61:{n:"PtgAreaErr3d",f:xl},255:{}};var Oc={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};(function(){for(var e in Oc)Dc[e]=Dc[Oc[e]]})();var Fc={};var Pc={1:{n:"PtgAttrSemi",f:Nl},2:{n:"PtgAttrIf",f:Fl},4:{n:"PtgAttrChoose",f:Dl},8:{n:"PtgAttrGoto",f:Ol},16:{n:"PtgAttrSum",f:jl},32:{n:"PtgAttrBaxcel",f:Rl},64:{n:"PtgAttrSpace",f:Ml},65:{n:"PtgAttrSpaceSemi",f:Ul},128:{n:"PtgAttrIfError",f:Pl},255:{}};function Nc(e,r,t){var a=e.l+r;var n=Rn(e,6);if(t.biff==2)++e.l;var i=Lc(e,8);var s=e._R(1);if(t.biff!=2){e._R(1);if(t.biff>=5){var f=e._R(4)}}var o=Hc(e,a-e.l,t);return{cell:n,val:i[0],formula:o,shared:s>>3&1,tt:i[1]}}function Lc(e){var r;if(ur(e,e.l+6)!==65535)return[It(e),"n"];switch(e[e.l]){case 0:e.l+=8;return["String","s"];case 1:r=e[e.l+2]===1;e.l+=8;return[r,"b"];case 2:r=e[e.l+2];e.l+=8;return[r,"e"];case 3:e.l+=8;return["","s"];}return[]}function Mc(e,r,t,a){if(a.biff<8)return Br(e,r);var n=e.l+r;var i=[];for(var s=0;s!==t.length;++s){switch(t[s][0]){case"PtgArray":t[s][1]=tc(e,0,a);i.push(t[s][1]);break;case"PtgMemArea":t[s][2]=rc(e,t[s][1]);i.push(t[s][2]);break;case"PtgExp":if(a&&a.biff==12){t[s][1][1]=e._R(4);i.push(t[s][1])}break;default:break;}}r=n-e.l;if(r!==0)i.push(Br(e,r));return i}function Uc(e,r,t,a){var n=e.l+r;var i=Vc(e,a,t);var s;if(n!==e.l)s=Mc(e,n-e.l,i,t);return[i,s]}function Hc(e,r,t){var a=e.l+r,n=t.biff==2?1:2;var i,s=e._R(n);if(s==65535)return[[],Br(e,r-2)];var f=Vc(e,s,t);if(r!==s+n)i=Mc(e,r-s-n,f,t);return[f,i]}function Wc(e,r,t){var a=e.l+r;var n,i=e._R(2);var s=Vc(e,i,t);if(i==65535)return[[],Br(e,r-2)];if(r!==i+2)n=Mc(e,a-i-2,s,t);return[s,n]}function zc(e,r,t,a){var n=e.l+r,i=t.biff==2?1:2;var s,f=e._R(i);if(f==65535)return[[],Br(e,r-2)];var o=Vc(e,f,t);if(r!==f+i)s=Mc(e,r-f-i,o,t);return[o,s]}function Vc(e,r,t){var a=e.l+r;var n,i,s=[];while(a!=e.l){r=a-e.l;i=e[e.l];n=Dc[i];if(i===24||i===25){i=e[e.l+1];n=(i===24?Fc:Pc)[i]}if(!n||!n.f){Br(e,r)}else{s.push([n.n,n.f(e,r,t)])}}return s}function Xc(e){var r=[];for(var t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function jc(e){if(!e)return"";if(e.indexOf(" ")>-1)return"'"+e+"'";return e}function Kc(e,r,t){return e.SheetNames[r]}function Yc(e,r,t){return jc(Kc(e,r,t))}function $c(e,r,t,a,n){var i={s:{c:0,r:0},e:{c:0,r:0}};var s=[],f,o,l,c,h=0,u=0,d,p="";if(!e[0]||!e[0][0])return"";var v=-1,g="";for(var b=0,m=e[0].length;b=0){switch(e[0][v][1][0]){case 0:g=X(" ",e[0][v][1][1]);break;case 1:g=X("\r",e[0][v][1][1]);break;default:g="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][v][1][0]);}o=o+g;v=-1}s.push(o+Gc[C[0]]+f);break;case"PtgIsect":f=s.pop();o=s.pop();s.push(o+" "+f);break;case"PtgUnion":f=s.pop();o=s.pop();s.push(o+","+f);break;case"PtgRange":f=s.pop();o=s.pop();s.push(o+":"+f);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":l=C[1][0];c=Dr(C[1][1],i,n);s.push(Fr(c));break;case"PtgRefN":l=C[1][0];c=t?Dr(C[1][1],t,n):C[1][1];s.push(Fr(c));break;case"PtgRef3d":l=C[1][0];h=C[1][1];c=Dr(C[1][2],i,n);p=Yc(a,h,n);var E=p;s.push(p+"!"+Fr(c));break;case"PtgFunc":;case"PtgFuncVar":var k=C[1][0],w=C[1][1];if(!k)k=0;var S=k==0?[]:s.slice(-k);s.length-=k;if(w==="User")w=S.shift();s.push(w+"("+S.join(",")+")");break;case"PtgBool":s.push(C[1]?"TRUE":"FALSE");break;case"PtgInt":s.push(C[1]);break;case"PtgNum":s.push(String(C[1]));break;case"PtgStr":s.push('"'+C[1]+'"');break;case"PtgErr":s.push(C[1]);break;case"PtgAreaN":l=C[1][0];d=Or(C[1][1],i,n);s.push(Pr(d,n));break;case"PtgArea":l=C[1][0];d=Or(C[1][1],i,n);s.push(Pr(d,n));break;case"PtgArea3d":l=C[1][0];h=C[1][1];d=C[1][2];p=a&&a[1]?a[1][h+1]:"**MISSING**";s.push(p+"!"+Pr(d,n));break;case"PtgAttrSum":s.push("SUM("+s.pop()+")");break;case"PtgAttrSemi":break;case"PtgName":u=C[1][2];var A=(a.names||[])[u-1]||(a[0]||[])[u];var B=A?A.Name:"SH33TJSERR7"+String(u);if(B in ih)B=ih[B];s.push(B);break;case"PtgNameX":var _=C[1][1];u=C[1][2];var T;if(n.biff<=5){if(_<0)_=-_;if(a[_])T=a[_][u]}else{var x=a.SheetNames[_];var I="";if(((a[_]||[])[0]||[])[0]==14849){}else if(((a[_]||[])[0]||[])[0]==1025){if(a[_][u]&&a[_][u].itab>0){I=a.SheetNames[a[_][u].itab-1]+"!"}}else I=a.SheetNames[u-1]+"!";if(a[_]&&a[_][u])I+=a[_][u].Name;else if(a[0]&&a[0][u])I+=a[0][u].Name;else I+="SH33TJSERRX";s.push(I);break}if(!T)T={Name:"SH33TJSERRY"};s.push(T.Name);break;case"PtgParen":var y="(",R=")";if(v>=0){g="";switch(e[0][v][1][0]){case 2:y=X(" ",e[0][v][1][1])+y;break;case 3:y=X("\r",e[0][v][1][1])+y;break;case 4:R=X(" ",e[0][v][1][1])+R;break;case 5:R=X("\r",e[0][v][1][1])+R;break;default:if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][v][1][0]);}v=-1}s.push(y+s.pop()+R);break;case"PtgRefErr":s.push("#REF!");break;case"PtgRefErr3d":s.push("#REF!");break;case"PtgExp":c={c:C[1][1],r:C[1][0]};var D={c:t.c,r:t.r};if(a.sharedf[Yr(c)]){var O=a.sharedf[Yr(c)];s.push($c(O,i,D,a,n))}else{var F=false;for(f=0;f!=a.arrayf.length;++f){o=a.arrayf[f];if(c.co[0].e.c)continue;if(c.ro[0].e.r)continue;s.push($c(o[1],i,D,a,n));F=true;break}if(!F)s.push(C[1])}break;case"PtgArray":s.push("{"+Xc(C[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":;case"PtgAttrSpaceSemi":v=b;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":s.push("");break;case"PtgAreaErr":s.push("#REF!");break;case"PtgAreaErr3d":s.push("#REF!");break;case"PtgMemFunc":break;default:throw new Error("Unrecognized Formula Token: "+String(C));}var P=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(v>=0&&P.indexOf(e[0][b][0])==-1){C=e[0][v];var N=true;switch(C[1][0]){case 4:N=false;case 0:g=X(" ",C[1][1]);break;case 5:N=false;case 1:g=X("\r",C[1][1]);break;default:g="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+C[1][0]);}s.push((N?g:"")+s.pop()+(N?"":g));v=-1}}if(s.length>1&&n.WTF)throw new Error("bad formula stack");return s[0]}function Zc(e,r,t){var a=e.l+r;var n=e._R(4);var i=Vc(e,n,t);var s=e._R(4);var f=s>0?Mc(e,s,i,t):null;return[i,f]}var Qc=Zc;var Jc=Zc;var qc=Zc;var eh=Zc;var rh={1:"REFERENCE",2:"VALUE",3:"ARRAY"};var th={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"};var ah={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"};var nh={2:1,3:1,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,90:1,97:2,98:1,99:1,101:3,102:3,105:1,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4, -162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};var ih={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFNA":"IFNA","_xlfn.IFERROR":"IFERROR","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function sh(e){if(e.substr(0,3)=="of:")e=e.substr(3);if(e.charCodeAt(0)==61){e=e.substr(1);if(e.charCodeAt(0)==61)e=e.substr(1)}e=e.replace(/COM\.MICROSOFT\./g,"");e=e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(e,r){return r.replace(/\./g,"")});e=e.replace(/\[.(#[A-Z]*[?!])\]/g,"$1");return e.replace(/[;~]/g,",").replace(/\|/g,";")}function fh(e){var r="of:="+e.replace(cl,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function oh(e){var r=e.split(":");var t=r[0].split(".")[0];return[t,r[0].split(".")[1]+":"+r[1].split(".")[1]]}var lh={};var ch={};ha.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];function hh(e,r){for(var t=0,a=e.length;t-1){t.width=wf(a);t.customWidth=1}else if(r.width!=null)t.width=r.width;if(r.hidden)t.hidden=true;return t}function dh(e,r){if(!e)return;var t=[.7,.7,.75,.75,.3,.3];if(r=="xlml")t=[1,1,1,1,.5,.5];if(e.left==null)e.left=t[0];if(e.right==null)e.right=t[1];if(e.top==null)e.top=t[2];if(e.bottom==null)e.bottom=t[3];if(e.header==null)e.header=t[4];if(e.footer==null)e.footer=t[5]}function ph(e,r,t){var a=t.revssf[r.z!=null?r.z:"General"];var n=60,i=e.length;if(a==null&&t.ssf){for(;n<392;++n)if(t.ssf[n]==null){C.load(r.z,n);t.ssf[n]=r.z;t.revssf[r.z]=a=n;break}}for(n=0;n!=i;++n)if(e[n].numFmtId===a)return n;e[i]={numFmtId:a,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return i}function vh(e,r,t,a,n,i){if(e.t==="z")return;if(e.t==="d"&&typeof e.v==="string")e.v=H(e.v);try{if(a.cellNF)e.z=C._table[r]}catch(s){if(a.WTF)throw s}if(!a||a.cellText!==false)try{if(e.t==="e")e.w=e.w||Rt[e.v];else if(r===0){if(e.t==="n"){if((e.v|0)===e.v)e.w=C._general_int(e.v);else e.w=C._general_num(e.v)}else if(e.t==="d"){var f=P(e.v);if((f|0)===f)e.w=C._general_int(f);else e.w=C._general_num(f)}else if(e.v===undefined)return"";else e.w=C._general(e.v,ch)}else if(e.t==="d")e.w=C.format(r,P(e.v),ch);else e.w=C.format(r,e.v,ch)}catch(s){if(a.WTF)throw s}if(!a.cellStyles)return;if(t!=null)try{e.s=i.Fills[t];if(e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb){e.s.fgColor.rgb=vf(n.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0);if(a.WTF)e.s.fgColor.raw_rgb=n.themeElements.clrScheme[e.s.fgColor.theme].rgb}if(e.s.bgColor&&e.s.bgColor.theme){e.s.bgColor.rgb=vf(n.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0);if(a.WTF)e.s.bgColor.raw_rgb=n.themeElements.clrScheme[e.s.bgColor.theme].rgb}}catch(s){if(a.WTF&&i.Fills)throw s}}function gh(e,r){var t=qr(r);if(t.s.r<=t.e.r&&t.s.c<=t.e.c&&t.s.r>=0&&t.s.c>=0)e["!ref"]=Jr(t)}var bh=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g;var mh=/<(?:\w+:)?sheetData>([\s\S]*)<\/(?:\w+:)?sheetData>/;var Ch=/<(?:\w:)?hyperlink [^>]*>/gm;var Eh=/"(\w*:\w*)"/;var kh=/<(?:\w:)?col[^>]*[\/]?>/g;var wh=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g;var Sh=/<(?:\w:)?pageMargins[^>]*\/>/g;function Ah(e,r,t,a,n,i){if(!e)return e;if(c!=null&&r.dense==null)r.dense=c;var s=r.dense?[]:{};var f={s:{r:2e6,c:2e6},e:{r:0,c:0}};var o="",l="";var h=e.match(mh);if(h){o=e.substr(0,h.index);l=e.substr(h.index+h[0].length)}else o=l=e;var u=(o.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(u>0){var d=o.substr(u,50).match(Eh);if(d)gh(s,d[1])}var p=[];if(r.cellStyles){var v=o.match(kh);if(v)yh(p,v)}if(h)Nh(h[1],s,r,f,n,i);var g=l.match(wh);if(g)s["!autofilter"]=Dh(g[0]);var b=[];var m=l.match(bh);if(m)for(u=0;u!=m.length;++u)b[u]=qr(m[u].substr(m[u].indexOf('"')+1));var C=l.match(Ch);if(C)Th(s,C,t);var E=l.match(Sh);if(E)s["!margins"]=xh(he(E[0]));if(!s["!ref"]&&f.e.c>=f.s.c&&f.e.r>=f.s.r)s["!ref"]=Jr(f);if(r.sheetRows>0&&s["!ref"]){var k=qr(s["!ref"]);if(r.sheetRows<+k.e.r){k.e.r=r.sheetRows-1;if(k.e.r>f.e.r)k.e.r=f.e.r;if(k.e.rf.e.c)k.e.c=f.e.c;if(k.e.c0)s["!cols"]=p;if(b.length>0)s["!merges"]=b;return s}function Bh(e){if(e.length==0)return"";var r='';for(var t=0;t!=e.length;++t)r+='';return r+""}function _h(e){var r={sheet:1};var t=["objects","scenarios","selectLockedCells","selectUnlockedCells"];var a=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];t.forEach(function(t){if(e[t]!=null&&e[t])r[t]="1"});a.forEach(function(t){if(e[t]!=null&&!e[t])r[t]="0"});if(e.password)r.password=tf(e.password).toString(16).toUpperCase();return Ue("sheetProtection",null,r)}function Th(e,r,t){var a=Array.isArray(e);for(var n=0;n!=r.length;++n){var i=he(Be(r[n]),true);if(!i.ref)return;var s=t?t["!id"][i.id]:null;if(s){i.Target=s.Target;if(i.location)i.Target+="#"+i.location;i.Rel=s}else{i.Target=i.location;s={Target:i.location,TargetMode:"Internal"};i.Rel=s}if(i.tooltip){i.Tooltip=i.tooltip;delete i.tooltip}var f=qr(i.ref);for(var o=f.s.r;o<=f.e.r;++o)for(var l=f.s.c;l<=f.e.c;++l){var c=Yr({c:l,r:o});if(a){if(!e[o])e[o]=[];if(!e[o][l])e[o][l]={t:"z",v:undefined};e[o][l].l=i}else{if(!e[c])e[c]={t:"z",v:undefined};e[c].l=i}}}}function xh(e){var r={};["left","right","top","bottom","header","footer"].forEach(function(t){if(e[t])r[t]=parseFloat(e[t])});return r}function Ih(e){dh(e);return Ue("pageMargins",null,e)}function yh(e,r){var t=false;for(var a=0;a!=r.length;++a){var n=he(r[a],true);if(n.hidden)n.hidden=Ae(n.hidden);var i=parseInt(n.min,10)-1,s=parseInt(n.max,10)-1;delete n.min;delete n.max;n.width=+n.width;if(!t&&n.width){t=true;_f(n.width)}xf(n);while(i<=s)e[i++]=V(n)}}function Rh(e,r){var t=[""],a,n;for(var i=0;i!=r.length;++i){if(!(a=r[i]))continue;t[t.length]=Ue("col",null,uh(i,a))}t[t.length]="";return t.join("")}function Dh(e){var r={ref:(e.match(/ref="([^"]*)"/)||[])[1]};return r}function Oh(e){return Ue("autoFilter",null,{ref:e.ref})}function Fh(e,r,t,a){return Ue("sheetViews",Ue("sheetView",null,{workbookViewId:"0"}),{})}function Ph(e,r,t,a,n,i){if(e.v===undefined&&e.f===undefined||e.t==="z")return"";var s="";var f=e.t,o=e.v;switch(e.t){case"b":s=e.v?"1":"0";break;case"n":s=""+e.v;break;case"e":s=Rt[e.v];break;case"d":if(a.cellDates)s=H(e.v,-1).toISOString();else{e.t="n";s=""+(e.v=P(H(e.v)))}if(typeof e.z==="undefined")e.z=C._table[14];break;default:s=e.v;break;}var l=Le("v",me(s)),c={r:r};var h=ph(a.cellXfs,e,a);if(h!==0)c.s=h;switch(e.t){case"n":break;case"d":c.t="d";break;case"b":c.t="b";break;case"e":c.t="e";break;default:if(e.v==null){delete e.t;break}if(a.bookSST){l=Le("v",""+hh(a.Strings,e.v));c.t="s";break}c.t="str";break;}if(e.t!=f){e.t=f;e.v=o}if(e.f){var u=e.F&&e.F.substr(0,r.length)==r?{t:"array",ref:e.F}:null;l=Ue("f",me(e.f),u)+(e.v!=null?l:"")}if(e.l)t["!links"].push([r,e.l]);if(e.c)t["!comments"].push([r,e.c]);return Ue("c",l,c)}var Nh=function Jv(){var e=/<(?:\w+:)?c[ >]/,r=/<\/(?:\w+:)?row>/;var t=/r=["']([^"']*)["']/,a=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/;var n=/ref=["']([^"']*)["']/;var i=ye("v"),s=ye("f");return function f(o,l,c,h,u,d){var p=0,v="",g=[],b=[],m=0,E=0,k=0,w="",S;var A,B=0,_=0;var T,x;var I=0,y=0;var R=Array.isArray(d.CellXf),D;var O=[];var F=[];var L=Array.isArray(l);var M=[],U={},W=false;for(var z=o.split(r),V=0,X=z.length;V!=X;++V){v=z[V].trim();var G=v.length;if(G===0)continue;for(p=0;pB-1)h.s.r=B-1;if(h.e.r":"")+v;if(b!=null&&b.length===2){m=0;w=b[1];for(E=0;E!=w.length;++E){if((k=w.charCodeAt(E)-64)<1||k>26)break;m=26*m+k}--m;_=m}else++_;for(E=0;E!=v.length;++E)if(v.charCodeAt(E)===62)break;++E;A=he(v.substr(0,E),true);if(!A.r)A.r=Yr({r:B-1,c:_});w=v.substr(E);S={t:""};if((b=w.match(i))!=null&&b[1]!=="")S.v=ve(b[1]);if(c.cellFormula){if((b=w.match(s))!=null&&b[1]!==""){S.f=ve(Be(b[1])).replace(/_xlfn\./,"");if(b[0].indexOf('t="array"')>-1){S.F=(w.match(n)||[])[1];if(S.F.indexOf(":")>-1)O.push([qr(S.F),S.F])}else if(b[0].indexOf('t="shared"')>-1){x=he(b[0]);F[parseInt(x.si,10)]=[x,ve(Be(b[1]))]}}else if(b=w.match(/]*\/>/)){x=he(b[0]);if(F[x.si])S.f=dl(F[x.si][1],F[x.si][0].ref,A.r)}var j=Kr(A.r);for(E=0;E=O[E][0].s.r&&j.r<=O[E][0].e.r)if(j.c>=O[E][0].s.c&&j.c<=O[E][0].e.c)S.F=O[E][1]}if(A.t==null&&S.v===undefined){if(S.f||S.F){S.v=0;S.t="n"}else if(!c.sheetStubs)continue;else S.t="z"}else S.t=A.t||"n";if(h.s.c>m)h.s.c=m;if(h.e.c0)l["!rows"]=M}}();function Lh(e,r,t,a,n){var i=[],s=[],f=qr(e["!ref"]),o,l,c="",h=[],u=0,d=0,p=e["!rows"];var v=Array.isArray(e);for(d=f.s.c;d<=f.e.c;++d)h[d]=Vr(d);for(u=f.s.r;u<=f.e.r;++u){s=[];c=Ur(u);for(d=f.s.c;d<=f.e.c;++d){l=h[d]+c;var g=v?(e[u]||[])[d]:e[l];if(g===undefined)continue;if((o=Ph(g,l,e,r,t,a))!=null)s.push(o)}if(s.length>0||p&&p[u]){var b={r:c};if(p&&p[u]){var m=p[u];if(m.hidden)b.hidden=1;var C=-1;if(m.hpx)C=Rf(m.hpx);else if(m.hpt)C=m.hpt;if(C>-1){b.ht=C;b.customHeight=1}if(m.level){b.outlineLevel=m.level}}i[i.length]=Ue("row",s.join(""),b)}}if(p)for(;u-1){b.ht=C;b.customHeight=1}if(m.level){b.outlineLevel=m.level}i[i.length]=Ue("row","",b)}}return i.join("")}var Mh=Ue("worksheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function Uh(e,r,t,a){var n=[se,Mh];var i=t.SheetNames[e],s=0,f="";var o=t.Sheets[i];if(o==null)o={};var l=o["!ref"];if(l==null)l="A1";if(!a)a={};o["!comments"]=[];o["!drawing"]=[];n[n.length]=Ue("sheetPr",null,{codeName:me(t.SheetNames[e])});n[n.length]=Ue("dimension",null,{ref:l});n[n.length]=Fh(o,r,e,t);if(r.sheetFormat)n[n.length]=Ue("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"});if(o["!cols"]!=null&&o["!cols"].length>0)n[n.length]=Rh(o,o["!cols"]);n[s=n.length]="";o["!links"]=[];if(o["!ref"]!=null){f=Lh(o,r,e,t,a);if(f.length>0)n[n.length]=f}if(n.length>s+1){n[n.length]="";n[s]=n[s].replace("/>",">")}if(o["!protect"]!=null)n[n.length]=_h(o["!protect"]);if(o["!autofilter"]!=null)n[n.length]=Oh(o["!autofilter"]);if(o["!merges"]!=null&&o["!merges"].length>0)n[n.length]=Bh(o["!merges"]);var c=-1,h,u=-1;if(o["!links"].length>0){n[n.length]="";o["!links"].forEach(function(e){if(!e[1].Target)return;u=ga(a,-1,me(e[1].Target).replace(/#.*$/,""),ha.HLINK);h={ref:e[0],"r:id":"rId"+u};if((c=e[1].Target.indexOf("#"))>-1)h.location=me(e[1].Target.substr(c+1));if(e[1].Tooltip)h.tooltip=me(e[1].Tooltip);n[n.length]=Ue("hyperlink",null,h)});n[n.length]=""}delete o["!links"];if(o["!margins"]!=null)n[n.length]=Ih(o["!margins"]);var d=n.length;n[n.length]="";if(o["!drawing"].length>0){u=ga(a,-1,"../drawings/drawing"+(e+1)+".xml",ha.DRAW);n[n.length]=Ue("drawing",null,{"r:id":"rId"+u})}else delete o["!drawing"];if(o["!comments"].length>0){u=ga(a,-1,"../drawings/vmlDrawing"+(e+1)+".vml",ha.VML);n[n.length]=Ue("legacyDrawing",null,{"r:id":"rId"+u});o["!legacy"]=u}if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function Hh(e,r){var t={};var a=e.l+r;t.r=e._R(4);e.l+=4;var n=e._R(2);e.l+=1;var i=e._R(1);e.l=a;if(i&7)t.level=i&7;if(i&16)t.hidden=true;if(i&32)t.hpt=n/20;return t}function Wh(e,r,t){var a=xr(17+8*16);var n=(t["!rows"]||[])[e]||{};a._W(4,e);a._W(4,0);var i=320;if(n.hpx)i=Rf(n.hpx)*20;else if(n.hpt)i=n.hpt*20;a._W(2,i);a._W(1,0);var s=0;if(n.level)s|=n.level;if(n.hidden)s|=16;if(n.hpx||n.hpt)s|=32;a._W(1,s);a._W(1,0);var f=0,o=a.l;a.l+=4;var l={r:e,c:0};for(var c=0;c<16;++c){if(r.s.c>c+1<<10||r.e.ca.l?a.slice(0,a.l):a}function zh(e,r,t,a){var n=Wh(a,t,r);if(n.length>17||(r["!rows"]||[])[a])Rr(e,"BrtRowHdr",n)}var Vh=Tt;var Xh=xt;function Gh(e,r){}function jh(e,r){var t={};e.l+=19;t.name=vt(e,r-19);return t}function Kh(e,r){if(r==null)r=xr(84+4*e.length);for(var t=0;t<3;++t)r._W(1,0);Ft({auto:1},r);r._W(-4,-1);r._W(-4,-1);gt(e,r);return r.slice(0,r.l)}function Yh(e,r){var t=dt(e);return[t]}function $h(e,r,t){if(t==null)t=xr(8);return pt(r,t)}function Zh(e,r){var t=dt(e);var a=e._R(1);return[t,a,"b"]}function Qh(e,r,t){if(t==null)t=xr(9);pt(r,t);t._W(1,e.v?1:0);return t}function Jh(e,r){var t=dt(e);var a=e._R(1);return[t,a,"e"]}function qh(e,r){var t=dt(e);var a=e._R(4);return[t,a,"s"]}function eu(e,r,t){if(t==null)t=xr(12);pt(r,t);t._W(4,r.v);return t}function ru(e,r){var t=dt(e);var a=It(e);return[t,a,"n"]}function tu(e,r,t){if(t==null)t=xr(16);pt(r,t);yt(e.v,t);return t}function au(e,r){var t=dt(e);var a=St(e);return[t,a,"n"]}function nu(e,r,t){if(t==null)t=xr(12);pt(r,t);At(e.v,t);return t}function iu(e,r){var t=dt(e);var a=it(e);return[t,a,"str"]}function su(e,r,t){if(t==null)t=xr(12+4*e.v.length);pt(r,t);st(e.v,t);return t.length>t.l?t.slice(0,t.l):t}function fu(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var f=Jc(e,a-e.l,t);s[3]=$c(f,null,n,t.supbooks,t)}else e.l=a;return s}function ou(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var f=Jc(e,a-e.l,t);s[3]=$c(f,null,n,t.supbooks,t)}else e.l=a;return s}function lu(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=It(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var f=Jc(e,a-e.l,t);s[3]=$c(f,null,n,t.supbooks,t)}else e.l=a;return s}function cu(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=it(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var f=Jc(e,a-e.l,t);s[3]=$c(f,null,n,t.supbooks,t)}else e.l=a;return s}var hu=Tt;var uu=xt;function du(e,r){if(r==null)r=xr(4);r._W(4,e);return r}function pu(e,r,t){var a=e.l+r;var n=Tt(e,16);var i=bt(e);var s=it(e);var f=it(e);var o=it(e);e.l=a;return{rfx:n,relId:i,loc:s,Tooltip:f,display:o}}function vu(e,r,t){if(t==null)t=xr(50+4*e[1].Target.length);xt({s:Kr(e[0]),e:Kr(e[0])},t);wt("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.substr(a+1);st(n||"",t);st(e[1].Tooltip||"",t);st("",t);return t.slice(0,t.l)}function gu(e,r,t){var a=e.l+r;var n=Bt(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var f=Qc(e,a-e.l,t);s[1]=f}else e.l=a;return s}function bu(e,r,t){var a=e.l+r;var n=Tt(e,16);var i=[n];if(t.cellFormula){var s=eh(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function mu(e,r,t){if(t==null)t=xr(18);var a=uh(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;t._W(1,n);t._W(1,0);return t}function Cu(e,r,t){return{left:It(e,8),right:It(e,8),top:It(e,8),bottom:It(e,8),header:It(e,8),footer:It(e,8)}}function Eu(e,r){if(r==null)r=xr(6*8);dh(e);yt(e.left,r);yt(e.right,r);yt(e.top,r);yt(e.bottom,r);yt(e.header,r);yt(e.footer,r);return r}function ku(e,r){if(r==null)r=xr(30);r._W(2,924);r._W(4,0);r._W(4,0);r._W(4,0);r._W(1,0);r._W(1,0);r._W(2,0);r._W(2,100);r._W(2,0);r._W(2,0);r._W(2,0);r._W(4,0);return r}function wu(e,r){if(r==null)r=xr(16*4+2);r._W(2,e.password?tf(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function Su(e,r,t,a,n,i){if(!e)return e;var s=r||{};if(!t)t={"!id":{}};if(c!=null&&s.dense==null)s.dense=c;var f=s.dense?[]:{};var o;var l={s:{r:2e6,c:2e6},e:{r:0,c:0}};var h=false,u=false;var d,p,v,g,b,m,E,k,w;var S=[];s.biff=12;s["!row"]=0;var A=0,B=false;var _=[];var T={};var x=[[]];x.sharedf=T;x.arrayf=_;x.SheetNames=a.SheetNames||a.Sheets.map(function(e){return e.name});s.supbooks=x;for(var I=0;I=c[0].s.r&&d.r<=c[0].e.r)if(b>=c[0].s.c&&b<=c[0].e.c){p.F=Jr(c[0]);B=true}}if(!B&&e.length>3)p.f=e[3]}if(l.s.r>d.r)l.s.r=d.r;if(l.s.c>b)l.s.c=b;if(l.e.rd.r)l.s.r=d.r;if(l.s.c>b)l.s.c=b;if(l.e.r=e.s){y[e.e--]={width:e.w/256,hidden:!!(e.flags&1)};if(!F){F=true;_f(e.w/256)}xf(y[e.e+1])}break;case 161:f["!autofilter"]={ref:Jr(e)};break;case 476:f["!margins"]=e;break;case 485:;case 175:;case 644:;case 625:;case 562:;case 396:;case 1112:;case 1146:;case 471:;case 1050:;case 649:;case 1105:;case 49:;case 589:;case 607:;case 564:;case 1055:;case 168:;case 174:;case 1180:;case 499:;case 64:;case 1053:;case 550:;case 171:;case 167:;case 1177:;case 169:;case 1181:;case 551:;case 552:;case 661:;case 639:;case 478:;case 151:;case 537:;case 477:;case 536:;case 1103:;case 680:;case 1104:;case 1024:;case 152:;case 663:;case 535:;case 678:;case 504:;case 1043:;case 428:;case 170:;case 50:;case 2070:;case 1045:;case 147:break;case 35:h=true;break;case 36:h=false;break;case 37:break;case 38:break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!h||s.WTF)throw new Error("Unexpected record "+a+" "+r);}},s);delete s.supbooks;delete s["!row"];if(!f["!ref"]&&(l.s.r<2e6||o&&(o.e.r>0||o.e.c>0||o.s.r>0||o.s.c>0)))f["!ref"]=Jr(o||l);if(s.sheetRows&&f["!ref"]){var P=qr(f["!ref"]);if(s.sheetRows<+P.e.r){P.e.r=s.sheetRows-1;if(P.e.r>l.e.r)P.e.r=l.e.r;if(P.e.rl.e.c)P.e.c=l.e.c;if(P.e.c0)f["!merges"]=S;if(y.length>0)f["!cols"]=y;if(R.length>0)f["!rows"]=R;return f}function Au(e,r,t,a,n,i){if(r.v===undefined)return"";var s="";var f=null;switch(r.t){case"b":s=r.v?"1":"0";break;case"d":r.z=r.z||C._table[14];f=r.v;r.v=P(r.v);r.t="n";break;case"n":;case"e":s=""+r.v;break;default:s=r.v;break;}var o={r:t,c:a};o.s=ph(n.cellXfs,r,n);if(r.l)i["!links"].push([Yr(o),r.l]);if(r.c)i["!comments"].push([Yr(o),r.c]);switch(r.t){case"s":;case"str":if(n.bookSST){s=hh(n.Strings,r.v);o.t="s";o.v=s;Rr(e,"BrtCellIsst",eu(r,o))}else{o.t="str";Rr(e,"BrtCellSt",su(r,o))}return;case"n":if(r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3)Rr(e,"BrtCellRk",nu(r,o));else Rr(e,"BrtCellReal",tu(r,o));if(f){r.t="d";r.v=f}return;case"b":o.t="b";Rr(e,"BrtCellBool",Qh(r,o));return;case"e":o.t="e";break;}Rr(e,"BrtCellBlank",$h(r,o))}function Bu(e,r,t,a,n){var i=qr(r["!ref"]||"A1"),s,f="",o=[];Rr(e,"BrtBeginSheetData");var l=Array.isArray(r);var c=i.e.r;if(r["!rows"])c=Math.max(i.e.r,r["!rows"].length-1);for(var h=i.s.r;h<=c;++h){f=Ur(h);zh(e,r,i,h);if(h<=i.e.r)for(var u=i.s.c;u<=i.e.c;++u){if(h===i.s.r)o[u]=Vr(u);s=o[u]+f;var d=l?(r[h]||[])[u]:r[s];if(!d)continue;Au(e,d,h,u,a,r)}}Rr(e,"BrtEndSheetData")}function _u(e,r){if(!r||!r["!merges"])return;Rr(e,"BrtBeginMergeCells",du(r["!merges"].length));r["!merges"].forEach(function(r){Rr(e,"BrtMergeCell",uu(r))});Rr(e,"BrtEndMergeCells")}function Tu(e,r,t,a,n){if(!r||!r["!cols"])return;Rr(e,"BrtBeginColInfos");r["!cols"].forEach(function(r,t){if(r)Rr(e,"BrtColInfo",mu(t,r))});Rr(e,"BrtEndColInfos")}function xu(e,r,t){r["!links"].forEach(function(r){if(!r[1].Target)return;var a=ga(t,-1,r[1].Target.replace(/#.*$/,""),ha.HLINK);Rr(e,"BrtHLink",vu(r,a))});delete r["!links"]}function Iu(e,r,t,a){if(r["!comments"].length>0){var n=ga(a,-1,"../drawings/vmlDrawing"+(t+1)+".vml",ha.VML);Rr(e,"BrtLegacyDrawing",wt("rId"+n));r["!legacy"]=n}}function yu(e,r){if(!r["!autofilter"])return;Rr(e,"BrtBeginAFilter",xt(Qr(r["!autofilter"].ref)));Rr(e,"BrtEndAFilter")}function Ru(e,r){Rr(e,"BrtBeginWsViews");{Rr(e,"BrtBeginWsView",ku(r));Rr(e,"BrtEndWsView")}Rr(e,"BrtEndWsViews")}function Du(e,r){}function Ou(e,r){if(!r["!protect"])return;Rr(e,"BrtSheetProtection",wu(r["!protect"]))}function Fu(e,r,t,a){var n=yr();var i=t.SheetNames[e],s=t.Sheets[i]||{};var f=qr(s["!ref"]||"A1");s["!links"]=[];s["!comments"]=[];Rr(n,"BrtBeginSheet");Rr(n,"BrtWsProp",Kh(i));Rr(n,"BrtWsDim",Xh(f));Ru(n,s);Du(n,s);Tu(n,s,e,r,t);Bu(n,s,e,r,t);Ou(n,s);yu(n,s);_u(n,s);xu(n,s,a);if(s["!margins"])Rr(n,"BrtMargins",Eu(s["!margins"]));Iu(n,s,e,a);Rr(n,"BrtEndSheet");return n.end()}function Pu(e){var r=[];(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach(function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);if(!t)return;r[+t[1]]=+t[2]});var t=ve((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return[r,t]}function Nu(e,r,t,a,n,i){var s=i||{"!type":"chart"};if(!e)return i;var f=0,o=0,l="A";var c={s:{r:2e6,c:2e6},e:{r:0,c:0}};(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(e){var r=Pu(e);c.s.r=c.s.c=0;c.e.c=f;l=Vr(f);r[0].forEach(function(e,t){s[l+Ur(t)]={t:"n",v:e,z:r[1]};o=t});if(c.e.r0)s["!ref"]=Jr(c);return s}ha.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";var Lu=Ue("chartsheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function Mu(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var f;if(f=e.match(/drawing r:id="(.*?)"/))s["!rel"]=f[1];if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function Uu(e,r,t,a){var n=[se,Lu];n[n.length]=Ue("drawing",null,{"r:id":"rId1"});ga(a,-1,"../drawings/drawing"+(e+1)+".xml",ha.DRAW);if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function Hu(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var f=[];var o=false;Ir(e,function l(e,t,a){switch(a){case 550:s["!rel"]=e;break;case 562:;case 652:;case 651:;case 669:;case 679:;case 551:;case 552:;case 476:break;case 35:o=true;break;case 36:o=false;break;case 37:f.push(t);break;case 38:f.pop();break;default:if((t||"").indexOf("Begin")>0)f.push(t);else if((t||"").indexOf("End")>0)f.pop();else if(!o||r.WTF)throw new Error("Unexpected record "+a+" "+t);}},r);if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function Wu(e,r,t,a){var n=yr();Rr(n,"BrtBeginSheet");Rr(n,"BrtEndSheet");return n.end()}var zu=[["allowRefreshQuery",false,"bool"],["autoCompressPictures",true,"bool"],["backupFile",false,"bool"],["checkCompatibility",false,"bool"],["codeName",""],["date1904",false,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",false,"bool"],["hidePivotFieldList",false,"bool"],["promptedSolutions",false,"bool"],["publishItems",false,"bool"],["refreshAllConnections",false,"bool"],["saveExternalLinkValues",true,"bool"],["showBorderUnselectedTables",true,"bool"],["showInkAnnotation",true,"bool"],["showObjects","all"],["showPivotChartFilter",false,"bool"],["updateLinks","userSet"]];var Vu=[["activeTab",0,"int"],["autoFilterDateGrouping",true,"bool"],["firstSheet",0,"int"],["minimized",false,"bool"],["showHorizontalScroll",true,"bool"],["showSheetTabs",true,"bool"],["showVerticalScroll",true,"bool"],["tabRatio",600,"int"],["visibility","visible"]];var Xu=[];var Gu=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var ju=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function Ku(e,r){for(var t=0;t!=e.length;++t){var a=e[t];for(var n=0;n!=r.length;++n){var i=r[n];if(a[i[0]]==null)a[i[0]]=i[1];else switch(i[2]){case"bool":if(typeof a[i[0]]=="string")a[i[0]]=Ae(a[i[0]],i[0]);break;case"int":if(typeof a[i[0]]=="string")a[i[0]]=parseInt(a[i[0]],10); -break;}}}}function Yu(e,r){for(var t=0;t!=r.length;++t){var a=r[t];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case"bool":if(typeof e[a[0]]=="string")e[a[0]]=Ae(e[a[0]],a[0]);break;case"int":if(typeof e[a[0]]=="string")e[a[0]]=parseInt(e[a[0]],10);break;}}}function $u(e){Yu(e.WBProps,zu);Yu(e.CalcPr,Gu);Ku(e.WBView,Vu);Ku(e.Sheets,Xu);ch.date1904=Ae(e.WBProps.date1904,"date1904")}function Zu(e){if(!e.Workbook)return"false";if(!e.Workbook.WBProps)return"false";return Ae(e.Workbook.WBProps.date1904)?"true":"false"}var Qu="][*?/\\".split("");function Ju(e,r){if(e.length>31){if(r)return false;throw new Error("Sheet names cannot exceed 31 chars")}var t=true;Qu.forEach(function(a){if(e.indexOf(a)==-1)return;if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=false});return t}function qu(e){e.forEach(function(r,t){Ju(r);for(var a=0;a":break;case"":;case"":break;case"":break;case"":zu.forEach(function(e){if(c[e[0]]==null)return;switch(e[2]){case"bool":t.WBProps[e[0]]=Ae(c[e[0]],e[0]);break;case"int":t.WBProps[e[0]]=parseInt(c[e[0]],10);break;default:t.WBProps[e[0]]=c[e[0]];}});break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":a=false;break;case"":{i.Ref=e.slice(s,l);t.Names.push(i)}break;case"":break;case"":delete c[0];t.CalcPr=c;break;case"":break;case"":;case"":;case"":break;case"":;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":;case"":;case"":break;case"":a=false;break;case"":a=false;break;case"0;var n={codeName:"ThisWorkbook"};if(e.Workbook&&e.Workbook.WBProps){if(e.Workbook.WBProps.codeName)n.codeName=e.Workbook.WBProps.codeName;zu.forEach(function(r){if(e.Workbook.WBProps[r[0]]==null)return;if(e.Workbook.WBProps[r[0]]==r[1])return;n[r[0]]=e.Workbook.WBProps[r[0]]})}t[t.length]=Ue("workbookPr",null,n);t[t.length]="";var i=e.Workbook&&e.Workbook.Sheets||[];for(var s=0;s!=e.SheetNames.length;++s){var f={name:me(e.SheetNames[s].substr(0,31))};f.sheetId=""+(s+1);f["r:id"]="rId"+(s+1);if(i[s])switch(i[s].Hidden){case 1:f.state="hidden";break;case 2:f.state="veryHidden";break;}t[t.length]=Ue("sheet",null,f)}t[t.length]="";if(a){t[t.length]="";if(e.Workbook&&e.Workbook.Names)e.Workbook.Names.forEach(function(e){var r={name:e.Name};if(e.Comment)r.comment=e.Comment;if(e.Sheet!=null)r.localSheetId=""+e.Sheet;if(!e.Ref)return;t[t.length]=Ue("definedName",String(e.Ref),r)});t[t.length]=""}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function id(e,r){var t={};t.Hidden=e._R(4);t.iTabID=e._R(4);t.strRelID=kt(e,r-8);t.name=it(e);return t}function sd(e,r){if(!r)r=xr(127);r._W(4,e.Hidden);r._W(4,e.iTabID);wt(e.strRelID,r);st(e.name.substr(0,31),r);return r.length>r.l?r.slice(0,r.l):r}function fd(e,r){var t={};var a=e._R(4);t.defaultThemeVersion=e._R(4);var n=r>8?it(e):"";if(n.length>0)t.codeName=n;t.autoCompressPictures=!!(a&65536);t.backupFile=!!(a&64);t.checkCompatibility=!!(a&4096);t.date1904=!!(a&1);t.filterPrivacy=!!(a&8);t.hidePivotFieldList=!!(a&1024);t.promptedSolutions=!!(a&16);t.publishItems=!!(a&2048);t.refreshAllConnections=!!(a&262144);t.saveExternalLinkValues=!!(a&128);t.showBorderUnselectedTables=!!(a&4);t.showInkAnnotation=!!(a&32);t.showObjects=["all","placeholders","none"][a>>13&3];t.showPivotChartFilter=!!(a&32768);t.updateLinks=["userSet","never","always"][a>>8&3];return t}function od(e,r){if(!r)r=xr(72);var t=0;if(e){if(e.filterPrivacy)t|=8}r._W(4,t);r._W(4,0);gt("ThisWorkbook",r);return r.slice(0,r.l)}function ld(e,r){var t={};e._R(4);t.ArchID=e._R(4);e.l+=r-8;return t}function cd(e,r,t){var a=e.l+r;var n=e._R(4);var i=e._R(1);var s=e._R(4);var f=Ct(e);var o=qc(e,0,t);var l=bt(e);e.l=a;var c={Name:f,Ptg:o,Comment:l};if(s<268435455)c.Sheet=s;return c}function hd(e,r){var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var a=false,n;if(!r)r={};r.biff=12;var i=[];var s=[];s.SheetNames=[];Ir(e,function f(e,n,o){switch(o){case 156:s.SheetNames.push(e.name);t.Sheets.push(e);break;case 153:t.WBProps=e;break;case 39:e.Ref=$c(e.Ptg,null,null,s,r);delete e.Ptg;i.push(e);break;case 1036:break;case 357:;case 358:;case 355:;case 667:;case 362:;case 361:break;case 2071:;case 534:;case 677:;case 158:;case 157:;case 610:;case 2050:;case 155:;case 548:;case 676:;case 128:;case 665:;case 2128:;case 2125:;case 549:;case 2053:;case 596:;case 2076:;case 2075:;case 2082:;case 397:;case 154:;case 1117:;case 553:;case 2091:break;case 35:a=true;break;case 36:a=false;break;case 37:break;case 38:break;case 16:break;default:if((n||"").indexOf("Begin")>0){}else if((n||"").indexOf("End")>0){}else if(!a||r.WTF)throw new Error("Unexpected record "+o+" "+n);}},r);$u(t);t.Names=i;return t}function ud(e,r,t){Rr(e,"BrtBeginBundleShs");for(var a=0;a!=r.SheetNames.length;++a){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[a]&&r.Workbook.Sheets[a].Hidden||0;var i={Hidden:n,iTabID:a+1,strRelID:"rId"+(a+1),name:r.SheetNames[a]};Rr(e,"BrtBundleSh",sd(i))}Rr(e,"BrtEndBundleShs")}function dd(e,t){if(!t)t=xr(127);for(var a=0;a!=4;++a)t._W(4,0);st("SheetJS",t);st(r.version,t);st(r.version,t);st("7262",t);t.length=t.l;return t.length>t.l?t.slice(0,t.l):t}function pd(e,r){if(!r)r=xr(29);r._W(-4,0);r._W(-4,460);r._W(4,28800);r._W(4,17600);r._W(4,500);r._W(4,e);r._W(4,e);var t=120;r._W(1,t);return r.length>r.l?r.slice(0,r.l):r}function vd(e,r,t){if(!r.Workbook||!r.Workbook.Sheets)return;var a=r.Workbook.Sheets;var n=0,i=-1,s=-1;for(;ni)return;Rr(e,"BrtBeginBookViews");Rr(e,"BrtBookView",pd(i));Rr(e,"BrtEndBookViews")}function gd(e,r){if(!r)r=xr(26);r._W(4,0);r._W(4,1);r._W(4,0);yt(0,r);r._W(-4,1023);r._W(1,51);r._W(1,0);return r}function bd(e,r){if(!r)r=xr(1);r._W(1,0);return r}function md(e,r){var t=yr();Rr(t,"BrtBeginBook");Rr(t,"BrtFileVersion",dd());Rr(t,"BrtWbProp",od(e.Workbook&&e.Workbook.WBProps||null));vd(t,e,r);ud(t,e,r);Rr(t,"BrtEndBook");return t.end()}function Cd(e,r,t){if(r.slice(-4)===".bin")return hd(e,t);return td(e,t)}function Ed(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Su(e,t,a,n,i,s);return Ah(e,t,a,n,i,s)}function kd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Hu(e,t,a,n,i,s);return Mu(e,t,a,n,i,s)}function wd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return fl(e,t,a,n,i,s);return ol(e,t,a,n,i,s)}function Sd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return il(e,t,a,n,i,s);return sl(e,t,a,n,i,s)}function Ad(e,r,t,a){if(r.slice(-4)===".bin")return fo(e,t,a);return Vf(e,t,a)}function Bd(e,r,t){return xo(e,t)}function _d(e,r,t){if(r.slice(-4)===".bin")return Ns(e,t);return Ds(e,t)}function Td(e,r,t){if(r.slice(-4)===".bin")return al(e,t);return Zo(e,t)}function xd(e,r,t){if(r.slice(-4)===".bin")return Wo(e,r,t);return Mo(e,r,t)}function Id(e,r,t){if(r.slice(-4)===".bin")return Xo(e,r,t);return Vo(e,r,t)}function yd(e,r,t){return(r.slice(-4)===".bin"?md:nd)(e,t)}function Rd(e,r,t,a,n){return(r.slice(-4)===".bin"?Fu:Uh)(e,t,a,n)}function Dd(e,r,t,a,n){return(r.slice(-4)===".bin"?Wu:Uu)(e,t,a,n)}function Od(e,r,t){return(r.slice(-4)===".bin"?Co:Gf)(e,t)}function Fd(e,r,t){return(r.slice(-4)===".bin"?Us:Fs)(e,t)}function Pd(e,r,t){return(r.slice(-4)===".bin"?nl:Jo)(e,t)}var Nd=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var Ld=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var Md=function(e){return String.fromCharCode(e)};function Ud(e,r){var t=e.split(/\s+/);var a=[];if(!r)a[0]=t[0];if(t.length===1)return a;var n=e.match(Nd),i,s,f,o;if(n)for(o=0;o!=n.length;++o){i=n[o].match(Ld);if((s=i[1].indexOf(":"))===-1)a[i[1]]=i[2].substr(1,i[2].length-2);else{if(i[1].substr(0,6)==="xmlns:")f="xmlns"+i[1].substr(6);else f=i[1].substr(s+1);a[f]=i[2].substr(1,i[2].length-2)}}return a}function Hd(e){var r=e.split(/\s+/);var t={};if(r.length===1)return t;var a=e.match(Nd),n,i,s,f;if(a)for(f=0;f!=a.length;++f){n=a[f].match(Ld);if((i=n[1].indexOf(":"))===-1)t[n[1]]=n[2].substr(1,n[2].length-2);else{if(n[1].substr(0,6)==="xmlns:")s="xmlns"+n[1].substr(6);else s=n[1].substr(i+1);t[s]=n[2].substr(1,n[2].length-2)}}return t}function Wd(e,r){var t=k[e]||ve(e);if(t==="General")return C._general(r);return C.format(t,r)}function zd(e,r,t,a){var n=a;switch((t[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":n=Ae(a);break;case"i2":;case"int":n=parseInt(a,10);break;case"r4":;case"float":n=parseFloat(a);break;case"date":;case"dateTime.tz":n=H(a);break;case"i8":;case"string":;case"fixed":;case"uuid":;case"bin.base64":break;default:throw new Error("bad custprop:"+t[0]);}e[ve(r[3])]=n}function Vd(e,r,t){if(e.t==="z")return;if(!t||t.cellText!==false)try{if(e.t==="e"){e.w=e.w||Rt[e.v]}else if(r==="General"){if(e.t==="n"){if((e.v|0)===e.v)e.w=C._general_int(e.v);else e.w=C._general_num(e.v)}else e.w=C._general(e.v)}else e.w=Wd(r||"General",e.v)}catch(a){if(t.WTF)throw a}try{var n=k[r]||r||"General";if(t.cellNF)e.z=n;if(t.cellDates&&e.t=="n"&&C.is_date(n)){var i=C.parse_date_code(e.v);if(i){e.t="d";e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u)}}}catch(a){if(t.WTF)throw a}}function Xd(e,r,t){if(t.cellStyles){if(r.Interior){var a=r.Interior;if(a.Pattern)a.patternType=Of[a.Pattern]||a.Pattern}}e[r.ID]=r}function Gd(e,r,t,a,n,i,s,f,o,l){var c="General",h=a.StyleID,u={};l=l||{};var d=[];var p=0;if(h===undefined&&f)h=f.StyleID;if(h===undefined&&s)h=s.StyleID;while(i[h]!==undefined){if(i[h].nf)c=i[h].nf;if(i[h].Interior)d.push(i[h].Interior);if(!i[h].Parent)break;h=i[h].Parent}switch(t.Type){case"Boolean":a.t="b";a.v=Ae(e);break;case"String":a.t="s";a.r=we(ve(e));a.v=e.indexOf("<")>-1?ve(r):a.r;break;case"DateTime":if(e.slice(-1)!="Z")e+="Z";a.v=(H(e)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(a.v!==a.v)a.v=ve(e);else if(a.v<60)a.v=a.v-1;if(!c||c=="General")c="yyyy-mm-dd";case"Number":if(a.v===undefined)a.v=+e;if(!a.t)a.t="n";break;case"Error":a.t="e";a.v=Dt[e];if(l.cellText!==false)a.w=e;break;default:a.t="s";a.v=we(r||e);break;}Vd(a,c,l);if(l.cellFormula!==false){if(a.Formula){var v=ve(a.Formula);if(v.charCodeAt(0)==61)v=v.substr(1);a.f=ll(v,n);delete a.Formula;if(a.ArrayRange=="RC")a.F=ll("RC:RC",n);else if(a.ArrayRange){a.F=ll(a.ArrayRange,n);o.push([qr(a.F),a.F])}}else{for(p=0;p=o[p][0].s.r&&n.r<=o[p][0].e.r)if(n.c>=o[p][0].s.c&&n.c<=o[p][0].e.c)a.F=o[p][1]}}if(l.cellStyles){d.forEach(function(e){if(!u.patternType&&e.patternType)u.patternType=e.patternType});a.s=u}a.ixfe=a.StyleID!==undefined?a.StyleID:"Default"}function jd(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function Kd(e){if(d&&Buffer.isBuffer(e))return e.toString("utf8");if(typeof e==="string")return e;throw new Error("Bad input format: expected Buffer or string")}var Yd=/<(\/?)([^\s?>!\/:]*:|)([^\s?>]*[^\s?>\/])[^>]*>/gm;function $d(e,r){var t=r||{};E(C);var a=o(Kd(e));if(t.type=="binary"||t.type=="base64"){if(typeof cptable!=="undefined")a=cptable.utils.decode(65001,i(a));else a=Be(a)}var n=a.slice(0,1024).toLowerCase(),s=false;if(n.indexOf("=0)s=true});if(s)return Dp.to_workbook(a,t);var f;var l=[],h;if(c!=null&&t.dense==null)t.dense=c;var u={},d=[],p=t.dense?[]:{},v="";var g={},b={},m={};var w=Ud(''),S=0;var A=0,B=0;var _={s:{r:2e6,c:2e6},e:{r:0,c:0}};var T={},x={};var I="",y=0;var R=[];var D={},O={},F=0,P={};var N=[],L={};var M=[],U,H=false;var W=[];var z=[],X={};var G={Sheets:[],WBProps:{date1904:false}},j={};Yd.lastIndex=0;a=a.replace(//gm,"");while(f=Yd.exec(a))switch(f[3]){case"Data":if(l[l.length-1][1])break;if(f[1]==="/")Gd(a.slice(S,f.index),I,w,l[l.length-1][0]=="Comment"?L:b,{c:A,r:B},T,M[A],m,W,t);else{I="";w=Ud(f[0]);S=f.index+f[0].length}break;case"Cell":if(f[1]==="/"){if(N.length>0)b.c=N;if((!t.sheetRows||t.sheetRows>B)&&b.v!==undefined){if(t.dense){if(!p[B])p[B]=[];p[B][A]=b}else p[Vr(A)+Ur(B)]=b}if(b.HRef){b.l={Target:b.HRef,Tooltip:b.HRefScreenTip};delete b.HRef;delete b.HRefScreenTip}if(b.MergeAcross||b.MergeDown){var K=A+(parseInt(b.MergeAcross,10)|0);var Y=B+(parseInt(b.MergeDown,10)|0);R.push({s:{c:A,r:B},e:{c:K,r:Y}})}if(!t.sheetStubs){if(b.MergeAcross)A=K+1;else++A}else if(b.MergeAcross||b.MergeDown){for(var $=A;$<=K;++$){for(var Z=B;Z<=Y;++Z){if($>A||Z>B){if(t.dense){if(!p[Z])p[Z]=[];p[Z][$]={t:"z"}}else p[Vr($)+Ur(Z)]={t:"z"}}}}A=K+1}else++A}else{b=Hd(f[0]);if(b.Index)A=+b.Index-1;if(A<_.s.c)_.s.c=A;if(A>_.e.c)_.e.c=A;if(f[0].slice(-2)==="/>")++A;N=[]}break;case"Row":if(f[1]==="/"||f[0].slice(-2)==="/>"){if(B<_.s.r)_.s.r=B;if(B>_.e.r)_.e.r=B;if(f[0].slice(-2)==="/>"){m=Ud(f[0]);if(m.Index)B=+m.Index-1}A=0;++B}else{m=Ud(f[0]);if(m.Index)B=+m.Index-1;X={};if(m.AutoFitHeight=="0"||m.Height){X.hpx=parseInt(m.Height,10);X.hpt=Rf(X.hpx);z[B]=X}if(m.Hidden=="1"){X.hidden=true;z[B]=X}}break;case"Worksheet":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"));d.push(v);if(_.s.r<=_.e.r&&_.s.c<=_.e.c)p["!ref"]=Jr(_);if(R.length)p["!merges"]=R;if(M.length>0)p["!cols"]=M;if(z.length>0)p["!rows"]=z;u[v]=p}else{_={s:{r:2e6,c:2e6},e:{r:0,c:0}};B=A=0;l.push([f[3],false]);h=Ud(f[0]);v=ve(h.Name);p=t.dense?[]:{};R=[];W=[];z=[];j={name:v,Hidden:0};G.Sheets.push(j)}break;case"Table":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else if(f[0].slice(-2)=="/>")break;else{g=Ud(f[0]);l.push([f[3],false]);M=[];H=false}break;case"Style":if(f[1]==="/")Xd(T,x,t);else x=Ud(f[0]);break;case"NumberFormat":x.nf=ve(Ud(f[0]).Format||"General");if(k[x.nf])x.nf=k[x.nf];for(var Q=0;Q!=392;++Q)if(C._table[Q]==x.nf)break;if(Q==392)for(Q=57;Q!=392;++Q)if(C._table[Q]==null){C.load(x.nf,Q);break}break;case"Column":if(l[l.length-1][0]!=="Table")break;U=Ud(f[0]);if(U.Hidden){U.hidden=true;delete U.Hidden}if(U.Width)U.wpx=parseInt(U.Width,10);if(!H&&U.wpx>10){H=true;Cf=gf;for(var J=0;J0)re.Sheet=G.Sheets.length-1;G.Names.push(re);break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(f[0].slice(-2)==="/>")break;else if(f[1]==="/")I+=a.slice(y,f.index);else y=f.index+f[0].length;break;case"Interior":if(!t.cellStyles)break;x.Interior=Ud(f[0]);break;case"Protection":break;case"Author":;case"Title":;case"Description":;case"Created":;case"Keywords":;case"Subject":;case"Category":;case"Company":;case"LastAuthor":;case"LastSaved":;case"LastPrinted":;case"Version":;case"Revision":;case"TotalTime":;case"HyperlinkBase":;case"Manager":;case"ContentStatus":;case"Identifier":;case"Language":;case"AppName":if(f[0].slice(-2)==="/>")break;else if(f[1]==="/")Ha(D,f[3],a.slice(F,f.index));else F=f.index+f[0].length;break;case"Paragraphs":break;case"Styles":;case"Workbook":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else l.push([f[3],false]);break;case"Comment":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"));jd(L);N.push(L)}else{l.push([f[3],false]);h=Ud(f[0]);L={a:h.Author}}break;case"AutoFilter":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else if(f[0].charAt(f[0].length-2)!=="/"){var te=Ud(f[0]);p["!autofilter"]={ref:ll(te.Range).replace(/\$/g,"")};l.push([f[3],true])}break;case"Name":break;case"ComponentOptions":;case"DocumentProperties":;case"CustomDocumentProperties":;case"OfficeDocumentSettings":;case"PivotTable":;case"PivotCache":;case"Names":;case"MapInfo":;case"PageBreaks":;case"QueryTable":;case"DataValidation":;case"Sorting":;case"Schema":;case"data":;case"ConditionalFormatting":;case"SmartTagType":;case"SmartTags":;case"ExcelWorkbook":;case"WorkbookOptions":;case"WorksheetOptions":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else if(f[0].charAt(f[0].length-2)!=="/")l.push([f[3],true]);break;default:if(l.length==0&&f[3]=="document")return Lp(a,t);if(l.length==0&&f[3]=="UOF")return Lp(a,t);var ae=true;switch(l[l.length-1][0]){case"OfficeDocumentSettings":switch(f[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:ae=false;}break;case"ComponentOptions":switch(f[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:ae=false;}break;case"ExcelWorkbook":switch(f[3]){case"Date1904":G.WBProps.date1904=true;break;case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:ae=false;}break;case"WorkbookOptions":switch(f[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:ae=false;}break;case"WorksheetOptions":switch(f[3]){case"Visible":if(f[0].slice(-2)==="/>"){}else if(f[1]==="/")switch(a.slice(F,f.index)){case"SheetHidden":j.Hidden=1;break;case"SheetVeryHidden":j.Hidden=2;break;}else F=f.index+f[0].length;break;case"Header":if(!p["!margins"])dh(p["!margins"]={},"xlml");p["!margins"].header=he(f[0]).Margin;break;case"Footer":if(!p["!margins"])dh(p["!margins"]={},"xlml");p["!margins"].footer=he(f[0]).Margin;break;case"PageMargins":var ne=he(f[0]);if(!p["!margins"])dh(p["!margins"]={},"xlml");if(ne.Top)p["!margins"].top=ne.Top;if(ne.Left)p["!margins"].left=ne.Left;if(ne.Right)p["!margins"].right=ne.Right;if(ne.Bottom)p["!margins"].bottom=ne.Bottom;break;case"Unsynced":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"PageSetup":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:ae=false;}break;case"PivotTable":;case"PivotCache":switch(f[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:ae=false;}break;case"PageBreaks":switch(f[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:ae=false;}break;case"AutoFilter":switch(f[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:ae=false;}break;case"QueryTable":switch(f[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:ae=false;}break;case"Sorting":;case"ConditionalFormatting":;case"DataValidation":switch(f[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:ae=false;}break;case"MapInfo":;case"Schema":;case"data":switch(f[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":;case"element":;case"complexType":;case"datatype":;case"all":;case"attribute":;case"extends":break;case"row":break;default:ae=false;}break;case"SmartTags":break;default:ae=false;break;}if(ae)break;if(!l[l.length-1][1])throw"Unrecognized tag: "+f[3]+"|"+l.join("|");if(l[l.length-1][0]==="CustomDocumentProperties"){if(f[0].slice(-2)==="/>")break;else if(f[1]==="/")zd(O,f,P,a.slice(F,f.index));else{P=f;F=f.index+f[0].length}break}if(t.WTF)throw"Unrecognized tag: "+f[3]+"|"+l.join("|");}var ie={};if(!t.bookSheets&&!t.bookProps)ie.Sheets=u;ie.SheetNames=d;ie.Workbook=G;ie.SSF=C.get_table();ie.Props=D;ie.Custprops=O;return ie}function Zd(e){if(Array.isArray(e))return e.map(Md).join("");var r=[];for(var t=0;t");if(e["!margins"].header)n.push(Ue("Header",null,{"x:Margin":e["!margins"].header}));if(e["!margins"].footer)n.push(Ue("Footer",null,{"x:Margin":e["!margins"].footer}));n.push(Ue("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"}));n.push("")}if(a&&a.Workbook&&a.Workbook.Sheets&&a.Workbook.Sheets[t]){if(a.Workbook.Sheets[t].Hidden)n.push(Ue("Visible",a.Workbook.Sheets[t].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var i=0;i")}}if(e["!protect"]){n.push(Le("ProtectContents","True"));if(e["!protect"].objects)n.push(Le("ProtectObjects","True"));if(e["!protect"].scenarios)n.push(Le("ProtectScenarios","True"));if(e["!protect"].selectLockedCells!=null&&!e["!protect"].selectLockedCells)n.push(Le("EnableSelection","NoSelection"));else if(e["!protect"].selectUnlockedCells!=null&&!e["!protect"].selectUnlockedCells)n.push(Le("EnableSelection","UnlockedCells"));[["formatColumns","AllowFormatCells"],["formatRows","AllowSizeCols"],["formatCells","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(r){if(e["!protect"][r[0]])n.push("<"+r[1]+"/>")})}if(n.length==0)return"";return Ue("WorksheetOptions",n.join(""),{xmlns:Ve.x})}function tp(e){return e.map(function(e){var r=Se(e.t||"");var t=Ue("ss:Data",r,{xmlns:"http://www.w3.org/TR/REC-html40"});return Ue("Comment",t,{"ss:Author":e.a})}).join("")}function ap(e,r,t,a,n,i,s){if(!e||e.v==undefined&&e.f==undefined)return"";var f={};if(e.f)f["ss:Formula"]="="+me(hl(e.f,s));if(e.F&&e.F.substr(0,r.length)==r){var o=Kr(e.F.substr(r.length+1));f["ss:ArrayRange"]="RC:R"+(o.r==s.r?"":"["+(o.r-s.r)+"]")+"C"+(o.c==s.c?"":"["+(o.c-s.c)+"]")}if(e.l&&e.l.Target){f["ss:HRef"]=me(e.l.Target);if(e.l.Tooltip)f["x:HRefScreenTip"]=me(e.l.Tooltip)}if(t["!merges"]){var l=t["!merges"];for(var c=0;c!=l.length;++c){if(l[c].s.c!=s.c||l[c].s.r!=s.r)continue;if(l[c].e.c>l[c].s.c)f["ss:MergeAcross"]=l[c].e.c-l[c].s.c;if(l[c].e.r>l[c].s.r)f["ss:MergeDown"]=l[c].e.r-l[c].s.r}}var h="",u="";switch(e.t){case"z":return"";case"n":h="Number";u=String(e.v);break;case"b":h="Boolean";u=e.v?"1":"0";break;case"e":h="Error";u=Rt[e.v];break;case"d":h="DateTime";u=new Date(e.v).toISOString();break;case"s":h="String";u=me(e.v||"");break;}var d=e.v!=null?u:"";var p=''+d+"";if((e.c||[]).length>0)p+=tp(e.c);return Ue("Cell",p,f)}function np(e,r){var t='"}function ip(e,r,t,a){if(!e["!ref"])return"";var n=qr(e["!ref"]);var i=e["!merges"]||[],s=0;var f=[];if(e["!cols"])e["!cols"].forEach(function(e,r){xf(e);var t=!!e.width;var a=uh(r,e);var n={"ss:Index":r+1};if(t)n["ss:Width"]=Ef(a.width);if(e.hidden)n["ss:Hidden"]="1";f.push(Ue("Column",null,n))});var o=Array.isArray(e);for(var l=n.s.r;l<=n.e.r;++l){var c=[np(l,(e["!rows"]||[])[l])];for(var h=n.s.c;h<=n.e.c;++h){var u=false;for(s=0;s!=i.length;++s){if(i[s].s.c>h)continue;if(i[s].s.r>l)continue;if(i[s].e.c");if(c.length>2)f.push(c.join(""))}return f.join("")}function sp(e,r,t){var a=[];var n=t.SheetNames[e];var i=t.Sheets[n];var s=i?ip(i,r,e,t):"";if(s.length>0)a.push(""+s+"
    ");a.push(rp(i,r,e,t));return a.join("")}function fp(e,r){var t=[];t.push(Jd(e,r));t.push(qd(e,r));t.push(ep(e,r));for(var a=0;a400)throw new Error("Unsupported Clipboard: "+n.toString(16));a+=n;}n=er(t,a);a+=n.length===0?0:5+n.length;r.Reserved1=n;if((n=pr(t,a))!==1907550708)return r;throw new Error("Unsupported Unicode Extension")}function lp(e,r,t,a){var n=t;var i=[];var s=r.slice(r.l,r.l+n);if(a&&a.enc&&a.enc.insitu_decrypt)switch(e.n){case"BOF":;case"FilePass":;case"FileLock":;case"InterfaceHdr":;case"RRDInfo":;case"RRDHead":;case"UsrExcl":break;default:if(s.length===0)break;a.enc.insitu_decrypt(s);}i.push(s);r.l+=n;var f=mp[ur(r,r.l)];var o=0;while(f!=null&&f.n.slice(0,8)==="Continue"){n=ur(r,r.l+2);o=r.l+4;if(f.n=="ContinueFrt")o+=4;else if(f.n.slice(0,11)=="ContinueFrt")o+=12;i.push(r.slice(o,r.l+4+n));r.l+=4+n;f=mp[ur(r,r.l)]}var l=g(i);Ar(l,0);var c=0;l.lens=[];for(var h=0;h1)return;if(!_)return;if(t.cellStyles&&r.XF&&r.XF.data)D(e,r,t);delete r.ixfe;delete r.XF;p=e;v=Yr(e);if(o.s){if(e.ro.e.r)o.e.r=e.r+1;if(e.c+1>o.e.c)o.e.c=e.c+1}if(t.cellFormula&&r.f){for(var a=0;ae.c)continue;if(S[a][0].s.r>e.r)continue;if(S[a][0].e.c=t.sheetRows)_=false;else{if(t.dense){if(!i[e.r])i[e.r]=[];i[e.r][e.c]=r}else i[v]=r}};var F={enc:false,sbcch:0,snames:[],sharedf:w,arrayf:S,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,cellStyles:!!r&&!!r.cellStyles,WTF:!!r&&!!r.wtf};if(r.password)F.password=r.password;var P=[];var N=[];var L=[],M=[];var U=0,H=0;var W=false;var z=[];z.SheetNames=F.snames;z.sharedf=F.sharedf;z.arrayf=F.arrayf;z.names=[];z.XTI=[];var V="";var X=0;var G=0;var j=[];var K=[];var Y;F.codepage=1200;n(1200);while(e.l0)Y.Sheet=re.itab-1;z.names.push(Y);if(!z[0])z[0]=[];z[z.length-1].push(re);if(re.Name=="_xlnm._FilterDatabase"&&re.itab>0)if(re.rgce&&re.rgce[0]&&re.rgce[0][0]&&re.rgce[0][0][0]=="PtgArea3d")K[re.itab-1]={ref:Jr(re.rgce[0][0][1][2])};break;case"ExternCount":F.ExternCount=re;break;case"ExternSheet":if(z.length==0){z[0]=[];z[0].XTI=[]}z[z.length-1].XTI=z[z.length-1].XTI.concat(re);z.XTI=z.XTI.concat(re);break;case"NameCmt":if(F.biff<8)break;if(Y!=null)Y.Comment=re[1];break;case"Protect":i["!protect"]=re;break;case"Password":if(re!==0&&F.WTF)console.error("Password verifier: "+re);break;case"Prot4Rev":;case"Prot4RevPass":break;case"BoundSheet8":{s[re.pos]=re;F.snames.push(re.name)}break;case"EOF":{if(--X)break;if(o.e){if(o.e.r>0&&o.e.c>0){o.e.r--;o.e.c--;i["!ref"]=Jr(o);o.e.r++;o.e.c++}if(P.length>0)i["!merges"]=P;if(N.length>0)i["!objects"]=N;if(L.length>0)i["!cols"]=L;if(M.length>0)i["!rows"]=M;I.Sheets.push(y)}if(u==="")d=i;else a[u]=i;i=r.dense?[]:{}}break;case"BOF":{if(F.biff===8)switch(Z){case 9:F.biff=2;break;case 521:F.biff=3;break;case 1033:F.biff=4;break;default:switch(re.BIFFVer){case 1280:F.biff=5;break;case 1536:F.biff=8;break;case 2:F.biff=2;break;case 7:F.biff=2;break;};}if(X++)break;_=true;i=r.dense?[]:{};if(F.biff<5){if(u==="")u="Sheet1";o={s:{r:0,c:0},e:{r:0,c:0}};var ae={pos:e.l-Q,name:u};s[ae.pos]=ae;F.snames.push(u)}else u=(s[$]||{name:""}).name;if(re.dt==32)i["!type"]="chart";P=[];N=[];S=[];F.arrayf=S;L=[];M=[];U=H=0;W=false;y={Hidden:(s[$]||{hs:0}).hs,name:u}}break;case"Number":;case"BIFF2NUM":;case"BIFF2INT":{if(i["!type"]=="chart")if(r.dense?(i[re.r]||[])[re.c]:i[Yr({c:re.c,r:re.r})])++re.c;A={ixfe:re.ixfe,XF:T[re.ixfe]||{},v:re.val,t:"n"};if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"BoolErr":{A={ixfe:re.ixfe,XF:T[re.ixfe],v:re.val,t:re.t};if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"RK":{A={ixfe:re.ixfe,XF:T[re.ixfe],v:re.rknum,t:"n"};if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"MulRk":{for(var ne=re.c;ne<=re.C;++ne){var ie=re.rkrec[ne-re.c][0];A={ixfe:ie,XF:T[ie],v:re.rkrec[ne-re.c][1],t:"n"};if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:ne,r:re.r},A,r)}}break;case"Formula":{if(re.val=="String"){l=re;break}A=hp(re.val,re.cell.ixfe,re.tt);A.XF=T[A.ixfe];if(r.cellFormula){var se=re.formula;if(se&&se[0]&&se[0][0]&&se[0][0][0]=="PtgExp"){var fe=se[0][0][1][0],oe=se[0][0][1][1];var le=Yr({r:fe,c:oe});if(w[le])A.f=""+$c(re.formula,o,re.cell,z,F);else A.F=((r.dense?(i[fe]||[])[oe]:i[le])||{}).F}else A.f=""+$c(re.formula,o,re.cell,z,F)}if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O(re.cell,A,r);l=re}break;case"String":{if(l){l.val=re;A=hp(re,l.cell.ixfe,"s");A.XF=T[A.ixfe];if(r.cellFormula){A.f=""+$c(l.formula,o,l.cell,z,F)}if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O(l.cell,A,r);l=null}else throw new Error("String record expects Formula")}break;case"Array":{S.push(re);var ce=Yr(re[0].s);g=r.dense?(i[re[0].s.r]||[])[re[0].s.c]:i[ce];if(r.cellFormula&&g){if(!l)break;if(!ce||!g)break;g.f=""+$c(re[1],o,re[0],z,F);g.F=Jr(re[0])}}break;case"ShrFmla":{if(!_)break;if(!r.cellFormula)break;if(v){if(!l)break;w[Yr(l.cell)]=re[0];g=r.dense?(i[l.cell.r]||[])[l.cell.c]:i[Yr(l.cell)];(g||{}).f=""+$c(re[0],o,p,z,F)}}break;case"LabelSst":A=hp(h[re.isst].t,re.ixfe,"s");A.XF=T[A.ixfe];if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r);break;case"Blank":if(r.sheetStubs){A={ixfe:re.ixfe,XF:T[re.ixfe],t:"z"};if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"MulBlank":if(r.sheetStubs){for(var he=re.c;he<=re.C;++he){var ue=re.ixfe[he-re.c];A={ixfe:ue,XF:T[ue],t:"z"};if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:he,r:re.r},A,r)}}break;case"RString":;case"Label":;case"BIFF2STR":A=hp(re.val,re.ixfe,"s");A.XF=T[A.ixfe];if(G>0)A.z=j[A.ixfe>>8&31];cp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r);break;case"Dimensions":{if(X===1)o=re}break;case"SST":{h=re}break;case"Format":{C.load(re[1],re[0])}break;case"BIFF2FORMAT":{j[G++]=re;for(var de=0;de=163)C.load(re,G+163)}break;case"MergeCells":P=P.concat(re);break;case"Obj":N[re.cmo[0]]=F.lastobj=re;break;case"TxO":F.lastobj.TxO=re;break;case"ImData":F.lastobj.ImData=re;break;case"HLink":{for(k=re[0].s.r;k<=re[0].e.r;++k)for(E=re[0].s.c;E<=re[0].e.c;++E){g=r.dense?(i[k]||[])[E]:i[Yr({c:E,r:k})];if(g)g.l=re[1]}}break;case"HLinkTooltip":{for(k=re[0].s.r;k<=re[0].e.r;++k)for(E=re[0].s.c;E<=re[0].e.c;++E){g=r.dense?(i[k]||[])[E]:i[Yr({c:E,r:k})];if(g)g.l.Tooltip=re[1]}}break;case"Note":{if(F.biff<=5&&F.biff>=2)break;g=r.dense?(i[re[0].r]||[])[re[0].c]:i[Yr(re[0])];var pe=N[re[2]];if(!g)break;if(!g.c)g.c=[];b={a:re[1],t:pe.TxO.t};g.c.push(b)}break;default:switch(q.n){case"ClrtClient":break;case"XFExt":Lo(T[re.ixfe],re.ext);break;case"DefColWidth":U=re;break;case"DefaultRowHeight":H=re[1];break;case"ColInfo":{if(!F.cellStyles)break;while(re.e>=re.s){L[re.e--]={width:re.w/256};if(!W){W=true;_f(re.w/256)}xf(L[re.e+1])}}break;case"Row":{var ve={};if(re.level!=null){M[re.r]=ve;ve.level=re.level}if(re.hidden){M[re.r]=ve;ve.hidden=true}if(re.hpt){M[re.r]=ve;ve.hpt=re.hpt;ve.hpx=Df(re.hpt)}}break;case"LeftMargin":;case"RightMargin":;case"TopMargin":;case"BottomMargin":if(!i["!margins"])dh(i["!margins"]={});i["!margins"][te.slice(0,-6).toLowerCase()]=re;break;case"Setup":if(!i["!margins"])dh(i["!margins"]={});i["!margins"].header=re.header;i["!margins"].footer=re.footer;break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"GCW":break;case"LHRecord":break;case"DBCell":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXString":break;case"Sync":break;case"Addin":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":;case"FeatHdr11":break;case"Feature11":;case"Feature12":;case"List12":break;case"Country":B=re;break;case"RecalcId":break;case"DxGCol":break;case"Fbi":;case"Fbi2":;case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":x=re;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":;case"DXFN":;case"DXFN12":;case"DXFN12List":;case"DXFN12NoCB":break;case"Dv":;case"DVal":break;case"BRAI":;case"Series":;case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"OleDbConn":break;case"ExtString":break;case"IFmtRecord":break;case"CondFmt":;case"CF":;case"CF12":;case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":;case"Mms":;case"InterfaceEnd":;case"DSF":break;case"BuiltInFnGroupCount":break;case"Window1":;case"Window2":;case"HideObj":;case"GridSet":;case"Guts":;case"UserBView":;case"UserSViewBegin":;case"UserSViewEnd":;case"Pane":break;default:switch(q.n){case"Dat":;case"Begin":;case"End":;case"StartBlock":;case"EndBlock":;case"Frame":;case"Area":;case"Axis":;case"AxisLine":;case"Tick":break;case"AxesUsed":;case"CrtLayout12":;case"CrtLayout12A":;case"CrtLink":;case"CrtLine":;case"CrtMlFrt":;case"CrtMlFrtContinue":break;case"LineFormat":;case"AreaFormat":;case"Chart":;case"Chart3d":;case"Chart3DBarShape":;case"ChartFormat":;case"ChartFrtInfo":break;case"PlotArea":;case"PlotGrowth":break;case"SeriesList":;case"SerParent":;case"SerAuxTrend":break;case"DataFormat":;case"SerToCrt":;case"FontX":break;case"CatSerRange":;case"AxcExt":;case"SerFmt":break;case"ShtProps":break;case"DefaultText":;case"Text":;case"CatLab":break;case"DataLabExtContents":break;case"Legend":;case"LegendException":break;case"Pie":;case"Scatter":break;case"PieFormat":;case"MarkerFormat":break;case"StartObject":;case"EndObject":break;case"AlRuns":;case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":;case"YMult":break;case"Line":;case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":;case"Qsif":;case"Qsir":;case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":;case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":;case"MsoDrawingGroup":;case"MsoDrawingSelection":break;case"WebPub":;case"AutoWebPub":break;case"HeaderFooter":;case"HFPicture":;case"PLV":;case"HorizontalPageBreaks":;case"VerticalPageBreaks":break;case"Backup":;case"CompressPictures":;case"Compat12":break;case"Continue":;case"ContinueFrt12":break;case"FrtFontList":;case"FrtWrapper":break;default:switch(q.n){case"TabIdConf":;case"Radar":;case"RadarArea":;case"DropBar":;case"Intl":;case"CoordList":;case"SerAuxErrBar":break;case"BIFF2FONTCLR":;case"BIFF2FMTCNT":;case"BIFF2FONTXTRA":break;case"BIFF2XF":;case"BIFF3XF":;case"BIFF4XF":break;case"BIFF4FMTCNT":;case"BIFF2ROW":;case"BIFF2WINDOW2":break;case"SCENARIO":;case"DConBin":;case"PicF":;case"DataLabExt":;case"Lel":;case"BopPop":;case"BopPopCustom":;case"RealTimeData":;case"Name":break;case"LHNGraph":;case"FnGroupName":;case"AddMenu":;case"LPr":break;case"ListObj":;case"ListField":break;case"RRSort":break;case"BigName":break;case"ToolbarHdr":;case"ToolbarEnd":break;case"DDEObjName":break;case"FRTArchId$":break;default:if(r.WTF)throw"Unrecognized Record "+q.n;};};};}}else e.l+=Q}var ge=Object.keys(s).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return s[e].name});var be=ge.slice();t.Directory=ge;t.SheetNames=ge;if(!r.bookSheets)t.Sheets=a;if(t.Sheets)K.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Preamble=d;t.Strings=h;t.SSF=C.get_table();if(F.enc)t.Encryption=F.enc;t.Metadata={};if(B!==undefined)t.Metadata.Country=B;if(z.names.length>0)I.Names=z.names;t.Workbook=I;return t}function dp(e,r,t){var a=_.find(e,"!DocumentSummaryInformation");if(a)try{var n=fn(a,Zt);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF==2)throw s}var f=_.find(e,"!SummaryInformation");if(f)try{var o=fn(f,Qt);for(var l in o)if(r[l]==null)r[l]=o[l]}catch(s){if(t.WTF==2)throw s}}function pp(e,r){if(!r)r={};Zp(r);a();var t,n,i;if(e.FullPaths){t=_.find(e,"!CompObj");n=_.find(e,"!SummaryInformation");i=_.find(e,"/Workbook")||_.find(e,"/Book")}else{switch(r.type){case"base64":e=v(u.decode(e));break;case"binary":e=v(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}Ar(e,0);i={content:e}}var s,f,o;var l;if(t)s=op(t);if(r.bookProps&&!r.bookSheets)o={};else{var c=d?"buffer":"array";if(i&&i.content)o=up(i.content,r);else if((l=_.find(e,"PerfectOffice_MAIN"))&&l.content)o=ws.to_workbook(l.content,(r.type=c,r));else if((l=_.find(e,"NativeContent_MAIN"))&&l.content)o=ws.to_workbook(l.content,(r.type=c,r));else throw new Error("Cannot find Workbook stream")}var h={};if(e.FullPaths)dp(e,h,r);o.Props=o.Custprops=h;if(r.bookFiles)o.cfb=e;return o}function vp(e,r){var t=r||{};var a=_.utils.cfb_new({root:"R"});var n="/Workbook";switch(t.bookType||"xls"){case"xls":t.bookType="biff8";case"biff8":n="/Workbook";t.biff=8;break;case"biff5":n="/Book";t.biff=5;break;default:throw new Error("invalid type "+t.bookType+" for XLS CFB");}_.utils.cfb_add(a,n,Rp(e,t));return a}var gp={0:{n:"BrtRowHdr",f:Hh},1:{n:"BrtCellBlank",f:Yh},2:{n:"BrtCellRk",f:au},3:{n:"BrtCellError",f:Jh},4:{n:"BrtCellBool",f:Zh},5:{n:"BrtCellReal",f:ru},6:{n:"BrtCellSt",f:iu},7:{n:"BrtCellIsst",f:qh},8:{n:"BrtFmlaString",f:cu},9:{n:"BrtFmlaNum",f:lu},10:{n:"BrtFmlaBool",f:fu},11:{n:"BrtFmlaError",f:ou},16:{n:"BrtFRTArchID$",f:ld},19:{n:"BrtSSTItem",f:lt},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:cd},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:Yf},44:{n:"BrtFmt",f:jf},45:{n:"BrtFill",f:Jf},46:{n:"BrtBorder",f:ao},47:{n:"BrtXF",f:eo},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:es},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:Ho},64:{n:"BrtDVal"},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Br,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView"},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:jh},148:{n:"BrtWsDim",f:Vh,p:16},151:{n:"BrtPane"},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:fd},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:id},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:Ps},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:Tt},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:hu},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:kt},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:Fi},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:gu},427:{n:"BrtShrFmla",f:bu},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:Cu},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:Gh},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:pu},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:kt},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:rl},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:qo},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:ht},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs" -},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp"},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14"},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSxview14"},1063:{n:"BrtEndSxview14"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},65535:{n:""}};var bp=I(gp,"n");var mp={3:{n:"BIFF2NUM",f:cs},4:{n:"BIFF2STR",f:ls},6:{n:"Formula",f:Nc},9:{n:"BOF",f:Kn},10:{n:"EOF",f:on},12:{n:"CalcCount",f:dn},13:{n:"CalcMode",f:dn},14:{n:"CalcPrecision",f:hn},15:{n:"CalcRefMode",f:hn},16:{n:"CalcDelta",f:It},17:{n:"CalcIter",f:hn},18:{n:"Protect",f:hn},19:{n:"Password",f:dn},20:{n:"Header",f:Ii},21:{n:"Footer",f:Ii},23:{n:"ExternSheet",f:Fi},24:{n:"Lbl",f:Oi},25:{n:"WinProtect",f:hn},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:Wi},29:{n:"Selection"},34:{n:"Date1904",f:hn},35:{n:"ExternName",f:Ri},38:{n:"LeftMargin",f:It},39:{n:"RightMargin",f:It},40:{n:"TopMargin",f:It},41:{n:"BottomMargin",f:It},42:{n:"PrintRowCol",f:hn},43:{n:"PrintGrid",f:hn},47:{n:"FilePass",f:lf},49:{n:"Font",f:oi},51:{n:"PrintSize",f:dn},60:{n:"Continue"},61:{n:"Window1",f:si},64:{n:"Backup",f:hn},65:{n:"Pane"},66:{n:"CodePage",f:dn},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:dn},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:Zn},93:{n:"Obj",f:Vi},94:{n:"Uncalced"},95:{n:"CalcSaveRecalc",f:hn},96:{n:"Template"},97:{n:"Intl"},99:{n:"ObjProtect",f:hn},125:{n:"ColInfo",f:es},128:{n:"Guts",f:Si},129:{n:"WsBool"},130:{n:"GridSet",f:dn},131:{n:"HCenter",f:hn},132:{n:"VCenter",f:hn},133:{n:"BoundSheet8",f:Jn},134:{n:"WriteProtect"},140:{n:"Country",f:$i},141:{n:"HideObj",f:dn},144:{n:"Sort"},146:{n:"Palette",f:Ji},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:dn},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:is},161:{n:"Setup",f:rs},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:bi},190:{n:"MulBlank",f:mi},193:{n:"Mms",f:on},197:{n:"SXDI"},198:{n:"SXDB"},199:{n:"SXFDB"},200:{n:"SXDBB"},201:{n:"SXNum"},202:{n:"SxBool",f:hn},203:{n:"SxErr"},204:{n:"SXInt"},205:{n:"SXString"},206:{n:"SXDtr"},207:{n:"SxNil"},208:{n:"SXTbl"},209:{n:"SXTBRGIITM"},210:{n:"SxTbpg"},211:{n:"ObProj"},213:{n:"SXStreamID"},215:{n:"DBCell"},216:{n:"SXRng"},217:{n:"SxIsxoper"},218:{n:"BookBool",f:dn},220:{n:"DbOrParamQry"},221:{n:"ScenarioProtect",f:hn},222:{n:"OleObjectSize"},224:{n:"XF",f:wi},225:{n:"InterfaceHdr",f:$n},226:{n:"InterfaceEnd",f:on},227:{n:"SXVS"},229:{n:"MergeCells",f:zi},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:ei},253:{n:"LabelSst",f:li},255:{n:"ExtSST",f:ri},256:{n:"SXVDEx"},259:{n:"SXFormula"},290:{n:"SXDBEx"},311:{n:"RRDInsDel"},312:{n:"RRDHead"},315:{n:"RRDChgCell"},317:{n:"RRTabId",f:vn},318:{n:"RRDRenSheet"},319:{n:"RRSort"},320:{n:"RRDMove"},330:{n:"RRFormat"},331:{n:"RRAutoFmt"},333:{n:"RRInsertSh"},334:{n:"RRDMoveBegin"},335:{n:"RRDMoveEnd"},336:{n:"RRDInsDelBegin"},337:{n:"RRDInsDelEnd"},338:{n:"RRDConflict"},339:{n:"RRDDefName"},340:{n:"RRDRstEtxp"},351:{n:"LRng"},352:{n:"UsesELFs",f:hn},353:{n:"DSF",f:on},401:{n:"CUsr"},402:{n:"CbUsr"},403:{n:"UsrInfo"},404:{n:"UsrExcl"},405:{n:"FileLock"},406:{n:"RRDInfo"},407:{n:"BCUsrs"},408:{n:"UsrChk"},425:{n:"UserBView"},426:{n:"UserSViewBegin"},427:{n:"UserSViewEnd"},428:{n:"RRDUserView"},429:{n:"Qsi"},430:{n:"SupBook",f:yi},431:{n:"Prot4Rev",f:hn},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:ji},439:{n:"RefreshAll",f:hn},440:{n:"HLink",f:Ki},441:{n:"Lel"},442:{n:"CodeName",f:kn},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:dn},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:on},449:{n:"RecalcId",f:ni,r:2},450:{n:"EntExU2",f:on},512:{n:"Dimensions",f:pi},513:{n:"Blank",f:ns},515:{n:"Number",f:Ti},516:{n:"Label",f:ci},517:{n:"BoolErr",f:Bi},518:{n:"Formula",f:Nc},519:{n:"String",f:ss},520:{n:"Row",f:ti},523:{n:"Index"},545:{n:"Array",f:Mi},549:{n:"DefaultRowHeight",f:ii},566:{n:"Table"},574:{n:"Window2",f:Br},638:{n:"RK",f:gi},659:{n:"Style",f:Br},1030:{n:"Formula",f:Nc},1048:{n:"BigName"},1054:{n:"Format",f:ui},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:Li},2048:{n:"HLinkTooltip",f:Yi},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:Kn},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:on},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:qi,r:12},2173:{n:"XFExt",f:No,r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:hn,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt",f:Br},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:Ni,r:12},2197:{n:"SortData"},2198:{n:"Theme",f:yo,r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:Ui,r:12},2203:{n:"CompressPictures",f:on},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:ai},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:dn},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:ts},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:Qi},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:pi},2:{n:"BIFF2INT",f:us},5:{n:"BoolErr",f:Bi},7:{n:"String",f:ps},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:dn},30:{n:"BIFF2FORMAT",f:di},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:Mi},37:{n:"DefaultRowHeight",f:ii},50:{n:"BIFF2FONTXTRA",f:vs},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:fs},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:gs},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:Kn},536:{n:"Lbl",f:Oi},547:{n:"ExternName",f:Ri},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:Kn},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}};var Cp=I(mp,"n");function Ep(e,r,t,a){var n=+r||+Cp[r];if(isNaN(n))return;var i=a||(t||[]).length||0;var s=e.next(4+i);s._W(2,n);s._W(2,i);if(i>0&&cr(t))e.push(t)}function kp(e,r,t){if(!e)e=xr(7);e._W(2,r);e._W(2,t);e._W(1,0);e._W(1,0);e._W(1,0);return e}function wp(e,r,t,a){var n=xr(9);kp(n,e,r);if(a=="e"){n._W(1,t);n._W(1,1)}else{n._W(1,t?1:0);n._W(1,0)}return n}function Sp(e,r,t){var a=xr(8+2*t.length);kp(a,e,r);a._W(1,t.length);a._W(t.length,t,"sbcs");return a.l=0&&i<65536)Ep(e,2,ds(t,a,i));else Ep(e,3,hs(t,a,i));return;case"b":;case"e":Ep(e,5,wp(t,a,r.v,r.t));return;case"s":;case"str":Ep(e,4,Sp(t,a,r.v));return;}Ep(e,1,kp(null,t,a))}function Bp(e,r,t,a,n){var i=Array.isArray(r);var s=qr(r["!ref"]||"A1"),f,o="",l=[];for(var c=s.s.r;c<=s.e.r;++c){o=Ur(c);for(var h=s.s.c;h<=s.e.c;++h){if(c===s.s.r)l[h]=Vr(h);f=l[h]+o;var u=i?(r[c]||[])[h]:r[f];if(!u)continue;Ap(e,u,c,h,a)}}}function _p(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=yr();var n=0;for(var i=0;i");var i=e.match(/<\/table/i);var s=n.index,f=i&&i.index||e.length;var o=Y(e.slice(s,f),/(:?]*>)/i,"");var l=-1,h=0,u=0,d=0;var p={s:{r:1e7,c:1e7},e:{r:0,c:0}};var v=[],g=0;for(s=0;s/i);for(f=0;f"))>-1)k=k.slice(w+1);while(k.indexOf(">")>-1)k=k.slice(0,k.lastIndexOf("<"));var S=he(E.slice(0,E.indexOf(">")));d=S.colspan?+S.colspan:1;if((u=+S.rowspan)>0||d>1)v.push({s:{r:l,c:h},e:{r:l+(u||1)-1,c:h+d-1}});if(!k.length){h+=d;continue}k=Re(ve(k));if(p.s.r>l)p.s.r=l;if(p.e.rh)p.s.c=h;if(p.e.c";for(var f=r.s.c;f<=r.e.c;++f){var o=0,l=0;for(var c=0;ct||n[c].s.c>f)continue;if(n[c].e.r1)p.rowspan=o;if(l>1)p.colspan=l;if(a.editable)p.contenteditable="true";p.id="sjs-"+h;i.push(Ue("td",d,p))}var v="";return v+i.join("")+""}function a(e,r,t){var a=[];return a.join("")+""}var n='SheetJS Table Export';var i="";function s(e,r,s){var f=r||{};var o=f.header!=null?f.header:n;var l=f.footer!=null?f.footer:i;var c=[o];var h=Qr(e["!ref"]);f.dense=Array.isArray(e);c.push(a(e,h,f));for(var u=h.s.r;u<=h.e.r;++u)c.push(t(e,h,u,f));c.push("
    "+l);return c.join("")}return{to_workbook:r,to_sheet:e,_row:t,BEGIN:n,END:i,_preamble:a,from_sheet:s}}();function Op(e,r){var t=r||{};if(c!=null)t.dense=c;var a=t.dense?[]:{};var n=e.getElementsByTagName("tr");var i={s:{r:0,c:0},e:{r:n.length-1,c:0}};var s=[],f=0;var o=0,l=0,h=0,u=0,d=0;for(;o0||d>1)s.push({s:{r:o,c:h},e:{r:o+(u||1)-1,c:h+d-1}});var E={t:"s",v:b};if(b!=null){if(b.length==0)E.t="z";else if(t.raw){}else if(b.trim().length==0)E.t="s";else if(b==="TRUE")E={t:"b",v:true};else if(b==="FALSE")E={t:"b",v:false};else if(!isNaN(G(b)))E={t:"n",v:G(b)};else if(!isNaN(j(b).getDate())){E={t:"d",v:H(b)};if(!t.cellDates)E={t:"n",v:P(E.v)};E.z=t.dateNF||C._table[14]}}if(t.dense){if(!a[o])a[o]=[];a[o][h]=E}else a[Yr({c:h,r:o})]=E;if(i.e.c/g," ").replace(/<[^>]*>/g,""))};var r={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"]};return function t(a,n){var i=n||{};if(c!=null&&i.dense==null)i.dense=c;var s=Kd(a);var f=[],o;var l;var h={name:""},u="",d=0;var p;var v;var g={},b=[];var m=i.dense?[]:{};var C,E;var k={value:""};var w="",S=0,A;var B=-1,_=-1,T={s:{r:1e6,c:1e7},e:{r:0,c:0}};var x={};var I=[],y={},R=0,D=0;var O=[];var F=[],N={};var M="",U=0;var W=1,z=false;var X=0;Yd.lastIndex=0;s=s.replace(//gm,"").replace(//gm,"");while(C=Yd.exec(s))switch(C[3]=C[3].replace(/_.*$/,"")){case"table":;case"工作表":if(C[1]==="/"){if(T.e.c>=T.s.c&&T.e.r>=T.s.r)m["!ref"]=Jr(T);if(I.length)m["!merges"]=I;p.name=Be(p["名称"]||p.name);b.push(p.name);g[p.name]=m}else if(C[0].charAt(C[0].length-2)!=="/"){p=he(C[0],false);B=_=-1;T.s.r=T.s.c=1e7;T.e.r=T.e.c=0;m=i.dense?[]:{};I=[]}break;case"table-row":;case"行":if(C[1]==="/")break;v=he(C[0],false);if(v["行号"])B=v["行号"]-1;else++B;_=-1;break;case"covered-table-cell":++_;if(i.sheetStubs){if(i.dense){if(!m[B])m[B]=[];m[B][_]={t:"z"}}else m[Yr({r:B,c:_})]={t:"z"}}break;case"table-cell":;case"数据":if(C[0].charAt(C[0].length-2)==="/"){k=he(C[0],false);if(k["number-columns-repeated"])_+=parseInt(k["number-columns-repeated"],10);else++_}else if(C[1]!=="/"){++_;W=1;if(_>T.e.c)T.e.c=_;if(B>T.e.r)T.e.r=B;if(_=O[X][0].s.r&&B<=O[X][0].e.r)if(_>=O[X][0].s.c&&_<=O[X][0].e.c)E.F=O[X][1]}if(k["number-columns-spanned"]||k["number-rows-spanned"]){R=parseInt(k["number-rows-spanned"],10)||0;D=parseInt(k["number-columns-spanned"],10)||0;y={s:{r:B,c:_},e:{r:B+R-1,c:_+D-1}};I.push(y)}if(k["number-columns-repeated"])W=parseInt(k["number-columns-repeated"],10);switch(E.t){case"boolean":E.t="b";E.v=Ae(k["boolean-value"]);break;case"float":E.t="n";E.v=parseFloat(k.value);break;case"percentage":E.t="n";E.v=parseFloat(k.value);break;case"currency":E.t="n";E.v=parseFloat(k.value);break;case"date":E.t="d";E.v=H(k["date-value"]);if(!i.cellDates){E.t="n";E.v=P(E.v)}E.z="m/d/yy";break;case"time":E.t="n";E.v=L(k["time-value"])/86400;break;case"number":E.t="n";E.v=parseFloat(k["数据数值"]);break;default:if(E.t==="string"||E.t==="text"||!E.t){E.t="s";if(k["string-value"]!=null)w=ve(k["string-value"])}else throw new Error("Unsupported value type "+E.t);}}else{z=false;if(E.t==="s"){E.v=w||"";z=S==0}if(F.length>0){E.c=F;F=[]}if(w&&i.cellText!==false)E.w=w;if(!z||i.sheetStubs){if(!(i.sheetRows&&i.sheetRows0)m[B][++_]=V(E)}else{m[Yr({r:B,c:_})]=E;while(--W>0)m[Yr({r:B,c:++_})]=V(E)}if(T.e.c<=_)T.e.c=_}}else{_+=W;W=0}E={};w=""}break;case"document":;case"document-content":;case"电子表格文档":;case"spreadsheet":;case"主体":;case"scripts":;case"styles":;case"font-face-decls":if(C[1]==="/"){if((o=f.pop())[0]!==C[3])throw"Bad state: "+o}else if(C[0].charAt(C[0].length-2)!=="/")f.push([C[3],true]);break;case"annotation":if(C[1]==="/"){if((o=f.pop())[0]!==C[3])throw"Bad state: "+o;N.t=w;N.a=M;F.push(N)}else if(C[0].charAt(C[0].length-2)!=="/"){f.push([C[3],false])}M="";U=0;w="";S=0;break;case"creator":if(C[1]==="/"){M=s.slice(U,C.index)}else U=C.index+C[0].length;break;case"meta":;case"元数据":;case"settings":;case"config-item-set":;case"config-item-map-indexed":;case"config-item-map-entry":;case"config-item-map-named":;case"shapes":;case"frame":;case"text-box":;case"image":;case"data-pilot-tables":;case"list-style":;case"form":;case"dde-links":;case"event-listeners":if(C[1]==="/"){if((o=f.pop())[0]!==C[3])throw"Bad state: "+o}else if(C[0].charAt(C[0].length-2)!=="/")f.push([C[3],false]);w="";S=0;break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":;case"percentage-style":;case"date-style":;case"time-style":if(C[1]==="/"){x[h.name]=u;if((o=f.pop())[0]!==C[3])throw"Bad state: "+o}else if(C[0].charAt(C[0].length-2)!=="/"){u="";h=he(C[0],false);f.push([C[3],true])}break;case"script":break;case"libraries":break;case"automatic-styles":break;case"master-styles":break;case"default-style":;case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(f[f.length-1][0]){case"time-style":;case"date-style":l=he(C[0],false);u+=r[C[3]][l.style==="long"?1:0];break;}break;case"fraction":break;case"day":;case"month":;case"year":;case"era":;case"day-of-week":;case"week-of-year":;case"quarter":;case"hours":;case"minutes":;case"seconds":;case"am-pm":switch(f[f.length-1][0]){case"time-style":;case"date-style":l=he(C[0],false);u+=r[C[3]][l.style==="long"?1:0];break;}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(C[0].slice(-2)==="/>")break;else if(C[1]==="/")switch(f[f.length-1][0]){case"number-style":;case"date-style":;case"time-style":u+=s.slice(d,C.index);break;}else d=C.index+C[0].length;break;case"text-content":break;case"text-properties":break;case"body":;case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-row-group":break;case"table-column-group":break;case"table-header-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"named-range":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":;case"文本串":if(C[1]==="/")w=(w.length>0?w+"\n":"")+e(s.slice(S,C.index),A);else{A=he(C[0],false);S=C.index+C[0].length}break;case"database-range":if(C[1]==="/")break;try{var G=oh(he(C[0])["target-range-address"]);g[G[0]]["!autofilter"]={ref:G[1]}}catch(j){}break;case"s":break;case"date":break;case"object":break;case"title":;case"标题":break;case"desc":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":;case"sender-lastname":;case"sender-initials":;case"sender-title":;case"sender-position":;case"sender-email":;case"sender-phone-private":;case"sender-fax":;case"sender-company":;case"sender-phone-work":;case"sender-street":;case"sender-city":;case"sender-postal-code":;case"sender-country":;case"sender-state-or-province":;case"author-name":;case"author-initials":;case"chapter":;case"file-name":;case"template-name":;case"sheet-name":break;case"event-listener":break;case"initial-creator":;case"creation-date":;case"generator":;case"document-statistic":;case"user-defined":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":;case"source-cell-range":;case"source-service":;case"data-pilot-field":;case"data-pilot-level":;case"data-pilot-subtotals":;case"data-pilot-subtotal":;case"data-pilot-members":;case"data-pilot-member":;case"data-pilot-display-info":;case"data-pilot-sort-info":;case"data-pilot-layout-info":;case"data-pilot-field-reference":;case"data-pilot-groups":;case"data-pilot-group":;case"data-pilot-group-member": -break;case"rect":break;case"dde-connection-decls":;case"dde-connection-decl":;case"dde-link":;case"dde-source":break;case"properties":break;case"property":break;case"a":break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:if(C[2]==="dc:")break;if(C[2]==="draw:")break;if(C[2]==="style:")break;if(C[2]==="form:")break;if(C[2]==="calcext:")break;if(C[2]==="loext:")break;if(C[2]==="uof:")break;if(C[2]==="表:")break;if(C[2]==="字:")break;if(i.WTF)throw new Error(C);}var K={Sheets:g,SheetNames:b};return K}}();function Np(e,r){r=r||{};var t=!!J(e,"objectdata");if(t)var a=ma(ee(e,"META-INF/manifest.xml"),r);var n=re(e,"content.xml");if(!n)throw new Error("Missing content.xml in "+(t?"ODS":"UOF")+" file");var i=Pp(t?n:Be(n),r);if(J(e,"meta.xml"))i.Props=_a(ee(e,"meta.xml"));return i}function Lp(e,r){return Pp(e,r)}var Mp=function(){var e='';return function r(t,a){return e}}();var Up=function(){var e=" \n";var r=" \n";var t=function(t,a,n,i){var s=[];s.push(' \n');var f=0,o=0,l=Qr(t["!ref"]);var c=t["!merges"]||[],h=0;var u=Array.isArray(t);for(f=0;f\n");for(;f<=l.e.r;++f){s.push(" \n");for(o=0;oo)continue;if(c[h].s.r>f)continue;if(c[h].e.c\n")}s.push(" \n");return s.join("")};var a=function(e){e.push(" \n");e.push(' \n');e.push(' \n');e.push(" /\n");e.push(' \n');e.push(" /\n");e.push(" \n");e.push(" \n");e.push(' \n');e.push(" \n")};return function n(e,r){var n=[se];var i=Me({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Me({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods")n.push("\n");else n.push("\n");a(n);n.push(" \n");n.push(" \n");for(var f=0;f!=e.SheetNames.length;++f)n.push(t(e.Sheets[e.SheetNames[f]],e,f,r));n.push(" \n");n.push(" \n");if(r.bookType=="fods")n.push("");else n.push("");return n.join("")}}();function Hp(e,r){if(r.bookType=="fods")return Up(e,r);var t=new ae;var a="";var n=[];var i=[];a="mimetype";t.file(a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";t.file(a,Up(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";t.file(a,Mp(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="manifest.rdf";t.file(a,wa(i,r));n.push([a,"application/rdf+xml"]);a="meta.xml";t.file(a,Sa(e,r));n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="META-INF/manifest.xml";t.file(a,Ca(n,r));return t}function Wp(e){return function r(t,a){var n=0;for(var i=0;i-1)return"sheet";if(ha.CS&&e==ha.CS)return"chart";if(ha.DS&&e==ha.DS)return"dialog";if(ha.MS&&e==ha.MS)return"macro";return e&&e.length?e:"sheet"}function qp(e,r){if(!e)return 0;try{e=r.map(function a(r){if(!r.id)r.id=r.strRelID;return[r.name,e["!id"][r.id].Target,Jp(e["!id"][r.id].Type)]})}catch(t){return null}return!e||e.length===0?null:e}function ev(e,r,t,a,n,i,s,f,o,l,c){try{n[a]=da(re(e,t,true),r);var h=ee(e,r);switch(s){case"sheet":i[a]=Ed(h,r,f,n[a],o,l,c);break;case"chart":var u=kd(h,r,f,n[a],o,l,c);i[a]=u;if(!u||!u["!chart"])break;var d=ie(u["!chart"].Target,r);var p=ua(d);var v=Go(re(e,d,true),da(re(e,p,true),d));var g=ie(v,d);var b=ua(g);u=Nu(re(e,g,true),g,f,da(re(e,b,true),g),o,u);break;case"macro":i[a]=wd(h,r,f,n[a],o,l,c);break;case"dialog":i[a]=Sd(h,r,f,n[a],o,l,c);break;}}catch(m){if(f.WTF)throw m}}var rv=function qv(e){return e.slice(-1)!="/"};function tv(e){return e.charAt(0)=="/"?e.slice(1):e}function av(e,r){E(C);r=r||{};Zp(r);a();if(J(e,"META-INF/manifest.xml"))return Np(e,r);if(J(e,"objectdata.xml"))return Np(e,r);var t=x(e.files).filter(rv).sort();var i=fa(re(e,"[Content_Types].xml"),r);var s=false;var f,o;if(i.workbooks.length===0){o="xl/workbook.xml";if(ee(e,o,true))i.workbooks.push(o)}if(i.workbooks.length===0){o="xl/workbook.bin";if(!ee(e,o,true))throw new Error("Could not find workbook");i.workbooks.push(o);s=true}if(i.workbooks[0].slice(-3)=="bin")s=true;if(s)n(1200);var l={};var c={};if(!r.bookSheets&&!r.bookProps){lh=[];if(i.sst)lh=_d(ee(e,tv(i.sst)),i.sst,r);if(r.cellStyles&&i.themes.length)l=Bd(re(e,i.themes[0].replace(/^\//,""),true)||"",i.themes[0],r);if(i.style)c=Ad(ee(e,tv(i.style)),i.style,l,r)}var h=i.links.map(function(t){return Id(ee(e,tv(t)),t,r)});var u=Cd(ee(e,tv(i.workbooks[0])),i.workbooks[0],r);var d={},p="";if(i.coreprops.length){p=ee(e,tv(i.coreprops[0]),true);if(p)d=_a(p);if(i.extprops.length!==0){p=ee(e,tv(i.extprops[0]),true);if(p)Ra(p,d,r)}}var v={};if(!r.bookSheets||r.bookProps){if(i.custprops.length!==0){p=re(e,tv(i.custprops[0]),true);if(p)v=Pa(p,r)}}var g={};if(r.bookSheets||r.bookProps){if(u.Sheets)f=u.Sheets.map(function D(e){return e.name});else if(d.Worksheets&&d.SheetNames.length>0)f=d.SheetNames;if(r.bookProps){g.Props=d;g.Custprops=v}if(r.bookSheets&&typeof f!=="undefined")g.SheetNames=f;if(r.bookSheets?g.SheetNames:r.bookProps)return g}f={};var b={};if(r.bookDeps&&i.calcchain)b=xd(ee(e,tv(i.calcchain)),i.calcchain,r);var m=0;var k={};var w,S;{var A=u.Sheets;d.Worksheets=A.length;d.SheetNames=[];for(var B=0;B!=A.length;++B){d.SheetNames[B]=A[B].name}}var _=s?"bin":"xml";var T="xl/_rels/workbook."+_+".rels";var I=da(re(e,T,true),T);if(I)I=qp(I,u.Sheets);var y=ee(e,"xl/worksheets/sheet.xml",true)?1:0;for(m=0;m!=d.Worksheets;++m){var R="sheet";if(I&&I[m]){w="xl/"+I[m][1].replace(/[\/]?xl\//,"");R=I[m][2]}else{w="xl/worksheets/sheet"+(m+1-y)+"."+_;w=w.replace(/sheet0\./,"sheet.")}S=w.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");ev(e,w,S,d.SheetNames[m],k,f,R,r,u,l,c)}if(i.comments)Yo(e,i.comments,f,k,r);g={Directory:i,Workbook:u,Props:d,Custprops:v,Deps:b,Sheets:f,SheetNames:d.SheetNames,Strings:lh,Styles:c,Themes:l,SSF:C.get_table()};if(r.bookFiles){g.keys=t;g.files=e.files}if(r.bookVBA){if(i.vba.length>0)g.vbaraw=ee(e,tv(i.vba[0]),true);else if(i.defaults&&i.defaults.bin==="application/vnd.ms-office.vbaProject")g.vbaraw=ee(e,"xl/vbaProject.bin",true)}return g}function nv(e,r){var t="Version";var a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var n=zs(a.content);t="DataSpaceMap";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var i=Xs(a.content);if(i.length!=1||i[0].comps.length!=1||i[0].comps[0].t!=0||i[0].name!="StrongEncryptionDataSpace"||i[0].comps[0].v!="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+t);t="StrongEncryptionDataSpace";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var s=Gs(a.content);if(s.length!=1||s[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+t);t="!Primary";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var f=Ks(a.content);t="EncryptionInfo";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var o=Zs(a.content);throw new Error("File is password-protected")}function iv(e,r){jo=1024;if(r.bookType=="ods")return Hp(e,r);if(e&&!e.SSF){e.SSF=C.get_table()}if(e&&e.SSF){E(C);C.load_table(e.SSF);r.revssf=R(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;var t=r.bookType=="xlsb"?"bin":"xml";var a=r.bookType=="xlsb"||r.bookType=="xlsm";var n=sa();Qp(r=r||{});var i=new ae;var s="",f=0;r.cellXfs=[];ph(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";i.file(s,Ia(e.Props,r));n.coreprops.push(s);ga(r.rels,2,s,ha.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else e.Props.SheetNames=e.SheetNames.map(function(r,t){return[(e.Workbook.Sheets[t]||{}).Hidden!=2,r]}).filter(function(e){return e[0]}).map(function(e){return e[1]});e.Props.Worksheets=e.Props.SheetNames.length;i.file(s,Oa(e.Props,r));n.extprops.push(s);ga(r.rels,3,s,ha.EXT_PROPS);if(e.Custprops!==e.Props&&x(e.Custprops||{}).length>0){s="docProps/custom.xml";i.file(s,La(e.Custprops,r));n.custprops.push(s);ga(r.rels,4,s,ha.CUST_PROPS)}s="xl/workbook."+t;i.file(s,yd(e,s,r));n.workbooks.push(s);ga(r.rels,1,s,ha.WB);for(f=1;f<=e.SheetNames.length;++f){var o={"!id":{}};var l=e.Sheets[e.SheetNames[f-1]];var c=(l||{})["!type"]||"sheet";switch(c){case"chart":;default:s="xl/worksheets/sheet"+f+"."+t;i.file(s,Rd(f-1,s,r,e,o));n.sheets.push(s);ga(r.wbrels,-1,"worksheets/sheet"+f+"."+t,ha.WS[0]);}if(l){var h=l["!comments"];if(h&&h.length>0){var u="xl/comments"+f+"."+t;i.file(u,Pd(h,u,r));n.comments.push(u);ga(o,-1,"../comments"+f+"."+t,ha.CMNT)}if(l["!legacy"]){i.file("xl/drawings/vmlDrawing"+f+".vml",Ko(f,l["!comments"]))}delete l["!comments"];delete l["!legacy"]}if(o["!id"].rId1)i.file(ua(s),va(o))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;i.file(s,Fd(r.Strings,s,r));n.strs.push(s);ga(r.wbrels,-1,"sharedStrings."+t,ha.SST)}s="xl/theme/theme1.xml";i.file(s,Io(e.Themes,r));n.themes.push(s);ga(r.wbrels,-1,"theme/theme1.xml",ha.THEME);s="xl/styles."+t;i.file(s,Od(e,s,r));n.styles.push(s);ga(r.wbrels,-1,"styles."+t,ha.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";i.file(s,e.vbaraw);n.vba.push(s);ga(r.wbrels,-1,"vbaProject.bin",ha.VBA)}i.file("[Content_Types].xml",ca(n,r));i.file("_rels/.rels",va(r.rels));i.file("xl/_rels/workbook."+t+".rels",va(r.wbrels));delete r.revssf;delete r.ssf;return i}function sv(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3]];case"base64":t=u.decode(e.substr(0,24));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}function fv(e,r){if(_.find(e,"EncryptedPackage"))return nv(e,r);return pp(e,r)}function ov(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=d&&Buffer.isBuffer(e)?"buffer":"base64";switch(n.type){case"base64":t=new ae(a,{base64:true});break;case"binary":;case"array":t=new ae(a,{base64:false});break;case"buffer":t=new ae(a);break;default:throw new Error("Unrecognized type "+n.type);}return av(t,n)}function lv(e,r){var t=0;e:while(t=2&&n[3]==0)return ws.to_workbook(a,s);break;case 3:;case 131:;case 139:return bs.to_workbook(a,s);case 123:if(n[1]==92&&n[2]==114&&n[3]==116)return cf.to_workbook(a,s);break;case 10:;case 13:;case 32:return cv(a,s);}if(n[2]<=12&&n[3]<=31)return bs.to_workbook(a,s);if(32>n[0]||n[0]>127)throw new Error("Unsupported file "+n.join("|"));return dv(e,a,s,i)}function vv(e,r){var t=r||{};t.type="file";return pv(e,t)}function gv(e,r){var t=r||{};var a=iv(e,t);var n={};if(t.compression)n.compression="DEFLATE";switch(t.type){case"base64":n.type="base64";break;case"binary":n.type="string";break;case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");case"buffer":;case"file":n.type="nodebuffer";break;default:throw new Error("Unrecognized type "+t.type);}if(t.type==="file")return te.writeFileSync(t.file,a.generate(n));var i=a.generate(n);return t.type=="string"?Be(i):i}function bv(e,r){var t=r||{};var a=vp(e,t);switch(t.type){case"base64":;case"binary":break;case"buffer":;case"array":t.type="";break;case"file":return te.writeFileSync(t.file,_.write(a,{type:"buffer"}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");default:throw new Error("Unrecognized type "+t.type);}return _.write(a,t)}function mv(e,r,t){if(!t)t="";var a=t+e;switch(r.type){case"base64":return u.encode(_e(a));case"binary":return _e(a);case"string":return e;case"file":return te.writeFileSync(r.file,a,"utf8");case"buffer":{if(d)return new Buffer(a,"utf8");else return mv(a,{type:"binary"}).split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Cv(e,r){switch(r.type){case"base64":return u.encode(e);case"binary":return e;case"string":return e;case"file":return te.writeFileSync(r.file,e,"binary");case"buffer":{if(d)return new Buffer(e,"binary");else return e.split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Ev(e,r){switch(r.type){case"string":;case"base64":;case"binary":var t="";for(var a=0;a0)n=0;var p=Ur(l.s.r);var v=[];var g=[];var b=0,m=0;var C=Array.isArray(e);var E=l.s.r,k=0,w=0;if(C&&!e[E])e[E]=[];for(k=l.s.c;k<=l.e.c;++k){v[k]=Vr(k);t=C?e[E][k]:e[v[k]+p];switch(a){case 1:i[k]=k-l.s.c;break;case 2:i[k]=v[k];break;case 3:i[k]=c.header[k-l.s.c];break;default:if(t==null)continue;o=f=rt(t,null,c);m=0;for(w=0;w=0)c='"'+c.replace(_v,'""')+'"'}else c="";l.push(c)}if(f.blankrows===false&&o)return null;return l.join(s)}function xv(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=qr(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var f=a.RS!==undefined?a.RS:"\n",o=f.charCodeAt(0);var l=new RegExp((i=="|"?"\\|":i)+"+$");var c="",h=[];a.dense=Array.isArray(e);var u=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var p=n.s.c;p<=n.e.c;++p)if(!(u[p]||{}).hidden)h[p]=Vr(p);for(var v=n.s.r;v<=n.e.r;++v){if((d[v]||{}).hidden)continue;c=Tv(e,n,v,h,s,o,i,a);if(c==null){continue}if(a.strip)c=c.replace(l,"");t.push(c+f)}delete a.dense;return t.join("")}function Iv(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=xv(e,r);if(typeof cptable=="undefined"||r.type=="string")return t;var a=cptable.utils.encode(1200,t,"str");return"ÿþ"+a}function yv(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=qr(e["!ref"]),i="",s=[],f;var o=[];var l=Array.isArray(e);for(f=n.s.c;f<=n.e.c;++f)s[f]=Vr(f);for(var c=n.s.r;c<=n.e.r;++c){i=Ur(c);for(f=n.s.c;f<=n.e.c;++f){r=s[f]+i;t=l?(e[c]||[])[f]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;o[o.length]=r+"="+a}}return o}function Rv(e,r){var t=r||{};var a={};var n;var i={s:{c:0,r:0},e:{c:0,r:e.length}};var s=t.header||[],f=0;for(var o=0;o!=e.length;++o){Object.keys(e[o]).filter(function(r){return e[o].hasOwnProperty(r)}).forEach(function(r){if((f=s.indexOf(r))==-1)s[f=s.length]=r;var i=e[o][r];var l="z";var c="";if(typeof i=="number")l="n";else if(typeof i=="boolean")l="b";else if(typeof i=="string")l="s";else if(i instanceof Date){l="d";if(!t.cellDates){l="n";i=P(i)}c=t.dateNF||C._table[14]}a[Yr({c:f,r:o+1})]=n={t:l,v:i};if(c)n.z=c})}i.e.c=s.length-1;for(f=0;f=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}e.book_new=function(){return{SheetNames:[],Sheets:{}}};e.book_append_sheet=function(e,r,t){if(!t)for(var a=1;a<=65535;++a)if(e.SheetNames.indexOf(t="Sheet"+a)==-1)break;if(!t)throw new Error("Too many worksheets");Ju(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r};e.book_set_sheet_visibility=function(e,r,a){t(e,"Workbook",{});t(e.Workbook,"Sheets",[]);var i=n(e,r);t(e.Workbook.Sheets,i,{});switch(a){case 0:;case 1:;case 2:break;default:throw new Error("Bad sheet visibility setting "+a);}e.Workbook.Sheets[i].Hidden=a};r([["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]]);e.cell_set_number_format=function(e,r){e.z=r;return e};e.cell_set_hyperlink=function(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e};e.cell_add_comment=function(e,r,t){if(!e.c)e.c=[];e.c.push({t:r,a:t||"SheetJS"})};e.sheet_set_array_formula=function(e,r,t){var n=typeof r!="string"?r:qr(r);var i=typeof r=="string"?r:Jr(r);for(var s=n.s.r;s<=n.e.r;++s)for(var f=n.s.c;f<=n.e.c;++f){var o=a(e,s,f);o.t="n";o.F=i;delete o.v;if(s==n.s.r&&f==n.s.c)o.f=t}return e};return e})(Dv);if(d&&typeof require!="undefined")(function(){var e={}.Readable;var t=function(r,t){var a=e();var n="";var i=t==null?{}:t;if(r==null||r["!ref"]==null){a.push(null);return a}var s=qr(r["!ref"]);var f=i.FS!==undefined?i.FS:",",o=f.charCodeAt(0);var l=i.RS!==undefined?i.RS:"\n",c=l.charCodeAt(0);var h=new RegExp((f=="|"?"\\|":f)+"+$");var u="",d=[];i.dense=Array.isArray(r);var p=i.skipHidden&&r["!cols"]||[];var v=i.skipHidden&&r["!rows"]||[];for(var g=s.s.c;g<=s.e.c;++g)if(!(p[g]||{}).hidden)d[g]=Vr(g);var b=s.s.r;a._read=function(){if(b>s.e.r)return a.push(null);while(b<=s.e.r){++b;if((v[b-1]||{}).hidden)continue;u=Tv(r,s,b-1,d,o,c,f,i);if(u!=null){if(i.strip)u=u.replace(h,"");a.push(u+l);break}}};return a};var a=function(r,t){var a=e();var n=t||{};var i=n.header!=null?n.header:Dp.BEGIN;var s=n.footer!=null?n.footer:Dp.END;a.push(i);var f=Qr(r["!ref"]);n.dense=Array.isArray(r);a.push(Dp._preamble(r,f,n));var o=f.s.r;var l=false;a._read=function(){if(o>f.e.r){if(!l){l=true;a.push(""+s)}return a.push(null)}while(o<=f.e.r){a.push(Dp._row(r,f,o,n));++o;break}};return a};r.stream={to_html:a,to_csv:t}})();r.parse_xlscfb=pp;r.parse_ods=Np;r.parse_fods=Lp;r.write_ods=Hp;r.parse_zip=av;r.read=pv;r.readFile=vv;r.readFileSync=vv;r.write=kv;r.writeFile=Sv;r.writeFileSync=Sv;r.writeFileAsync=Av;r.utils=Dv;r.SSF=C})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX;var ODS=XLSX; +r[t[216][a]]=55296+a;e[55296+a]=t[216][a]}t[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split("");for(a=0;a!=t[217].length;++a)if(t[217][a].charCodeAt(0)!==65533){r[t[217][a]]=55552+a;e[55552+a]=t[217][a]}t[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split("");for(a=0;a!=t[218].length;++a)if(t[218][a].charCodeAt(0)!==65533){r[t[218][a]]=55808+a;e[55808+a]=t[218][a]}t[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split("");for(a=0;a!=t[219].length;++a)if(t[219][a].charCodeAt(0)!==65533){r[t[219][a]]=56064+a;e[56064+a]=t[219][a]}t[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split("");for(a=0;a!=t[220].length;++a)if(t[220][a].charCodeAt(0)!==65533){r[t[220][a]]=56320+a;e[56320+a]=t[220][a]}t[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split("");for(a=0;a!=t[221].length;++a)if(t[221][a].charCodeAt(0)!==65533){r[t[221][a]]=56576+a;e[56576+a]=t[221][a]}t[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split("");for(a=0;a!=t[222].length;++a)if(t[222][a].charCodeAt(0)!==65533){r[t[222][a]]=56832+a;e[56832+a]=t[222][a]}t[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split("");for(a=0;a!=t[223].length;++a)if(t[223][a].charCodeAt(0)!==65533){r[t[223][a]]=57088+a;e[57088+a]=t[223][a]}t[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split("");for(a=0;a!=t[224].length;++a)if(t[224][a].charCodeAt(0)!==65533){r[t[224][a]]=57344+a;e[57344+a]=t[224][a]}t[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split("");for(a=0;a!=t[225].length;++a)if(t[225][a].charCodeAt(0)!==65533){r[t[225][a]]=57600+a;e[57600+a]=t[225][a]}t[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split("");for(a=0;a!=t[226].length;++a)if(t[226][a].charCodeAt(0)!==65533){r[t[226][a]]=57856+a;e[57856+a]=t[226][a]}t[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split("");for(a=0;a!=t[227].length;++a)if(t[227][a].charCodeAt(0)!==65533){r[t[227][a]]=58112+a;e[58112+a]=t[227][a]}t[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split("");for(a=0;a!=t[228].length;++a)if(t[228][a].charCodeAt(0)!==65533){r[t[228][a]]=58368+a;e[58368+a]=t[228][a]}t[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split("");for(a=0;a!=t[229].length;++a)if(t[229][a].charCodeAt(0)!==65533){r[t[229][a]]=58624+a;e[58624+a]=t[229][a]}t[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split("");for(a=0;a!=t[230].length;++a)if(t[230][a].charCodeAt(0)!==65533){r[t[230][a]]=58880+a;e[58880+a]=t[230][a]}t[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split("");for(a=0;a!=t[231].length;++a)if(t[231][a].charCodeAt(0)!==65533){r[t[231][a]]=59136+a;e[59136+a]=t[231][a]}t[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split("");for(a=0;a!=t[232].length;++a)if(t[232][a].charCodeAt(0)!==65533){r[t[232][a]]=59392+a;e[59392+a]=t[232][a]}t[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split("");for(a=0;a!=t[233].length;++a)if(t[233][a].charCodeAt(0)!==65533){r[t[233][a]]=59648+a;e[59648+a]=t[233][a]}t[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split("");for(a=0;a!=t[234].length;++a)if(t[234][a].charCodeAt(0)!==65533){r[t[234][a]]=59904+a;e[59904+a]=t[234][a]}t[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split("");for(a=0;a!=t[235].length;++a)if(t[235][a].charCodeAt(0)!==65533){r[t[235][a]]=60160+a;e[60160+a]=t[235][a]}t[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split("");for(a=0;a!=t[236].length;++a)if(t[236][a].charCodeAt(0)!==65533){r[t[236][a]]=60416+a;e[60416+a]=t[236][a]}t[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split("");for(a=0;a!=t[237].length;++a)if(t[237][a].charCodeAt(0)!==65533){r[t[237][a]]=60672+a;e[60672+a]=t[237][a]}t[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split("");for(a=0;a!=t[238].length;++a)if(t[238][a].charCodeAt(0)!==65533){r[t[238][a]]=60928+a;e[60928+a]=t[238][a]}t[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split("");for(a=0;a!=t[239].length;++a)if(t[239][a].charCodeAt(0)!==65533){r[t[239][a]]=61184+a;e[61184+a]=t[239][a]}t[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split("");for(a=0;a!=t[240].length;++a)if(t[240][a].charCodeAt(0)!==65533){r[t[240][a]]=61440+a;e[61440+a]=t[240][a]}t[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split("");for(a=0;a!=t[241].length;++a)if(t[241][a].charCodeAt(0)!==65533){r[t[241][a]]=61696+a;e[61696+a]=t[241][a]}t[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split("");for(a=0;a!=t[242].length;++a)if(t[242][a].charCodeAt(0)!==65533){r[t[242][a]]=61952+a;e[61952+a]=t[242][a]}t[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split("");for(a=0;a!=t[243].length;++a)if(t[243][a].charCodeAt(0)!==65533){r[t[243][a]]=62208+a;e[62208+a]=t[243][a]}t[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split("");for(a=0;a!=t[244].length;++a)if(t[244][a].charCodeAt(0)!==65533){r[t[244][a]]=62464+a;e[62464+a]=t[244][a]}t[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split("");for(a=0;a!=t[245].length;++a)if(t[245][a].charCodeAt(0)!==65533){r[t[245][a]]=62720+a;e[62720+a]=t[245][a]}t[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split("");for(a=0;a!=t[246].length;++a)if(t[246][a].charCodeAt(0)!==65533){r[t[246][a]]=62976+a;e[62976+a]=t[246][a]}t[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split("");for(a=0;a!=t[247].length;++a)if(t[247][a].charCodeAt(0)!==65533){r[t[247][a]]=63232+a;e[63232+a]=t[247][a]}return{enc:r,dec:e}}();cptable[10029]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[10079]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[10081]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();if(typeof module!=="undefined"&&module.exports&&typeof DO_NOT_EXPORT_CODEPAGE==="undefined")module.exports=cptable;(function(e,r){"use strict";if(typeof cptable==="undefined"){if(typeof require!=="undefined"){var t=cptable;if(typeof module!=="undefined"&&module.exports&&typeof DO_NOT_EXPORT_CODEPAGE==="undefined")module.exports=r(t);else e.cptable=r(t)}else throw new Error("cptable not found")}else cptable=r(cptable)})(this,function(e){"use strict";var r={1200:"utf16le",1201:"utf16be",12000:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65000:"utf7",65001:"utf8"};var t=[874,1250,1251,1252,1253,1254,1255,1256,1e4];var a=[932,936,949,950];var n=[65001];var i={};var s={};var f={};var o={};var l=function R(e){return String.fromCharCode(e)};var c=function D(e){return e.charCodeAt(0)};var h=typeof Buffer!=="undefined";if(h){var u=1024,d=new Buffer(u);var p=function O(e){var r=new Buffer(65536);for(var t=0;t<65536;++t)r[t]=0;var a=Object.keys(e),n=a.length;for(var i=0,s=a[i];i>10&1023)];n[s++]=t[56320+(o&1023)]}}}n=n.slice(0,s)}else{n=new Buffer(a);for(i=0;i>8}return function f(e){var r=e.length,t=0,n=0;if(2*r>u){u=2*r;d=new Buffer(u)}if(Buffer.isBuffer(e)){for(t=0;t>8}return function l(e,r){var t=e.length,n=new Buffer(2*t),i=0,s=0,f=0,o=0,l=0;if(typeof e==="string"){for(i=o=0;i0)n[o++]=a[s]}n=n.slice(0,o)}else if(Buffer.isBuffer(e)){for(i=o=0;i0)n[o++]=a[s]}else{f=s-65536;s=2*(55296+(f>>10&1023));n[o++]=a[s+1]||a[s];if(a[s+1]>0)n[o++]=a[s];s=2*(56320+(f&1023));n[o++]=a[s+1]||a[s];if(a[s+1]>0)n[o++]=a[s]}}n=n.slice(0,o)}else{for(i=o=0;i0)n[o++]=a[s]}}if(!r||r==="buf")return n;if(r!=="arr")return n.toString("binary");return[].slice.call(n)}};var m=function L(r){var t=e[r].dec;var a=new Buffer(131072),n=0,i,s=0,f=0,o=0;for(o=0;o<65536;++o){a[2*o]=255;a[2*o+1]=253}for(n=0;n>8}return function l(e){var r=e.length,t=new Buffer(2*r),n=0,i=0,s=0;if(Buffer.isBuffer(e)){for(n=0;nu){u=4*r;d=new Buffer(u)}var n=0;if(r>=3&&e[0]==239)if(e[1]==187&&e[2]==191)n=3;for(var i=1,s=0,f=0;n>8}else{t-=65536;a=55296+(t>>10&1023);t=56320+(t&1023);d[s++]=a&255;d[s++]=a>>>8;d[s++]=t&255;d[s++]=t>>>8&255}}return d.slice(0,s).toString("ucs2")};s[65001]=function U(e,r){if(h&&Buffer.isBuffer(e)){if(!r||r==="buf")return e;if(r!=="arr")return e.toString("binary");return[].slice.call(e)}var t=e.length,a=0,n=0,i=0;var s=typeof e==="string";if(4*t>u){u=4*t;d=new Buffer(u)}for(var f=0;f>6);d[i++]=128+(a&63)}else if(a>=55296&&a<=57343){a-=55296;++f;n=(s?e.charCodeAt(f):e[f].charCodeAt(0))-56320+(a<<10);d[i++]=240+(n>>>18&7);d[i++]=144+(n>>>12&63);d[i++]=128+(n>>>6&63);d[i++]=128+(n&63)}else{d[i++]=224+(a>>12);d[i++]=128+(a>>6&63);d[i++]=128+(a&63)}}if(!r||r==="buf")return d.slice(0,i);if(r!=="arr")return d.slice(0,i).toString("binary");return[].slice.call(d,0,i)}}var C=function H(){if(h){if(f[t[0]])return;var r=0,l=0;for(r=0;r255){s[u]=f>>8;s[++u]=f&255}else s[u]=f&255}else if(g=r[t])switch(g){case"utf8":if(h&&b){s=new Buffer(a,g);u=s.length;break}for(c=0;c>6);s[++u]=128+(f&63)}else if(f>=55296&&f<=57343){f-=55296;d=(b?a.charCodeAt(++c):a[++c].charCodeAt(0))-56320+(f<<10);s[u]=240+(d>>>18&7);s[++u]=144+(d>>>12&63);s[++u]=128+(d>>>6&63);s[++u]=128+(d&63)}else{s[u]=224+(f>>12);s[++u]=128+(f>>6&63);s[++u]=128+(f&63)}}break;case"ascii":if(h&&typeof a==="string"){s=new Buffer(a,g);u=s.length;break}for(c=0;c>8}break;case"utf16be":for(c=0;c>8;s[u++]=f&255}break;case"utf32le":for(c=0;c=55296&&f<=57343)f=65536+(f-55296<<10)+(a[++c].charCodeAt(0)-56320);s[u++]=f&255;f>>=8;s[u++]=f&255;f>>=8;s[u++]=f&255;f>>=8;s[u++]=f&255}break;case"utf32be":for(c=0;c=55296&&f<=57343)f=65536+(f-55296<<10)+(a[++c].charCodeAt(0)-56320);s[u+3]=f&255;f>>=8;s[u+2]=f&255;f>>=8;s[u+1]=f&255;f>>=8;s[u]=f&255;u+=4}break;case"utf7":for(c=0;c-1){s[u++]=m.charCodeAt(0);continue}var C=V(1201,m);s[u++]=43;s[u++]=A.charCodeAt(C[0]>>2);s[u++]=A.charCodeAt(((C[0]&3)<<4)+((C[1]||0)>>4));s[u++]=A.charCodeAt(((C[1]&15)<<2)+((C[2]||0)>>6));s[u++]=45}break;default:throw new Error("Unsupported magic: "+t+" "+r[t]);}else throw new Error("Unrecognized CP: "+t);s=s.slice(0,u);if(!h)return n=="str"?s.map(l).join(""):s;if(!n||n==="buf")return s;if(n!=="arr")return s.toString("binary");return[].slice.call(s)};var I=function X(t,a){var n;if(n=f[t])return n(a);if(typeof a==="string")return X(t,a.split("").map(c));var i=a.length,s=new Array(i),o="",l=0,u=0,d=1,p=0,v=0;var g=e[t],b,m="";if(g&&(b=g.dec)){for(u=0;u=3&&a[0]==239)if(a[1]==187&&a[2]==191)u=3;for(;u>10&1023);l=56320+(l&1023);s[p++]=String.fromCharCode(v);s[p++]=String.fromCharCode(l)}}break;case"ascii":if(h&&Buffer.isBuffer(a))return a.toString(m);for(u=0;u=2&&a[0]==255)if(a[1]==254)u=2;if(h&&Buffer.isBuffer(a))return a.toString(m);d=2;for(;u+1=2&&a[0]==254)if(a[1]==255)u=2;d=2;for(;u+1=4&&a[0]==255)if(a[1]==254&&a[2]===0&&a[3]===0)u=4;d=4;for(;u65535){l-=65536;s[p++]=String.fromCharCode(55296+(l>>10&1023));s[p++]=String.fromCharCode(56320+(l&1023))}else s[p++]=String.fromCharCode(l)}break;case"utf32be":if(i>=4&&a[3]==255)if(a[2]==254&&a[1]===0&&a[0]===0)u=4;d=4;for(;u65535){l-=65536;s[p++]=String.fromCharCode(55296+(l>>10&1023));s[p++]=String.fromCharCode(56320+(l&1023))}else s[p++]=String.fromCharCode(l)}break;case"utf7":if(i>=4&&a[0]==43&&a[1]==47&&a[2]==118){if(i>=5&&a[3]==56&&a[4]==45)u=5;else if(a[3]==56||a[3]==57||a[3]==43||a[3]==47)u=4}for(;u>4;E.push(w);x=A.indexOf(String.fromCharCode(a[u+y++]));if(x===-1)break;S=(T&15)<<4|x>>2;E.push(S);I=A.indexOf(String.fromCharCode(a[u+y++]));if(I===-1)break;B=(x&3)<<6|I;if(I<64)E.push(B)}k=X(1201,E);for(y=0;y>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return r.join("")}function f(e){var r=[];for(var t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join("")}var o=function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);if(r==255&&t==254)return s(e.substr(2));if(r==254&&t==255)return f(e.substr(2));if(r==65279)return e.substr(1);return e};var l=function Qv(e){return String.fromCharCode(e)};if(typeof cptable!=="undefined"){n=function(e){t=e};o=function(e){if(e.charCodeAt(0)===255&&e.charCodeAt(1)===254){return cptable.utils.decode(1200,i(e.substr(2)))}return e};l=function Jv(e){if(t===1200)return String.fromCharCode(e);return cptable.utils.decode(t,[e&255,e>>8])[0]}}var c=null;var h=true;var u=function qv(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(r){var t="";var a,n,i,s,f,o,l;for(var c=0;c>2;f=(a&3)<<4|n>>4;o=(n&15)<<2|i>>6;l=i&63;if(isNaN(n)){o=l=64}else if(isNaN(i)){l=64}t+=e.charAt(s)+e.charAt(f)+e.charAt(o)+e.charAt(l)}return t},decode:function r(t){var a="";var n,i,s;var f,o,l,c;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var h=0;h>4;i=(o&15)<<4|l>>2;s=(l&3)<<6|c;a+=String.fromCharCode(n);if(l!=64){a+=String.fromCharCode(i)}if(c!=64){a+=String.fromCharCode(s)}}return a}}}();var d=typeof Buffer!=="undefined"&&typeof process!=="undefined"&&typeof process.versions!=="undefined"&&process.versions.node;function p(e){return new(d?Buffer:Array)(e)}function v(e){if(d)return new Buffer(e,"binary");return e.split("").map(function(e){return e.charCodeAt(0)&255})}var g=function(e){return[].concat.apply([],e)};var b=/\u0000/g,m=/[\u0001-\u0006]/;var C={};var E=function eg(e){e.version="0.10.0";function r(e){var r="",t=e.length-1;while(t>=0)r+=e.charAt(t--);return r}function t(e,r){var t="";while(t.length=r?a:t("0",r-a.length)+a}function n(e,r){var a=""+e;return a.length>=r?a:t(" ",r-a.length)+a}function i(e,r){var a=""+e;return a.length>=r?a:a+t(" ",r-a.length)}function s(e,r){var a=""+Math.round(e);return a.length>=r?a:t("0",r-a.length)+a}function f(e,r){var a=""+e;return a.length>=r?a:t("0",r-a.length)+a}var o=Math.pow(2,32);function l(e,r){if(e>o||e<-o)return s(e,r);var t=Math.round(e);return f(t,r)}function c(e,r){r=r||0;return e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var h=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var u=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function d(e){e[0]="General";e[1]="0";e[2]="0.00";e[3]="#,##0";e[4]="#,##0.00";e[9]="0%";e[10]="0.00%";e[11]="0.00E+00";e[12]="# ?/?";e[13]="# ??/??";e[14]="m/d/yy";e[15]="d-mmm-yy";e[16]="d-mmm";e[17]="mmm-yy";e[18]="h:mm AM/PM";e[19]="h:mm:ss AM/PM";e[20]="h:mm";e[21]="h:mm:ss";e[22]="m/d/yy h:mm";e[37]="#,##0 ;(#,##0)";e[38]="#,##0 ;[Red](#,##0)";e[39]="#,##0.00;(#,##0.00)";e[40]="#,##0.00;[Red](#,##0.00)";e[45]="mm:ss";e[46]="[h]:mm:ss";e[47]="mmss.0";e[48]="##0.0E+0";e[49]="@";e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "';e[65535]="General"}var p={};d(p);function v(e,r,t){var a=e<0?-1:1;var n=e*a;var i=0,s=1,f=0;var o=1,l=0,c=0;var h=Math.floor(n);while(lr){if(l>r){c=o;f=i}else{c=l;f=s}}if(!t)return[0,a*f,c];var u=Math.floor(a*f/c);return[u,a*f-u*c,c]}function g(e,r,t){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),i=0;var s=[];var f={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(f.u)<1e-6)f.u=0;if(r&&r.date1904)a+=1462;if(f.u>.9999){f.u=0;if(++n==86400){f.T=n=0;++a;++f.D}}if(a===60){s=t?[1317,10,29]:[1900,2,29];i=3}else if(a===0){s=t?[1317,8,29]:[1900,1,0];i=6}else{if(a>60)--a;var o=new Date(1900,0,1);o.setDate(o.getDate()+a-1);s=[o.getFullYear(),o.getMonth()+1,o.getDate()];i=o.getDay();if(a<60)i=(i+6)%7;if(t)i=A(o,s)}f.y=s[0];f.m=s[1];f.d=s[2];f.S=n%60;n=Math.floor(n/60);f.M=n%60;n=Math.floor(n/60);f.H=n;f.q=i;return f}e.parse_date_code=g;var b=new Date(1899,11,31,0,0,0);var m=b.getTime();var C=new Date(1900,2,1,0,0,0);function E(e,r){var t=e.getTime();if(r)t-=1461*24*60*60*1e3;else if(e>=C)t+=24*60*60*1e3;return(t-(m+(e.getTimezoneOffset()-b.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function k(e){return e.toString(10)}e._general_int=k;var w=function M(){var e=/\.(\d*[1-9])0+$/,r=/\.0*$/,t=/\.(\d*[1-9])0+/,a=/\.0*[Ee]/,n=/(E[+-])(\d)$/;function i(e){var r=e<0?12:11;var t=o(e.toFixed(12));if(t.length<=r)return t;t=e.toPrecision(10);if(t.length<=r)return t;return e.toExponential(5)}function s(r){var t=r.toFixed(11).replace(e,".$1");if(t.length>(r<0?12:11))t=r.toPrecision(6);return t}function f(e){for(var r=0;r!=e.length;++r)if((e.charCodeAt(r)|32)===101)return e.replace(t,".$1").replace(a,"E").replace("e","E").replace(n,"$10$2");return e}function o(t){return t.indexOf(".")>-1?t.replace(r,"").replace(e,".$1"):t}return function l(e){var r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),t;if(r>=-4&&r<=-1)t=e.toPrecision(10+r);else if(Math.abs(r)<=9)t=i(e);else if(r===10)t=e.toFixed(10).substr(0,12);else t=s(e);return o(f(t))}}();e._general_num=w;function S(e,r){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?k(e):w(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return N(14,E(e,r&&r.date1904),r);}throw new Error("unsupported value in General format: "+e)}e._general=S;function A(){return 0}function B(e,r,t,n){var i="",s=0,f=0,o=t.y,l,c=0;switch(e){case 98:o=t.y+543;case 121:switch(r.length){case 1:;case 2:l=o%100;c=2;break;default:l=o%1e4;c=4;break;}break;case 109:switch(r.length){case 1:;case 2:l=t.m;c=r.length;break;case 3:return u[t.m-1][1];case 5:return u[t.m-1][0];default:return u[t.m-1][2];}break;case 100:switch(r.length){case 1:;case 2:l=t.d;c=r.length;break;case 3:return h[t.q][0];default:return h[t.q][1];}break;case 104:switch(r.length){case 1:;case 2:l=1+(t.H+11)%12;c=r.length;break;default:throw"bad hour format: "+r;}break;case 72:switch(r.length){case 1:;case 2:l=t.H;c=r.length;break;default:throw"bad hour format: "+r;}break;case 77:switch(r.length){case 1:;case 2:l=t.M;c=r.length;break;default:throw"bad minute format: "+r;}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;if(t.u===0&&(r=="s"||r=="ss"))return a(t.S,r.length);if(n>=2)f=n===3?1e3:100;else f=n===1?10:1;s=Math.round(f*(t.S+t.u));if(s>=60*f)s=0;if(r==="s")return s===0?"0":""+s/f;i=a(s,2+n);if(r==="ss")return i.substr(0,2);return"."+i.substr(2,r.length-1);case 90:switch(r){case"[h]":;case"[hh]":l=t.D*24+t.H;break;case"[m]":;case"[mm]":l=(t.D*24+t.H)*60+t.M; +break;case"[s]":;case"[ss]":l=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+r;}c=r.length===3?1:2;break;case 101:l=o;c=1;}if(c>0)return a(l,c);else return""}function _(e){var r=3;if(e.length<=r)return e;var t=e.length%r,a=e.substr(0,t);for(;t!=e.length;t+=r)a+=(a.length>0?",":"")+e.substr(t,r);return a}var T=function U(){var e=/%/g;function s(r,a,n){var i=a.replace(e,""),s=a.length-i.length;return T(r,i,n*Math.pow(10,2*s))+t("%",s)}function f(e,r,t){var a=r.length-1;while(r.charCodeAt(a-1)===44)--a;return T(e,r.substr(0,a),t/Math.pow(10,3*(r.length-a)))}function o(e,r){var t;var a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";else if(r<0)return"-"+o(e,-r);var n=e.indexOf(".");if(n===-1)n=e.indexOf("E");var i=Math.floor(Math.log(r)*Math.LOG10E)%n;if(i<0)i+=n;t=(r/Math.pow(10,i)).toPrecision(a+1+(n+i)%n);if(t.indexOf("e")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);if(t.indexOf(".")===-1)t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+i);else t+="E+"+(s-i);while(t.substr(0,2)==="0."){t=t.charAt(0)+t.substr(2,n)+"."+t.substr(2+n);t=t.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(e,r,t,a){return r+t+a.substr(0,(n+i)%n)+"."+a.substr(i)+"E"})}else t=r.toExponential(a);if(e.match(/E\+00$/)&&t.match(/e[+-]\d$/))t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1);if(e.match(/E\-/)&&t.match(/e\+/))t=t.replace(/e\+/,"e");return t.replace("e","E")}var c=/# (\?+)( ?)\/( ?)(\d+)/;function h(e,r,i){var s=parseInt(e[4],10),f=Math.round(r*s),o=Math.floor(f/s);var l=f-o*s,c=s;return i+(o===0?"":""+o)+" "+(l===0?t(" ",e[1].length+1+e[4].length):n(l,e[1].length)+e[2]+"/"+e[3]+a(c,e[4].length))}function u(e,r,a){return a+(r===0?"":""+r)+t(" ",e[1].length+2+e[4].length)}var d=/^#*0*\.([0#]+)/;var p=/\).*[0#]/;var g=/\(###\) ###\\?-####/;function b(e){var r="",t;for(var a=0;a!=e.length;++a)switch(t=e.charCodeAt(a)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t);}return r}function m(e,r){var t=Math.pow(10,r);return""+Math.round(e*t)/t}function C(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 0}return Math.round((e-Math.floor(e))*Math.pow(10,r))}function E(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 1}return 0}function k(e){if(e<2147483647&&e>-2147483648)return""+(e>=0?e|0:e-1|0);return""+Math.floor(e)}function w(e,u,S){if(e.charCodeAt(0)===40&&!u.match(p)){var A=u.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(S>=0)return w("n",A,S);return"("+w("n",A,-S)+")"}if(u.charCodeAt(u.length-1)===44)return f(e,u,S);if(u.indexOf("%")!==-1)return s(e,u,S);if(u.indexOf("E")!==-1)return o(u,S);if(u.charCodeAt(0)===36)return"$"+w(e,u.substr(u.charAt(1)==" "?2:1),S);var B;var x,I,y,R=Math.abs(S),D=S<0?"-":"";if(u.match(/^00+$/))return D+l(R,u.length);if(u.match(/^[#?]+$/)){B=l(S,0);if(B==="0")B="";return B.length>u.length?B:b(u.substr(0,u.length-B.length))+B}if(x=u.match(c))return h(x,R,D);if(u.match(/^#+0+$/))return D+l(R,u.length-u.indexOf("0"));if(x=u.match(d)){B=m(S,x[1].length).replace(/^([^\.]+)$/,"$1."+b(x[1])).replace(/\.$/,"."+b(x[1])).replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",b(x[1]).length-r.length)});return u.indexOf("0.")!==-1?B:B.replace(/^0\./,".")}u=u.replace(/^#+([0.])/,"$1");if(x=u.match(/^(0*)\.(#*)$/)){return D+m(R,x[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,x[1].length?"0.":".")}if(x=u.match(/^#{1,3},##0(\.?)$/))return D+_(l(R,0));if(x=u.match(/^#,##0\.([#0]*0)$/)){return S<0?"-"+w(e,u,-S):_(""+(Math.floor(S)+E(S,x[1].length)))+"."+a(C(S,x[1].length),x[1].length)}if(x=u.match(/^#,#*,#0/))return w(e,u.replace(/^#,#*,/,""),S);if(x=u.match(/^([0#]+)(\\?-([0#]+))+$/)){B=r(w(e,u.replace(/[\\-]/g,""),S));I=0;return r(r(u.replace(/\\/g,"")).replace(/[0#]/g,function(e){return I=0)return x("n",o,f);return"("+x("n",o,-f)+")"}if(s.charCodeAt(s.length-1)===44)return S(e,s,f);if(s.indexOf("%")!==-1)return A(e,s,f);if(s.indexOf("E")!==-1)return B(s,f);if(s.charCodeAt(0)===36)return"$"+x(e,s.substr(s.charAt(1)==" "?2:1),f);var l;var h,m,C,E=Math.abs(f),k=f<0?"-":"";if(s.match(/^00+$/))return k+a(E,s.length);if(s.match(/^[#?]+$/)){l=""+f;if(f===0)l="";return l.length>s.length?l:b(s.substr(0,s.length-l.length))+l}if(h=s.match(c))return u(h,E,k);if(s.match(/^#+0+$/))return k+a(E,s.length-s.indexOf("0"));if(h=s.match(d)){l=(""+f).replace(/^([^\.]+)$/,"$1."+b(h[1])).replace(/\.$/,"."+b(h[1]));l=l.replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",b(h[1]).length-r.length)});return s.indexOf("0.")!==-1?l:l.replace(/^0\./,".")}s=s.replace(/^#+([0.])/,"$1");if(h=s.match(/^(0*)\.(#*)$/)){return k+(""+E).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,h[1].length?"0.":".")}if(h=s.match(/^#{1,3},##0(\.?)$/))return k+_(""+E);if(h=s.match(/^#,##0\.([#0]*0)$/)){return f<0?"-"+x(e,s,-f):_(""+f)+"."+t("0",h[1].length)}if(h=s.match(/^#,#*,#0/))return x(e,s.replace(/^#,#*,/,""),f);if(h=s.match(/^([0#]+)(\\?-([0#]+))+$/)){l=r(x(e,s.replace(/[\\-]/g,""),f));m=0;return r(r(s.replace(/\\/g,"")).replace(/[0#]/g,function(e){return m-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r-1){}break;case" ":++r;break;default:++r;break;}}return false}e.is_date=y;function R(e,r,t,a){var n=[],i="",s=0,f="",o="t",l,h,u;var d="H";while(s=12?"P":"A";b.t="T";d="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(l!=null)b.v=l.H>=12?"PM":"AM";b.t="T";s+=5;d="h"}else{b.t="t";++s}if(l==null&&b.t==="T")return"";n[n.length]=b;o=f;break;case"[":i=f;while(e.charAt(s++)!=="]"&&s-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!y(e))n[n.length]={t:"t",v:i}}break;case".":if(l!=null){i=f;while(++s-1||f=="\\"&&e.charAt(s+1)=="-"&&s-1)i+=f;n[n.length]={t:"n",v:i};break;case"?":i=f;while(e.charAt(++s)===f)i+=f;n[n.length]={t:f,v:i};o=f;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":f,v:f};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=f;while(s-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:f,v:f};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(f)===-1)throw new Error("unrecognized character "+f+" in "+e);n[n.length]={t:"t",v:f};++s;break;}}var m=0,C=0,E;for(s=n.length-1,o="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=d;o="h";if(m<1)m=1;break;case"s":if(E=n[s].v.match(/\.0+$/))C=Math.max(C,E[0].length-1);if(m<3)m=3;case"d":;case"y":;case"M":;case"e":o=n[s].t;break;case"m":if(o==="s"){n[s].t="M";if(m<2)m=2}break;case"X":break;case"Z":if(m<1&&n[s].v.match(/[Hh]/))m=1;if(m<2&&n[s].v.match(/[Mm]/))m=2;if(m<3&&n[s].v.match(/[Ss]/))m=3;}}switch(m){case 0:break;case 1:if(l.u>=.5){l.u=0;++l.S}if(l.S>=60){l.S=0;++l.M}if(l.M>=60){l.M=0;++l.H}break;case 2:if(l.u>=.5){l.u=0;++l.S}if(l.S>=60){l.S=0;++l.M}break;}var k="",w;for(s=0;s0){if(k.charCodeAt(0)==40){_=r<0&&k.charCodeAt(0)===45?-r:r;x=T("(",k,_)}else{_=r<0&&a>1?-r:r;x=T("n",k,_);if(_<0&&n[0]&&n[0].t=="t"){x=x.substr(1);n[0].v="-"+n[0].v}}w=x.length-1;var R=n.length;for(s=0;s-1){R=s;break}var D=n.length;if(R===n.length&&x.indexOf("E")===-1){for(s=n.length-1;s>=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;if(w>=n[s].v.length-1){w-=n[s].v.length;n[s].v=x.substr(w+1,n[s].v.length)}else if(w<0)n[s].v="";else{n[s].v=x.substr(0,w+1);w=-1}n[s].t="t";D=s}if(w>=0&&D=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;h=n[s].v.indexOf(".")>-1&&s===R?n[s].v.indexOf(".")-1:n[s].v.length-1;A=n[s].v.substr(h+1);for(;h>=0;--h){if(w>=0&&(n[s].v.charAt(h)==="0"||n[s].v.charAt(h)==="#"))A=x.charAt(w--)+A}n[s].v=A;n[s].t="t";D=s}if(w>=0&&D-1&&s===R?n[s].v.indexOf(".")+1:0;A=n[s].v.substr(0,h);for(;h-1){_=a>1&&r<0&&s>0&&n[s-1].v==="-"?-r:r;n[s].v=T(n[s].t,n[s].v,_);n[s].t="t"}var O="";for(s=0;s!==n.length;++s)if(n[s]!=null)O+=n[s].v;return O}e._eval=R;var D=/\[[=<>]/;var O=/\[([=<>]*)(-?\d+\.?\d*)\]/;function F(e,r){if(r==null)return false;var t=parseFloat(r[2]);switch(r[1]){case"=":if(e==t)return true;break;case">":if(e>t)return true;break;case"<":if(e":if(e!=t)return true;break;case">=":if(e>=t)return true;break;case"<=":if(e<=t)return true;break;}return false}function P(e,r){var t=x(e);var a=t.length,n=t[a-1].indexOf("@");if(a<4&&n>-1)--a;if(t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if(typeof r!=="number")return[4,t.length===4||n>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=n>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=n>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=n>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"];break;case 4:break;}var i=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf("[")===-1&&t[1].indexOf("[")===-1)return[a,i];if(t[0].match(D)!=null||t[1].match(D)!=null){var s=t[0].match(O);var f=t[1].match(O);return F(r,s)?[a,t[0]]:F(r,f)?[a,t[1]]:[a,t[s!=null&&f!=null?2:1]]}return[a,i]}function N(e,r,t){if(t==null)t={};var a="";switch(typeof e){case"string":if(e=="m/d/yy"&&t.dateNF)a=t.dateNF;else a=e;break;case"number":if(e==14&&t.dateNF)a=t.dateNF;else a=(t.table!=null?t.table:p)[e];break;}if(c(a,0))return S(r,t);if(r instanceof Date)r=E(r,t.date1904);var n=P(a,r);if(c(n[1]))return S(r,t);if(r===true)r="TRUE";else if(r===false)r="FALSE";else if(r===""||r==null)return"";return R(n[1],r,t,n[0])}function L(e,r){if(typeof r!="number"){r=+r||-1;for(var t=0;t<392;++t){if(p[t]==undefined){if(r<0)r=t;continue}if(p[t]==e){r=t;break}}if(r<0)r=391}p[r]=e;return r}e.load=L;e._table=p;e.get_table=function H(){return p};e.load_table=function W(e){for(var r=0;r!=392;++r)if(e[r]!==undefined)L(e[r],r)};e.init_table=d;e.format=N};E(C);var k={"General Number":"General","General Date":C._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":C._table[15],"Short Date":C._table[14],"Long Time":C._table[19],"Medium Time":C._table[18],"Short Time":C._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:C._table[2],Standard:C._table[4],Percent:C._table[10],Scientific:C._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var w=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function S(e){var r=typeof e=="number"?C._table[e]:e;r=r.replace(w,"(\\d+)");return new RegExp("^"+r+"$")}function A(e,r,t){var a=-1,n=-1,i=-1,s=-1,f=-1,o=-1;(r.match(w)||[]).forEach(function(e,r){var l=parseInt(t[r+1],10);switch(e.toLowerCase().charAt(0)){case"y":a=l;break;case"d":i=l;break;case"h":s=l;break;case"s":o=l;break;case"m":if(s>=0)f=l;else n=l;break;}});if(o>=0&&f==-1&&n>=0){f=n;n=-1}var l=(""+(a>=0?a:(new Date).getFullYear())).slice(-4)+"-"+("00"+(n>=1?n:1)).slice(-2)+"-"+("00"+(i>=1?i:1)).slice(-2);if(l.length==7)l="0"+l;if(l.length==8)l="20"+l;var c=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(f>=0?f:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2);if(s==-1&&f==-1&&o==-1)return l;if(a==-1&&n==-1&&i==-1)return c;return l+"T"+c}var B=true;var _=function rg(){var e={};e.version="0.13.1";function r(e,r){var t=e.split("/"),a=r.split("/");for(var n=0,i=0,s=Math.min(t.length,a.length);n0&&p!==I)A[p].name="!MiniFAT";A[g[0]].name="!FAT";A.fat_addrs=g;A.ssz=a;var B={},_=[],T=[],x=[],y={};d(u,A,S,_,n,B,T);o(T,y,x,_);_.shift();var R={FileIndex:T,FullPaths:x,FullPathDir:y};if(r&&r.raw)R.raw={header:C,sectors:S};return R}function i(e){e.chk(y,"Header Signature: ");e.chk(D,"CLSID: ");var r=e._R(2,"u");return[e._R(2,"u"),r]}function s(e,r){var t=9;e.l+=2;switch(t=e._R(2)){case 9:if(r!=3)throw new Error("Sector Shift: Expected 9 saw "+t);break;case 12:if(r!=4)throw new Error("Sector Shift: Expected 12 saw "+t);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+t);}e.chk("0600","Mini Sector Shift: ");e.chk("000000000000","Reserved: ")}function f(e,r){var t=Math.ceil(e.length/r)-1;var a=[];for(var n=1;n>>2)-1;if(!s)return;for(var o=0;o=0;){n[o]=true;i[i.length]=o;s.push(e[o]);var c=t[Math.floor(o*4/a)];l=o*4&f;if(a<4+l)throw new Error("FAT boundary crossed: "+o+" 4 "+a);if(!e[c])break;o=vr(e[c],l)}return{nodes:i,data:je([s])}}function h(e,r,t,a){var n=e.length,i=[];var s=[],f=[],o=[];var l=a-1,c=0,h=0,u=0,d=0;for(c=0;c=n)u-=n;if(s[u])continue;o=[];for(h=u;h>=0;){s[h]=true;f[f.length]=h;o.push(e[h]);var p=t[Math.floor(h*4/a)];d=h*4&l;if(a<4+d)throw new Error("FAT boundary crossed: "+h+" 4 "+a);if(!e[p])break;h=vr(e[p],d)}i[u]={nodes:f,data:je([o])}}return i}function d(e,r,t,a,n,i,s){var f=0,o=a.length?2:0;var l=r[e].data;var h=0,u=0,d;for(;h0&&f!==I)r[f].name="!StreamData"}else if(g.size>=4096){g.storage="fat";if(r[g.start]===undefined)r[g.start]=c(t,g.start,r.fat_addrs,r.ssz);r[g.start].name=g.name;g.content=r[g.start].data.slice(0,g.size);Br(g.content,0)}else{g.storage="minifat";if(f!==I&&g.start!==I&&r[f]){g.content=r[f].data.slice(g.start*x,g.start*x+g.size);Br(g.content,0)}}i[d]=g;s.push(g)}}function p(e,r){return new Date((pr(e,r+4)/1e7*Math.pow(2,32)+pr(e,r)/1e7-11644473600)*1e3)}var C;function E(e,r){if(C==null)C=require("fs");return n(C.readFileSync(e),r)}function k(e,r){switch(r&&r.type||"base64"){case"file":return E(e,r);case"base64":return n(v(u.decode(e)),r);case"binary":return n(v(e),r);}return n(e,r)}function w(e,r){var t=r||{},a=t.root||"Root Entry";if(!e.FullPaths)e.FullPaths=[];if(!e.FileIndex)e.FileIndex=[];if(e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");if(e.FullPaths.length===0){e.FullPaths[0]=a+"/";e.FileIndex[0]={name:a,type:5}}if(t.CLSID)e.FileIndex[0].clsid=t.CLSID;S(e)}function S(e){var r="Sh33tJ5";if(_.find(e,"/"+r))return;var t=Ir(4);t[0]=55;t[1]=t[3]=50;t[2]=54;e.FileIndex.push({name:r,type:2,content:t,size:4,L:69,R:69,C:69});e.FullPaths.push(e.FullPaths[0]+r);A(e)}function A(e,n){w(e);var i=false,s=false;for(var f=e.FullPaths.length-1;f>=0;--f){var o=e.FileIndex[f];switch(o.type){case 0:if(s)i=true;else{e.FileIndex.pop();e.FullPaths.pop()}break;case 1:;case 2:;case 5:s=true;if(isNaN(o.R*o.L*o.C))i=true;if(o.R>-1&&o.L>-1&&o.R==o.L)i=true;break;default:i=true;break;}}if(!i&&!n)return;var l=new Date(1987,1,19),c=0;var h=[];for(f=0;f1?1:-1;d.size=0;d.type=5}else if(p.slice(-1)=="/"){for(c=f+1;c=h.length?-1:c;for(c=f+1;c=h.length?-1:c;d.type=1}else{if(t(e.FullPaths[f+1]||"")==t(p))d.R=f+1;d.type=2}}}function B(e,r){A(e);var t=function(e){var r=0,t=0;for(var a=0;a>6;else t+=i+511>>9}var s=e.FullPaths.length+3>>2;var f=r+7>>3;var o=r+127>>7;var l=f+t+s+o;var c=l+127>>7;var h=c<=109?0:Math.ceil((c-109)/127);while(l+c+h+127>>7>c)h=++c<=109?0:Math.ceil((c-109)/127);var u=[1,h,c,o,s,t,r,0];e.FileIndex[0].size=r<<6;u[7]=(e.FileIndex[0].start=u[0]+u[1]+u[2]+u[3]+u[4]+u[5])+(u[6]+7>>3);return u}(e);var a=Ir(t[7]<<9);var n=0,i=0;{for(n=0;n<8;++n)a._W(1,R[n]);for(n=0;n<8;++n)a._W(2,0);a._W(2,62);a._W(2,3);a._W(2,65534);a._W(2,9);a._W(2,6);for(n=0;n<3;++n)a._W(2,0);a._W(4,0);a._W(4,t[2]);a._W(4,t[0]+t[1]+t[2]+t[3]-1);a._W(4,0);a._W(4,1<<12);a._W(4,t[3]?t[0]+t[1]+t[2]-1:I);a._W(4,t[3]);a._W(-4,t[1]?t[0]-1:I);a._W(4,t[1]);for(n=0;n<109;++n)a._W(-4,n>9)}s(t[6]+7>>3);while(a.l&511)a._W(-4,O.ENDOFCHAIN);i=n=0;for(f=0;f=4096)continue;l.start=i;s(o+63>>6)}while(a.l&511)a._W(-4,O.ENDOFCHAIN);for(n=0;n=4096){a.l=l.start+1<<9;for(f=0;f0&&l.size<4096){for(f=0;f3)a=true;switch(n[i].substr(n[i].length-1)){ +case"Y":throw new Error("Unsupported ISO Duration Field: "+n[i].substr(n[i].length-1));case"D":t*=24;case"H":t*=60;case"M":if(!a)throw new Error("Unsupported ISO Duration Field: M");else t*=60;case"S":break;}r+=t*parseInt(n[i],10)}return r}var M=new Date("2017-02-19T19:06:09.000Z");if(isNaN(M.getFullYear()))M=new Date("2/19/17");var U=M.getFullYear()==2017;function H(e,r){var t=new Date(e);if(U){if(r>0)t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3);else if(r<0)t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3);return t}if(e instanceof Date)return e;if(M.getFullYear()==1917&&!isNaN(t.getFullYear())){var a=t.getFullYear();if(e.indexOf(""+a)>-1)return t;t.setFullYear(t.getFullYear()+100);return t}var n=e.match(/\d+/g)||["2017","2","19","0","0","0"];var i=new Date(+n[0],+n[1]-1,+n[2],+n[3]||0,+n[4]||0,+n[5]||0);if(e.indexOf("Z")>-1)i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3);return i}function W(e){var r="";for(var t=0;t!=e.length;++t)r+=String.fromCharCode(e[t]);return r}function z(e){var r=[];for(var t=0;t!=e.length;++t)r.push(e.charCodeAt(t));return r}function V(e){if(typeof JSON!="undefined"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;var r={};for(var t in e)if(e.hasOwnProperty(t))r[t]=V(e[t]);return r}function X(e,r){var t="";while(t.length8099)return t;if((n>0||i>1)&&a!=101)return r;if(e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/))return r;if(e.match(/[^-0-9:,\/\\]/))return t;return r}var K="abacaba".split(/(:?b)/i).length==5;function Y(e,r,t){if(K||typeof r=="string")return e.split(r);var a=e.split(r),n=[a[0]];for(var i=1;i\/]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;var oe=/<[\/\?]?[a-zA-Z0-9:]+(?:\s+[^"\s?>\/]+=(?:"[^"]*"|'[^']*'|[^'">\s]+))*\s?[\/\?]?>/g;if(!se.match(oe))oe=/<[^>]*>/g;var le=/<\w*:/,ce=/<(\/?)\w+:/;function he(e,r){var t={};var a=0,n=0;for(;a!==e.length;++a)if((n=e.charCodeAt(a))===32||n===10||n===13)break;if(!r)t[0]=e.substr(0,a);if(a===e.length)return t;var i=e.match(fe),s=0,f="",o=0,l="",c="",h=1;if(i)for(o=0;o!=i.length;++o){c=i[o];for(n=0;n!=c.length;++n)if(c.charCodeAt(n)===61)break;l=c.substr(0,n);h=(a=c.charCodeAt(n+1))==34||a==39?1:0;f=c.substring(n+1+h,c.length-h);for(s=0;s!=l.length;++s)if(l.charCodeAt(s)===58)break;if(s===l.length){if(l.indexOf("_")>0)l=l.substr(0,l.indexOf("_"));t[l]=f}else{var u=(s===5&&l.substr(0,5)==="xmlns"?"xmlns":"")+l.substr(s+1);if(t[u]&&l.substr(s-3,3)=="ext")continue;t[u]=f}}return t}function ue(e){return e.replace(ce,"<$1")}var de={""":'"',"'":"'",">":">","<":"<","&":"&"};var pe=y(de);var ve=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/g,r=/_x([\da-fA-F]{4})_/g;return function t(a){var n=a+"",i=n.indexOf("-1?16:10))||e}).replace(r,function(e,r){return String.fromCharCode(parseInt(r,16))});var s=n.indexOf("]]>");return t(n.slice(0,i))+n.slice(i+9,s)+t(n.slice(s+3))}}();var ge=/[&<>'"]/g,be=/[\u0000-\u0008\u000b-\u001f]/g;function me(e,r){var t=e+"";return t.replace(ge,function(e){return pe[e]}).replace(be,function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"})}function Ce(e){return me(e).replace(/ /g,"_x0020_")}var Ee=/[\u0000-\u001f]/g;function ke(e){var r=e+"";return r.replace(ge,function(e){return pe[e]}).replace(Ee,function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"})}var we=function(){var e=/&#(\d+);/g;function r(e,r){return String.fromCharCode(parseInt(r,10))}return function t(a){return a.replace(e,r)}}();var Se=function(){return function e(r){return r.replace(/(\r\n|[\r\n])/g," ")}}();function Ae(e,r){switch(e){case 1:;case true:;case"1":;case"true":;case"TRUE":return true;default:return false;}}var Be=function tg(e){var r="",t=0,a=0,n=0,i=0,s=0,f=0;while(t191&&a<224){s=(a&31)<<6;s|=n&63;r+=String.fromCharCode(s);continue}i=e.charCodeAt(t++);if(a<240){r+=String.fromCharCode((a&15)<<12|(n&63)<<6|i&63);continue}s=e.charCodeAt(t++);f=((a&7)<<18|(n&63)<<12|(i&63)<<6|s&63)-65536;r+=String.fromCharCode(55296+(f>>>10&1023));r+=String.fromCharCode(56320+(f&1023))}return r};var _e=function(e){var r=[],t=0,a=0,n=0;while(t>6)));r.push(String.fromCharCode(128+(a&63)));break;case a>=55296&&a<57344:a-=55296;n=e.charCodeAt(t++)-56320+(a<<10);r.push(String.fromCharCode(240+(n>>18&7)));r.push(String.fromCharCode(144+(n>>12&63)));r.push(String.fromCharCode(128+(n>>6&63)));r.push(String.fromCharCode(128+(n&63)));break;default:r.push(String.fromCharCode(224+(a>>12)));r.push(String.fromCharCode(128+(a>>6&63)));r.push(String.fromCharCode(128+(a&63)));}}return r.join("")};if(d){var Te=function ag(e){var r=new Buffer(2*e.length),t,a,n=1,i=0,s=0,f;for(a=0;a>>10&1023);t=56320+(t&1023)}if(s!==0){r[i++]=s&255;r[i++]=s>>>8;s=0}r[i++]=t%256;r[i++]=t>>>8}return r.slice(0,i).toString("ucs2")};var xe="foo bar baz☃🍣";if(Be(xe)==Te(xe))Be=Te;var Ie=function ng(e){return Buffer(e,"binary").toString("utf8")};if(Be(xe)==Ie(xe))Be=Ie;_e=function(e){return new Buffer(e,"utf8").toString("binary")}}var ye=function(){var e={};return function r(t,a){var n=t+"|"+(a||"");if(e[n])return e[n];return e[n]=new RegExp("<(?:\\w+:)?"+t+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",a||"")}}();function Re(e){return e.trim().replace(/\s+/g," ").replace(/<\s*[bB][rR]\s*\/?/g,"\n").replace(/<[^>]*>/g,"").replace(/ /g," ")}var De=function(){var e={};return function r(t){if(e[t]!==undefined)return e[t];return e[t]=new RegExp("<(?:vt:)?"+t+">([\\s\\S]*?)","g")}}();var Oe=/<\/?(?:vt:)?variant>/g,Fe=/<(?:vt:)([^>]*)>([\s\S]*)"+r+""}function Me(e){return x(e).map(function(r){return" "+r+'="'+e[r]+'"'}).join("")}function Ue(e,r,t){return"<"+e+(T(t)?Me(t):"")+(T(r)?(r.match(Ne)?' xml:space="preserve"':"")+">"+r+""}function He(e,r){try{return e.toISOString().replace(/\.\d*/,"")}catch(t){if(r)throw t}return""}function We(e){switch(typeof e){case"string":return Ue("vt:lpwstr",e);case"number":return Ue((e|0)==e?"vt:i4":"vt:r8",String(e));case"boolean":return Ue("vt:bool",e?"true":"false");}if(e instanceof Date)return Ue("vt:filetime",He(e));throw new Error("Unable to serialize "+e)}var ze={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};ze.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];var Ve={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function Xe(e,r){var t=1-2*(e[r+7]>>>7);var a=((e[r+7]&127)<<4)+(e[r+6]>>>4&15);var n=e[r+6]&15;for(var i=5;i>=0;--i)n=n*256+e[r+i];if(a==2047)return n==0?t*Infinity:NaN;if(a==0)a=-1022;else{a-=1023;n+=Math.pow(2,52)}return t*Math.pow(2,a-52)*n}function Ge(e,r,t){var a=(r<0||1/r==-Infinity?1:0)<<7,n=0,i=0;var s=a?-r:r;if(!isFinite(s)){n=2047;i=isNaN(r)?26985:0}else if(s==0)n=i=0;else{n=Math.floor(Math.log(s)/Math.LN2);i=s*Math.pow(2,52-n);if(n<=-1023&&(!isFinite(i)||i>4|a}var je=function(e){var r=[];for(var t=0;t0?Je(e,r+4,r+4+t-1):""};var rr=er;var tr=function(e,r){var t=2*pr(e,r);return t>0?Je(e,r+4,r+4+t-1):""};var ar=tr;var nr,ir;nr=ir=function ig(e,r){var t=pr(e,r);return t>0?Ye(e,r+4,r+4+t):""};var sr=function(e,r){var t=pr(e,r);return t>0?Je(e,r+4,r+4+t):""};var fr=sr;var or,lr;or=lr=function(e,r){return Xe(e,r)};var cr=function sg(e){return Array.isArray(e)};if(d){Ye=function(e,r,t){if(!Buffer.isBuffer(e))return $e(e,r,t);return e.toString("utf16le",r,t).replace(b,"")};Ze=function(e,r,t){return Buffer.isBuffer(e)?e.toString("hex",r,r+t):Qe(e,r,t)};er=function fg(e,r){if(!Buffer.isBuffer(e))return rr(e,r);var t=e.readUInt32LE(r);return t>0?e.toString("utf8",r+4,r+4+t-1):""};tr=function og(e,r){if(!Buffer.isBuffer(e))return ar(e,r);var t=2*e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t-1)};nr=function lg(e,r){if(!Buffer.isBuffer(e))return ir(e,r);var t=e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t)};sr=function cg(e,r){if(!Buffer.isBuffer(e))return fr(e,r);var t=e.readUInt32LE(r);return e.toString("utf8",r+4,r+4+t)};Je=function hg(e,r,t){return Buffer.isBuffer(e)?e.toString("utf8",r,t):Je(e,r,t)};je=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):Ke(e)};g=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)};or=function ug(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return lr(e,r)};cr=function dg(e){return Buffer.isBuffer(e)||Array.isArray(e)}}if(typeof cptable!=="undefined"){Ye=function(e,r,t){return cptable.utils.decode(1200,e.slice(r,t)).replace(b,"")};Je=function(e,r,t){return cptable.utils.decode(65001,e.slice(r,t))};er=function(e,r){var a=pr(e,r);return a>0?cptable.utils.decode(t,e.slice(r+4,r+4+a-1)):""};tr=function(e,r){var t=2*pr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};nr=function(e,r){var t=pr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t)):""};sr=function(e,r){var t=pr(e,r);return t>0?cptable.utils.decode(65001,e.slice(r+4,r+4+t)):""}}var hr=function(e,r){return e[r]};var ur=function(e,r){return e[r+1]*(1<<8)+e[r]};var dr=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var pr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var vr=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var gr=function(e,r){return e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]};var br=function(e){return(e.match(/../g)||[]).map(function(e){return parseInt(e,16)})};var mr=typeof Buffer!=="undefined"?function(e){return Buffer.isBuffer(e)?new Buffer(e,"hex"):br(e)}:br;function Cr(e,r){var a="",n,i,s=[],f,o,c,h;switch(r){case"dbcs":h=this.l;if(d&&Buffer.isBuffer(this))a=this.slice(this.l,this.l+2*e).toString("utf16le");else for(c=0;c!=e;++c){a+=String.fromCharCode(ur(this,h));h+=2}e*=2;break;case"utf8":a=Je(this,this.l,this.l+e);break;case"utf16le":e*=2;a=Ye(this,this.l,this.l+e);break;case"wstr":if(typeof cptable!=="undefined")a=cptable.utils.decode(t,this.slice(this.l,this.l+2*e));else return Cr.call(this,e,"dbcs");e=2*e;break;case"lpstr":a=er(this,this.l);e=5+a.length;break;case"lpwstr":a=tr(this,this.l);e=5+a.length;if(a[a.length-1]=="\0")e+=2;break;case"lpp4":e=4+pr(this,this.l);a=nr(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+pr(this,this.l);a=sr(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;a="";while((f=hr(this,this.l+e++))!==0)s.push(l(f));a=s.join("");break;case"_wstr":e=0;a="";while((f=ur(this,this.l+e))!==0){s.push(l(f));e+=2}e+=2;a=s.join("");break;case"dbcs-cont":a="";h=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){f=hr(this,h);this.l=h+1;o=Cr.call(this,e-c,f?"dbcs-cont":"sbcs-cont");return s.join("")+o}s.push(l(ur(this,h)));h+=2}a=s.join("");e*=2;break;case"sbcs-cont":a="";h=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){f=hr(this,h);this.l=h+1;o=Cr.call(this,e-c,f?"dbcs-cont":"sbcs-cont");return s.join("")+o}s.push(l(hr(this,h)));h+=1}a=s.join("");break;default:switch(e){case 1:n=hr(this,this.l);this.l++;return n;case 2:n=(r==="i"?dr:ur)(this,this.l);this.l+=2;return n;case 4:;case-4:if(r==="i"||(this[this.l+3]&128)===0){n=(e>0?vr:gr)(this,this.l);this.l+=4;return n}else{i=pr(this,this.l);this.l+=4}return i;case 8:;case-8:if(r==="f"){if(e==8)i=or(this,this.l);else i=or([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0);this.l+=8;return i}else e=8;case 16:a=Ze(this,this.l,e);break;};}this.l+=e;return a}var Er=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var kr=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var wr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function Sr(e,r,t){var a=0,n=0;if(t==="dbcs"){for(n=0;n!=r.length;++n)wr(this,r.charCodeAt(n),this.l+2*n);a=2*r.length}else if(t==="sbcs"){r=r.replace(/[^\x00-\x7F]/g,"_");for(n=0;n!=r.length;++n)this[this.l+n]=r.charCodeAt(n)&255;a=r.length}else if(t==="hex"){for(;n>8}while(this.l>>=8;this[this.l+1]=r&255;break;case 3:a=3;this[this.l]=r&255;r>>>=8;this[this.l+1]=r&255;r>>>=8;this[this.l+2]=r&255;break;case 4:a=4;Er(this,r,this.l);break;case 8:a=8;if(t==="f"){Ge(this,r,this.l);break};case 16:break;case-4:a=4;kr(this,r,this.l);break;}this.l+=a;return this}function Ar(e,r){var t=Ze(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function Br(e,r){e.l=r;e._R=Cr;e.chk=Ar;e._W=Sr}function _r(e,r){e.l+=r}function Tr(e,r){if(typeof console!="undefined")console.log(e.slice(e.l,e.l+r));e.l+=r}function xr(e,r){e.l+=r}function Ir(e){var r=p(e);Br(r,0);return r}function yr(e,r,t){if(!e)return;var a,n,i;Br(e,e.l||0);var s=e.length,f=0,o=0;while(e.la.l)a=a.slice(0,a.l);if(a.length>0)e.push(a);a=null};var i=function c(e){if(a&&e=128?1:0)+1+a;if(a>=128)++i;if(a>=16384)++i;if(a>=2097152)++i;var s=e.next(i);if(n<=127)s._W(1,n);else{s._W(1,(n&127)+128);s._W(1,n>>7)}for(var f=0;f!=4;++f){if(a>=128){s._W(1,(a&127)+128);a>>=7}else{s._W(1,a);break}}if(a>0&&cr(t))e.push(t)}function Or(e,r,t){var a=V(e);if(r.s){if(a.cRel)a.c+=r.s.c;if(a.rRel)a.r+=r.s.r}else{a.c+=r.c;a.r+=r.r}if(!t||t.biff<12){while(a.c>=256)a.c-=256;while(a.r>=65536)a.r-=65536}return a}function Fr(e,r,t){var a=V(e);a.s=Or(a.s,r.s,t);a.e=Or(a.e,r.s,t);return a}function Pr(e){var r=$r(e);if(e.cRel===0)r=Gr(r);if(e.rRel===0)r=Wr(r);return r}function Nr(e,r){if(e.s.r==0&&!e.s.rRel){if(e.e.r==(r.biff>=12?1048575:65535)&&!e.e.rRel){return(e.s.cRel?"":"$")+Xr(e.s.c)+":"+(e.e.cRel?"":"$")+Xr(e.e.c)}}if(e.s.c==0&&!e.s.cRel){if(e.e.c==(r.biff>=12?65535:255)&&!e.e.cRel){return(e.s.rRel?"":"$")+Hr(e.s.r)+":"+(e.e.rRel?"":"$")+Hr(e.e.r)}}return Pr(e.s)+":"+Pr(e.e)}var Lr={};var Mr=function(e,r){var t;if(typeof r!=="undefined")t=r;else if(typeof require!=="undefined"){try{t=undefined}catch(a){t=null}}e.rc4=function(e,r){var t=new Array(256);var a=0,n=0,i=0,s=0;for(n=0;n!=256;++n)t[n]=n;for(n=0;n!=256;++n){i=i+t[n]+e[n%e.length].charCodeAt(0)&255;s=t[n];t[n]=t[i];t[i]=s}n=i=0;var f=Buffer(r.length);for(a=0;a!=r.length;++a){n=n+1&255;i=(i+t[n])%256;s=t[n];t[n]=t[i];t[i]=s;f[a]=r[a]^t[t[n]+t[i]&255]}return f};e.md5=function(e){if(!t)throw new Error("Unsupported crypto");return t.createHash("md5").update(e).digest("hex")}};Mr(Lr,typeof crypto!=="undefined"?crypto:undefined);function Ur(e){return parseInt(zr(e),10)-1}function Hr(e){return""+(e+1)}function Wr(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function zr(e){return e.replace(/\$(\d+)$/,"$1")}function Vr(e){var r=jr(e),t=0,a=0;for(;a!==r.length;++a)t=26*t+r.charCodeAt(a)-64;return t-1}function Xr(e){var r="";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function Gr(e){return e.replace(/^([A-Z])/,"$$$1")}function jr(e){return e.replace(/^\$([A-Z])/,"$1")}function Kr(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Yr(e){var r=Kr(e);return{c:Vr(r[0]),r:Ur(r[1])}}function $r(e){return Xr(e.c)+Hr(e.r)}function Zr(e){return Gr(Wr(e))}function Qr(e){return jr(zr(e))}function Jr(e){var r=e.split(":").map(Yr);return{s:r[0],e:r[r.length-1]}}function qr(e,r){if(typeof r==="undefined"||typeof r==="number"){return qr(e.s,e.e)}if(typeof e!=="string")e=$r(e);if(typeof r!=="string")r=$r(r);return e==r?e:e+":"+r}function et(e){var r={s:{c:0,r:0},e:{c:0,r:0}};var t=0,a=0,n=0;var i=e.length;for(t=0;a26)break;t=26*t+n}r.s.c=--t;for(t=0;a9)break;t=10*t+n}r.s.r=--t;if(a===i||e.charCodeAt(++a)===58){r.e.c=r.s.c;r.e.r=r.s.r;return r}for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-64)<1||n>26)break;t=26*t+n}r.e.c=--t;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-48)<0||n>9)break;t=10*t+n}r.e.r=--t;return r}function rt(e,r){var t=e.t=="d"&&r instanceof Date;if(e.z!=null)try{return e.w=C.format(e.z,t?P(r):r)}catch(a){}try{return e.w=C.format((e.XF||{}).numFmtId||(t?14:0),t?P(r):r)}catch(a){return""+r}}function tt(e,r,t){if(e==null||e.t==null||e.t=="z")return"";if(e.w!==undefined)return e.w;if(e.t=="d"&&!e.z&&t&&t.dateNF)e.z=t.dateNF;if(r==undefined)return rt(e,e.v);return rt(e,r)}function at(e,r){var t=r&&r.sheet?r.sheet:"Sheet1";var a={};a[t]=e;return{SheetNames:[t],Sheets:a}}function nt(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=t.dense?[]:{};var n={s:{c:1e7,r:1e7},e:{c:0,r:0}};for(var i=0;i!=e.length;++i){for(var s=0;s!=e[i].length;++s){if(typeof e[i][s]==="undefined")continue;var f={v:e[i][s]};if(Array.isArray(f.v)){f.f=e[i][s][1];f.v=f.v[0]}if(n.s.r>i)n.s.r=i;if(n.s.c>s)n.s.c=s;if(n.e.r0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}function ot(e,r){return{ich:e._R(2),ifnt:e._R(2)}}function lt(e,r){if(!r)r=Ir(4);r._W(2,e.ich||0);r._W(2,e.ifnt||0);return r}function ct(e,r){var t=e.l;var a=e._R(1);var n=st(e);var i=[];var s={t:n,h:n};if((a&1)!==0){var f=e._R(4);for(var o=0;o!=f;++o)i.push(ot(e));s.r=i}else s.r=[{ich:0,ifnt:0}];e.l=t+r;return s}function ht(e,r){var t=false;if(r==null){t=true;r=Ir(15+4*e.t.length)}r._W(1,0);ft(e.t,r);return t?r.slice(0,r.l):r}var ut=ct;function dt(e,r){var t=false;if(r==null){t=true;r=Ir(23+4*e.t.length)}r._W(1,1);ft(e.t,r);r._W(4,1);lt({ich:0,ifnt:0},r);return t?r.slice(0,r.l):r}function pt(e){var r=e._R(4);var t=e._R(2);t+=e._R(1)<<16;var a=e._R(1);return{c:r,iStyleRef:t}}function vt(e,r){if(r==null)r=Ir(8);r._W(-4,e.c);r._W(3,e.iStyleRef||e.s);r._W(1,0);return r}var gt=st;var bt=ft;function mt(e){var r=e._R(4);return r===0||r===4294967295?"":e._R(r,"dbcs")}function Ct(e,r){var t=false;if(r==null){t=true;r=Ir(127)}r._W(4,e.length>0?e.length:4294967295);if(e.length>0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}var Et=st;var kt=ft;var wt=mt;var St=Ct;function At(e){var r=e.slice(e.l,e.l+4);var t=r[0]&1,a=r[0]&2;e.l+=4;r[0]&=252;var n=a===0?or([0,0,0,0,r[0],r[1],r[2],r[3]],0):vr(r,0)>>2;return t?n/100:n}function Bt(e,r){if(r==null)r=Ir(4);var t=0,a=0,n=e*100;if(e==(e|0)&&e>=-(1<<29)&&e<1<<29){a=1}else if(n==(n|0)&&n>=-(1<<29)&&n<1<<29){a=1;t=1}if(a)r._W(-4,((t?n:e)<<2)+(t+2));else throw new Error("unsupported RkNumber "+e)}function _t(e){var r={s:{},e:{}};r.s.r=e._R(4);r.e.r=e._R(4);r.s.c=e._R(4);r.e.c=e._R(4);return r}function Tt(e,r){if(!r)r=Ir(16);r._W(4,e.s.r);r._W(4,e.e.r);r._W(4,e.s.c);r._W(4,e.e.c);return r}var xt=_t;var It=Tt;function yt(e,r){return e._R(8,"f")}function Rt(e,r){return(r||Ir(8))._W(8,e,"f")}var Dt={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var Ot=R(Dt);function Ft(e,r){var t={};var a=e._R(1);var n=a&1;var i=a>>>1;var s=e._R(1);var f=e._R(2,"i");var o=e._R(1);var l=e._R(1);var c=e._R(1);var h=e._R(1);switch(i){case 0:t.auto=1;break;case 1:t.index=s;var u=aa[s];if(u)t.rgb=df(u);break;case 2:t.rgb=df([o,l,c]);break;case 3:t.theme=s;break;}if(f!=0)t.tint=f>0?f/32767:f/32768;return t}function Pt(e,r){if(!r)r=Ir(8);if(!e||e.auto){r._W(4,0);r._W(4,0);return r}if(e.index){r._W(1,2);r._W(1,e.index)}else if(e.theme){r._W(1,6);r._W(1,e.theme)}else{r._W(1,5);r._W(1,0)}var t=e.tint||0;if(t>0)t*=32767;else if(t<0)t*=32768;r._W(2,t);if(!e.rgb){r._W(2,0);r._W(1,0);r._W(1,0)}else{var a=e.rgb||"FFFFFF";r._W(1,parseInt(a.substr(0,2),16));r._W(1,parseInt(a.substr(2,2),16));r._W(1,parseInt(a.substr(4,2),16));r._W(1,255)}return r}function Nt(e,r,t){var a=e._R(1);e.l++;var n={fItalic:a&2,fStrikeout:a&8,fOutline:a&16,fShadow:a&32,fCondense:a&64,fExtend:a&128};return n}function Lt(e,r){if(!r)r=Ir(2);var t=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);r._W(1,t);r._W(1,0);return r}var Mt=2;var Ut=3;var Ht=11;var Wt=12;var zt=19;var Vt=21;var Xt=30;var Gt=64;var jt=71;var Kt=4096;var Yt=80;var $t=81;var Zt=[Yt,$t];var Qt={1:{n:"CodePage",t:Mt},2:{n:"Category",t:Yt},3:{n:"PresentationFormat",t:Yt},4:{n:"ByteCount",t:Ut},5:{n:"LineCount",t:Ut},6:{n:"ParagraphCount",t:Ut},7:{n:"SlideCount",t:Ut},8:{n:"NoteCount",t:Ut},9:{n:"HiddenCount",t:Ut},10:{n:"MultimediaClipCount",t:Ut},11:{n:"Scale",t:Ht},12:{n:"HeadingPair",t:Kt|Wt},13:{n:"DocParts",t:Kt|Xt},14:{n:"Manager",t:Yt},15:{n:"Company",t:Yt},16:{n:"LinksDirty",t:Ht},17:{n:"CharacterCount",t:Ut},19:{n:"SharedDoc",t:Ht},22:{n:"HLinksChanged",t:Ht},23:{n:"AppVersion",t:Ut,p:"version"},26:{n:"ContentType",t:Yt},27:{n:"ContentStatus",t:Yt},28:{n:"Language",t:Yt},29:{n:"Version",t:Yt},255:{}};var Jt={1:{n:"CodePage",t:Mt},2:{n:"Title",t:Yt},3:{n:"Subject",t:Yt},4:{n:"Author",t:Yt},5:{n:"Keywords",t:Yt},6:{n:"Comments",t:Yt},7:{n:"Template",t:Yt},8:{n:"LastAuthor",t:Yt},9:{n:"RevNumber",t:Yt},10:{n:"EditTime",t:Gt},11:{n:"LastPrinted",t:Gt},12:{n:"CreatedDate",t:Gt},13:{n:"ModifiedDate",t:Gt},14:{n:"PageCount",t:Ut},15:{n:"WordCount",t:Ut},16:{n:"CharCount",t:Ut},17:{n:"Thumbnail",t:jt},18:{n:"ApplicationName",t:Xt},19:{n:"DocumentSecurity",t:Ut},255:{}};var qt={2147483648:{n:"Locale",t:zt},2147483651:{n:"Behavior",t:zt},1919054434:{}};(function(){for(var e in qt)if(qt.hasOwnProperty(e))Qt[e]=Jt[e]=qt[e]})();var ea={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var ra=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function ta(e){return e.map(function(e){return[e>>16&255,e>>8&255,e&255]})}var aa=ta([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var na={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba", +"application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"};var ia=function(){var e={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};x(e).forEach(function(r){if(!e[r].xlsm)e[r].xlsm=e[r].xlsx});x(e).forEach(function(r){x(e[r]).forEach(function(t){na[e[r][t]]=r})});return e}();var sa=D(na);ze.CT="http://schemas.openxmlformats.org/package/2006/content-types";function fa(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""}}function oa(e,r){var t=fa();if(!e||!e.match)return t;var a={};(e.match(oe)||[]).forEach(function(e){var r=he(e);switch(r[0].replace(le,"<")){case"0?t.calcchains[0]:"";t.sst=t.strs.length>0?t.strs[0]:"";t.style=t.styles.length>0?t.styles[0]:"";t.defaults=a;delete t.calcchains;return t}var la=Ue("Types",null,{xmlns:ze.CT,"xmlns:xsd":ze.xsd,"xmlns:xsi":ze.xsi});var ca=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",sa.rels[0]]].map(function(e){return Ue("Default",null,{Extension:e[0],ContentType:e[1]})});function ha(e,r){var t=[],a;t[t.length]=se;t[t.length]=la;t=t.concat(ca);var n=function(n){if(e[n]&&e[n].length>0){a=e[n][0];t[t.length]=Ue("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:ia[n][r.bookType||"xlsx"]})}};var i=function(a){(e[a]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:ia[a][r.bookType||"xlsx"]})})};var s=function(r){(e[r]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:sa[r][0]})})};n("workbooks");i("sheets");i("charts");s("themes");["strs","styles"].forEach(n);["coreprops","extprops","custprops"].forEach(s);s("vba");s("comments");s("drawings");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var ua={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function da(e){var r=e.lastIndexOf("/");return e.substr(0,r+1)+"_rels/"+e.substr(r+1)+".rels"}function pa(e,r){if(!e)return e;if(r.charAt(0)!=="/"){r="/"+r}var t={};var a={};(e.match(oe)||[]).forEach(function(e){var n=he(e);if(n[0]==="2){r[r.length]="";r[1]=r[1].replace("/>",">")}return r.join("")}function ba(e,r,t,a,n){if(!n)n={};if(!e["!id"])e["!id"]={};if(r<0)for(r=1;e["!id"]["rId"+r];++r){}n.Id="rId"+r;n.Type=a;n.Target=t;if(n.Type==ua.HLINK)n.TargetMode="External";if(e["!id"][n.Id])throw new Error("Cannot rewrite rId "+r);e["!id"][n.Id]=n;e[("/"+n.Target).replace("//","/")]=n;return r}var ma="application/vnd.oasis.opendocument.spreadsheet";function Ca(e,r){var t=hp(e);var a;var n;while(a=up.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=he(a[0],false);if(n.path=="/"&&n.type!==ma)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function Ea(e,r){var t=[se];t.push('\n');t.push(' \n');for(var a=0;a\n');t.push("");return t.join("")}function ka(e,r,t){return[' \n',' \n'," \n"].join("")}function wa(e,r){return[' \n',' \n'," \n"].join("")}function Sa(e,r){var t=[se];t.push('\n');for(var a=0;a!=e.length;++a){t.push(ka(e[a][0],e[a][1]));t.push(wa("",e[a][0]))}t.push(ka("","Document","pkg"));t.push("");return t.join("")}var Aa=function(){var e='Sheet'+"JS "+r.version+"";return function t(r,a){return e}}();var Ba=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];ze.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";ua.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var _a=function(){var e=new Array(Ba.length);for(var r=0;r]*>([\\s\\S]*?)")}return e}();function Ta(e){var r={};e=Be(e);for(var t=0;t0)r[a[1]]=n[1];if(a[2]==="date"&&r[a[1]])r[a[1]]=H(r[a[1]])}return r}var xa=Ue("cp:coreProperties",null,{"xmlns:cp":ze.CORE_PROPS,"xmlns:dc":ze.dc,"xmlns:dcterms":ze.dcterms,"xmlns:dcmitype":ze.dcmitype,"xmlns:xsi":ze.xsi});function Ia(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;a[a.length]=t?Ue(e,r,t):Le(e,r)}function ya(e,r){var t=r||{};var a=[se,xa],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)Ia("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:He(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)Ia("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:He(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=Ba.length;++i){var s=Ba[i];var f=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(f===true)f="1";else if(f===false)f="0";else if(typeof f=="number")f=String(f);if(f!=null)Ia(s[0],f,null,a,n)}if(a.length>2){a[a.length]="";a[1]=a[1].replace("/>",">")}return a.join("")}var Ra=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];ze.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";ua.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function Da(e,r,t){var a={};if(!r)r={};e=Be(e);Ra.forEach(function(t){switch(t[2]){case"string":r[t[1]]=(e.match(ye(t[0]))||[])[1];break;case"bool":r[t[1]]=(e.match(ye(t[0]))||[])[1]==="true";break;case"raw":var n=e.match(new RegExp("<"+t[0]+"[^>]*>([\\s\\S]*?)"));if(n&&n.length>0)a[t[1]]=n[1];break;}});if(a.HeadingPairs&&a.TitlesOfParts){var n=Pe(a.HeadingPairs,t);var i=Pe(a.TitlesOfParts,t).map(function(e){return e.v});var s=0,f=0;if(i.length>0)for(var o=0;o!==n.length;o+=2){f=+n[o+1].v;switch(n[o].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Werkbladen":r.Worksheets=f;r.SheetNames=i.slice(s,s+f);break;case"Named Ranges":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":r.NamedRanges=f;r.DefinedNames=i.slice(s,s+f);break;case"Charts":;case"Diagramme":r.Chartsheets=f;r.ChartNames=i.slice(s,s+f);break;}s+=f}}return r}var Oa=Ue("Properties",null,{xmlns:ze.EXT_PROPS,"xmlns:vt":ze.vt});function Fa(e,r){var t=[],a={},n=Ue;if(!e)e={};e.Application="SheetJS";t[t.length]=se;t[t.length]=Oa;Ra.forEach(function(r){if(e[r[1]]===undefined)return;var a;switch(r[2]){case"string":a=String(e[r[1]]);break;case"bool":a=e[r[1]]?"true":"false";break;}if(a!==undefined)t[t.length]=n(r[0],a)});t[t.length]=n("HeadingPairs",n("vt:vector",n("vt:variant","Worksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"}));t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map(function(e){return""+me(e)+""}).join(""),{size:e.Worksheets,baseType:"lpstr"}));if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}ze.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";ua.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var Pa=/<[^>]+>[^<]*/g;function Na(e,r){var t={},a="";var n=e.match(Pa);if(n)for(var i=0;i!=n.length;++i){var s=n[i],f=he(s);switch(f[0]){case"":a=null;break;default:if(s.indexOf("");var l=o[0].substring(4),c=o[1];switch(l){case"lpstr":;case"bstr":;case"lpwstr":t[a]=ve(c);break;case"bool":t[a]=Ae(c,"");break;case"i1":;case"i2":;case"i4":;case"i8":;case"int":;case"uint":t[a]=parseInt(c,10);break;case"r4":;case"r8":;case"decimal":t[a]=parseFloat(c);break;case"filetime":;case"date":t[a]=H(c);break;case"cy":;case"error":t[a]=ve(c);break;default:if(l.slice(-1)=="/")break;if(r.WTF&&typeof console!=="undefined")console.warn("Unexpected",s,l,o);}}else if(s.substr(0,2)==="2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var Ua={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};var Ha=y(Ua);function Wa(e,r,t){r=Ha[r]||r;e[r]=t}function za(e,r){var t=[];x(Ua).map(function(e){for(var r=0;r'+i.join("")+""}function Xa(e){var r=e._R(4),t=e._R(4);return new Date((t/1e7*Math.pow(2,32)+r/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function Ga(e,r,t){var a=e._R(0,"lpstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function ja(e,r,t){var a=e._R(0,"lpwstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function Ka(e,r,t){if(r===31)return ja(e);return Ga(e,r,t)}function Ya(e,r,t){return Ka(e,r,t===false?0:4)}function $a(e,r){if(!r)throw new Error("VtUnalignedString must have positive length");return Ka(e,r,0)}function Za(e){var r=e._R(4);var t=[];for(var a=0;a!=r;++a)t[a]=e._R(0,"lpstr");return t}function Qa(e){return Za(e)}function Ja(e){var r=sn(e,$t);var t=sn(e,Ut);return[r,t]}function qa(e){var r=e._R(4);var t=[];for(var a=0;a!=r/2;++a)t.push(Ja(e));return t}function en(e){return qa(e)}function rn(e,r){var t=e._R(4);var a={};for(var n=0;n!=t;++n){var i=e._R(4);var s=e._R(4);a[i]=e._R(s,r===1200?"utf16le":"utf8").replace(b,"").replace(m,"!")}if(e.l&3)e.l=e.l>>2+1<<2;return a}function tn(e){var r=e._R(4);var t=e.slice(e.l,e.l+r);if((r&3)>0)e.l+=4-(r&3)&3;return t}function an(e){var r={};r.Size=e._R(4);e.l+=r.Size;return r}function nn(e,r){}function sn(e,r,t){var a=e._R(2),n,i=t||{};e.l+=2;if(r!==Wt)if(a!==r&&Zt.indexOf(r)===-1)throw new Error("Expected type "+r+" saw "+a);switch(r===Wt?a:r){case 2:n=e._R(2,"i");if(!i.raw)e.l+=2;return n;case 3:n=e._R(4,"i");return n;case 11:return e._R(4)!==0;case 19:n=e._R(4);return n;case 30:return Ga(e,a,4).replace(b,"");case 31:return ja(e);case 64:return Xa(e);case 65:return tn(e);case 71:return an(e);case 80:return Ya(e,a,!i.raw).replace(b,"");case 81:return $a(e,a).replace(b,"");case 4108:return en(e);case 4126:return Qa(e);default:throw new Error("TypedPropertyValue unrecognized type "+r+" "+a);}}function fn(e,r){var t=e.l;var a=e._R(4);var i=e._R(4);var s=[],f=0;var o=0;var l=-1,c={};for(f=0;f!=i;++f){var h=e._R(4);var u=e._R(4);s[f]=[h,u+t]}var d={};for(f=0;f!=i;++f){if(e.l!==s[f][1]){var p=true;if(f>0&&r)switch(r[s[f-1][0]].t){case 2:if(e.l+2===s[f][1]){e.l+=2;p=false}break;case 80:if(e.l<=s[f][1]){e.l=s[f][1];p=false}break;case 4108:if(e.l<=s[f][1]){e.l=s[f][1];p=false}break;}if(!r&&e.l<=s[f][1]){p=false;e.l=s[f][1]}if(p)throw new Error("Read Error: Expected address "+s[f][1]+" at "+e.l+" :"+f)}if(r){var v=r[s[f][0]];d[v.n]=sn(e,v.t,{raw:true});if(v.p==="version")d[v.n]=String(d[v.n]>>16)+"."+String(d[v.n]&65535);if(v.n=="CodePage")switch(d[v.n]){case 0:d[v.n]=1252;case 874:;case 932:;case 936:;case 949:;case 950:;case 1250:;case 1251:;case 1253:;case 1254:;case 1255:;case 1256:;case 1257:;case 1258:;case 1e4:;case 1200:;case 1201:;case 1252:;case 65e3:;case-536:;case 65001:;case-535:n(o=d[v.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[v.n]);}}else{if(s[f][0]===1){o=d.CodePage=sn(e,Mt);n(o);if(l!==-1){var g=e.l;e.l=s[l][1];c=rn(e,o);e.l=g}}else if(s[f][0]===0){if(o===0){l=f;e.l=s[f+1][1];continue}c=rn(e,o)}else{var b=c[s[f][0]];var m;switch(e[e.l]){case 65:e.l+=4;m=tn(e);break;case 30:e.l+=4;m=Ya(e,e[e.l-4]);break;case 31:e.l+=4;m=Ya(e,e[e.l-4]);break;case 3:e.l+=4;m=e._R(4,"i");break;case 19:e.l+=4;m=e._R(4);break;case 5:e.l+=4;m=e._R(8,"f");break;case 11:e.l+=4;m=un(e,4);break;case 64:e.l+=4;m=H(Xa(e));break;default:throw new Error("unparsed value: "+e[e.l]);}d[b]=m}}}e.l=t+a;return d}function on(e,r){var t=e.content;if(!t)return{};Br(t,0);var a,n,i,s,f=0;t.chk("feff","Byte Order: ");var o=t._R(2);var l=t._R(4);t.chk(_.utils.consts.HEADER_CLSID,"CLSID: ");a=t._R(4);if(a!==1&&a!==2)throw new Error("Unrecognized #Sets: "+a);n=t._R(16);s=t._R(4);if(a===1&&s!==t.l)throw new Error("Length mismatch: "+s+" !== "+t.l);else if(a===2){i=t._R(16);f=t._R(4)}var c=fn(t,r);var h={SystemIdentifier:l};for(var u in c)h[u]=c[u];h.FMTID=n;if(a===1)return h;if(t.l!==f)throw new Error("Length mismatch 2: "+t.l+" !== "+f);var d;try{d=fn(t,null)}catch(p){}for(u in d)h[u]=d[u];h.FMTID=[n,i];return h}function ln(e,r){e._R(r);return null}function cn(e,r){if(!r)r=Ir(e);for(var t=0;t=12?2:1);var i=1,s="sbcs-cont";var f=t;if(a&&a.biff>=8)t=1200;if(!a||a.biff==8){var o=e._R(1);if(o){i=2;s="dbcs-cont"}}else if(a.biff==12){i=2;s="wstr"}var l=n?e._R(n,s):"";t=f;return l}function En(e){var r=t;t=1200;var a=e._R(2),n=e._R(1);var i=n&1,s=n&4,f=n&8;var o=1+(n&1);var l=0,c;var h={};if(f)l=e._R(2);if(s)c=e._R(4);var u=n&1?"dbcs-cont":"sbcs-cont";var d=a===0?"":e._R(a,u);if(f)e.l+=4*l;if(s)e.l+=c;h.t=d;if(!f){h.raw=""+h.t+"";h.r=h.t}t=r;return h}function kn(e,r,t){var a;if(t){if(t.biff>=2&&t.biff<=5)return e._R(r,"sbcs-cont");if(t.biff>=12)return e._R(r,"dbcs-cont")}var n=e._R(1);if(n===0){a=e._R(r,"sbcs-cont")}else{a=e._R(r,"dbcs-cont")}return a}function wn(e,r,t){var a=e._R(t&&t.biff==2?1:2);if(a===0){e.l++;return""}return kn(e,a,t)}function Sn(e,r,t){if(t.biff>5)return wn(e,r,t);var a=e._R(1);if(a===0){e.l++;return""}return e._R(a,"sbcs-cont")}function An(e,r,t){var a=e._R(1);e.l++;var n=e._R(2);e.l+=2;return[a,n]}function Bn(e){var r=e._R(4),t=e.l;var a=false;if(r>24){e.l+=r-24;if(e._R(16)==="795881f43b1d7f48af2c825dc4852763")a=true;e.l=t}var n=e._R((a?r-24:r)>>1,"utf16le").replace(b,"");if(a)e.l+=24;return n}function _n(e,r){var t=e._R(2);var a=e._R(4);var n=e._R(a,"cstr");var i=e._R(2);var s=e._R(2);var f=e._R(4);if(f===0)return n.replace(/\\/g,"/");var o=e._R(4);var l=e._R(2);var c=e._R(o>>1,"utf16le").replace(b,"");return c}function Tn(e,r){var t=e._R(16);r-=16;switch(t){case"e0c9ea79f9bace118c8200aa004ba90b":return Bn(e,r);case"0303000000000000c000000000000046":return _n(e,r);default:throw new Error("Unsupported Moniker "+t);}}function xn(e,r){var t=e._R(4);var a=e._R(t,"utf16le").replace(b,"");return a}function In(e,r){var t=e.l+r;var a=e._R(4);if(a!==2)throw new Error("Unrecognized streamVersion: "+a);var n=e._R(2);e.l+=2;var i,s,f,o,l,c,h;if(n&16)i=xn(e,t-e.l);if(n&128)s=xn(e,t-e.l);if((n&257)===257)f=xn(e,t-e.l);if((n&257)===1)o=Tn(e,t-e.l);if(n&8)l=xn(e,t-e.l);if(n&32)c=e._R(16);if(n&64)h=Xa(e);e.l=t;var u=s||f||o;if(l)u+="#"+l;return{Target:u}}function yn(e,r){var t=e._R(1),a=e._R(1),n=e._R(1),i=e._R(1);return[t,a,n,i]}function Rn(e,r){var t=yn(e,r);t[3]=0;return t}function Dn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);return{r:t,c:a,ixfe:n}}function On(e,r,t,a){if(!a)a=Ir(6);a._W(2,e);a._W(2,r);a._W(2,t||0);return a}function Fn(e){var r=e._R(2);var t=e._R(2);e.l+=8;return{type:r,flags:t}}function Pn(e,r,t){return r===0?"":Sn(e,r,t)}function Nn(e,r,t){var a=t.biff>8?4:2;var n=e._R(a),i=e._R(a,"i"),s=e._R(a,"i");return[n,i,s]}function Ln(e,r){var t=e._R(2);var a=At(e);return[t,a]}function Mn(e,r,t){e.l+=4;r-=4;var a=e.l+r;var n=Cn(e,r,t);var i=e._R(2);a-=e.l;if(i!==a)throw new Error("Malformed AddinUdf: padding = "+a+" != "+i);e.l+=i;return n}function Un(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);var i=e._R(2);return{s:{c:n,r:t},e:{c:i,r:a}}}function Hn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(1);var i=e._R(1);return{s:{c:n,r:t},e:{c:i,r:a}}}var Wn=Hn;function zn(e,r){e.l+=4;var t=e._R(2);var a=e._R(2);var n=e._R(2);e.l+=12;return[a,t,n]}function Vn(e,r){var t={};e.l+=4;e.l+=16;t.fSharedNote=e._R(2);e.l+=4;return t}function Xn(e,r){var t={};e.l+=4;e.cf=e._R(2);return t}function Gn(e,r){e.l+=2;e.l+=e._R(2)}var jn={0:Gn,4:Gn,5:Gn,6:Gn,7:Xn,8:Gn,9:Gn,10:Gn,11:Gn,12:Gn,13:Vn,14:Gn,15:Gn,16:Gn,17:Gn,18:Gn,19:Gn,20:Gn,21:zn};function Kn(e,r,t){var a=e.l+r;var n=[];while(e.l=2){t.dt=e._R(2);e.l-=2}switch(t.BIFFVer){case 1536:;case 1280:;case 2:;case 7:break;default:if(r>6)throw new Error("Unexpected BIFF Ver "+t.BIFFVer);}e._R(r);return t}function $n(e,r,t){var a=1536,n=16;switch(t.bookType){case"biff8":break;case"biff5":a=1280;n=8;break;case"biff4":a=4;n=6;break;case"biff3":a=3;n=6;break;case"biff2":a=2;n=4;break;default:throw new Error("unsupported BIFF version");}var i=Ir(n);i._W(2,a);i._W(2,r);if(n>4)i._W(2,29282);if(n>6)i._W(2,1997);if(n>8){i._W(2,49161);i._W(2,1);i._W(2,1798);i._W(2,0)}return i}function Zn(e,r){if(r===0)return 1200;var t;if((t=e._R(2))!==1200){}return 1200}function Qn(e,r,t){if(t.enc){e.l+=r;return""}var a=e.l;var n=wn(e,0,t);e._R(r+a-e.l);return n}function Jn(e,r){var t=!r||r.biff==8;var a=Ir(t?112:54);a._W(r.biff==8?2:1,7);a._W(1,0);a._W(4,859007059);a._W(4,5458548);while(a.l=8?2:1;var a=Ir(8+t*e.name.length);a._W(4,e.pos);a._W(1,e.hs||0);a._W(1,e.dt);a._W(1,e.name.length);if(r.biff>=8)a._W(1,1);a._W(t*e.name.length,e.name,r.biff<8?"sbcs":"utf16le");return a.slice(0,a.l)}function ri(e,r){var t=e.l+r;var a=e._R(4);var n=e._R(4);var i=[];for(var s=0;s!=n&&e.l>15);n&=32767}var i={Unsynced:a&1,DyZero:(a&2)>>1,ExAsc:(a&4)>>2,ExDsc:(a&8)>>3};return[i,n]}function fi(e,r){var t=e._R(2),a=e._R(2),n=e._R(2),i=e._R(2);var s=e._R(2),f=e._R(2),o=e._R(2);var l=e._R(2),c=e._R(2);return{Pos:[t,a],Dim:[n,i],Flags:s,CurTab:f,FirstTab:o,Selected:l,TabRatio:c}}function oi(e){var r=Ir(18);r._W(2,0);r._W(2,0);r._W(2,29280);r._W(2,17600);r._W(2,56);r._W(2,0);r._W(2,0);r._W(2,1);r._W(2,500);return r}function li(e,r,t){var a={dyHeight:e._R(2),fl:e._R(2)};switch(t&&t.biff||8){case 2:break;case 3:;case 4:e.l+=2;break;default:e.l+=10;break;}a.name=Cn(e,0,t);return a}function ci(e,r){var t=Dn(e);t.isst=e._R(4);return t}function hi(e,r,t){var a=e.l+r;var n=Dn(e,6);if(t.biff==2)e.l++;var i=wn(e,a-e.l,t);n.val=i;return n}function ui(e,r,t,a){var n=!a||a.biff==8;var i=Ir(6+2+ +n+(1+n)*t.length);On(e,r,0,i);i._W(2,t.length);if(n)i._W(1,1);i._W((1+n)*t.length,t,n?"utf16le":"sbcs");return i}function di(e,r,t){var a=e._R(2);var n=Sn(e,0,t);return[a,n]}var pi=Sn;function vi(e,r,t){var a=e.l+r;var n=t.biff==8||!t.biff?4:2;var i=e._R(n),s=e._R(n);var f=e._R(2),o=e._R(2);e.l=a;return{s:{r:i,c:f},e:{r:s,c:o}}}function gi(e,r){var t=r.biff==8||!r.biff?4:2;var a=Ir(2*t+6);a._W(t,e.s.r);a._W(t,e.e.r+1);a._W(2,e.s.c);a._W(2,e.e.c+1);a._W(2,0);return a}function bi(e,r){var t=e._R(2),a=e._R(2);var n=Ln(e);return{r:t,c:a,ixfe:n[0],rknum:n[1]}}function mi(e,r){var t=e.l+r-2;var a=e._R(2),n=e._R(2);var i=[];while(e.l>26];if(!a.cellStyles)return n;n.alc=i&7;n.fWrap=i>>3&1;n.alcV=i>>4&7;n.fJustLast=i>>7&1;n.trot=i>>8&255;n.cIndent=i>>16&15;n.fShrinkToFit=i>>20&1;n.iReadOrder=i>>22&2;n.fAtrNum=i>>26&1;n.fAtrFnt=i>>27&1;n.fAtrAlc=i>>28&1;n.fAtrBdr=i>>29&1;n.fAtrPat=i>>30&1;n.fAtrProt=i>>31&1;n.dgLeft=s&15;n.dgRight=s>>4&15;n.dgTop=s>>8&15;n.dgBottom=s>>12&15;n.icvLeft=s>>16&127;n.icvRight=s>>23&127;n.grbitDiag=s>>30&3;n.icvTop=f&127;n.icvBottom=f>>7&127;n.icvDiag=f>>14&127;n.dgDiag=f>>21&15;n.icvFore=o&127;n.icvBack=o>>7&127;n.fsxButton=o>>14&1;return n}function ki(e,r,t){return Ei(e,r,0,t)}function wi(e,r,t){return Ei(e,r,1,t)}function Si(e,r,t){var a={};a.ifnt=e._R(2);a.numFmtId=e._R(2);a.flags=e._R(2);a.fStyle=a.flags>>2&1;r-=6;a.data=Ei(e,r,a.fStyle,t);return a}function Ai(e,r){e.l+=4;var t=[e._R(2),e._R(2)];if(t[0]!==0)t[0]--;if(t[1]!==0)t[1]--;if(t[0]>7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}function Bi(e){var r=Ir(8);r._W(4,0);r._W(2,e[0]?e[0]+1:0);r._W(2,e[1]?e[1]+1:0);return r}function _i(e,r,t){var a=Dn(e,6);if(t.biff==2)++e.l;var n=bn(e,2);a.val=n;a.t=n===true||n===false?"b":"e";return a}function Ti(e,r,t,a,n){var i=Ir(8);On(e,r,0,i);mn(t,n,i);return i}function xi(e,r){var t=Dn(e,6);var a=yt(e,8);t.val=a;return t}function Ii(e,r,t,a){var n=Ir(14);On(e,r,0,n);Rt(t,n);return n}var yi=Pn;function Ri(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(2);t.sbcch=i;if(i==1025||i==14849)return[i,n];if(i<1||i>255)throw new Error("Unexpected SupBook type: "+i);var s=kn(e,i);var f=[];while(a>e.l)f.push(wn(e));return[i,n,s,f]}function Di(e,r,t){var a=e._R(2);var n;var i={fBuiltIn:a&1,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=Mn(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}var Oi=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function Fi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var f=e._R(t&&t.biff==2?1:2);var o=0;if(!t||t.biff>=5){e.l+=2;o=e._R(2);e.l+=4}var l=kn(e,s,t); +if(n&32)l=Oi[l.charCodeAt(0)];var c=a-e.l;if(t&&t.biff==2)--c;var h=a==e.l||f===0?[]:lh(e,c,t,f);return{chKey:i,Name:l,itab:o,rgce:h}}function Pi(e,r,t){if(t.biff<8)return Ni(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(Nn(e,t.biff>8?12:6,t));var s=[];return a}function Ni(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=Cn(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function Li(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=kn(e,a,t);var s=kn(e,n,t);return[i,s]}function Mi(e,r,t){var a=Hn(e,6);e.l++;var n=e._R(1);r-=8;return[ch(e,r,t),n]}function Ui(e,r,t){var a=Wn(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,fh(e,r,t,a)]}function Hi(e,r){var t=e._R(4)!==0;var a=e._R(4)!==0;var n=e._R(4);return[t,a,n]}function Wi(e,r,t){if(t.biff<8)return;var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var f=Sn(e,0,t);if(t.biff<8)e._R(1);return[{r:a,c:n},f,s,i]}function zi(e,r,t){return Wi(e,r,t)}function Vi(e,r){var t=[];var a=e._R(2);while(a--)t.push(Un(e,r));return t}function Xi(e,r,t){if(t&&t.biff<8)return ji(e,r,t);var a=zn(e,22);var n=Kn(e,r-22,a[1]);return{cmo:a,ft:n}}var Gi=[];Gi[8]=function(e,r,t){var a=e.l+r;e.l+=10;var n=e._R(2);e.l+=4;var i=e._R(2);e.l+=2;var s=e._R(2);e.l+=4;var f=e._R(1);e.l+=f;e.l=a;return{fmt:n}};function ji(e,r,t){var a=e._R(4);var n=e._R(2);var i=e._R(2);var s=e._R(2);var f=e._R(2);var o=e._R(2);var l=e._R(2);var c=e._R(2);var h=e._R(2);var u=e._R(2);var d=e._R(2);var p=e._R(2);var v=e._R(2);e.l+=6;r-=36;var g=[];g.push((Gi[n]||_r)(e,r,t));return{cmo:[i,n,s],ft:g}}function Ki(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=An(e,6,t);var f=e._R(2);var o=e._R(2);var l=pn(e,2);var c=e._R(2);e.l+=c;for(var h=1;h=(u?f:2*f))break}if(n.length!==f&&n.length!==f*2){throw new Error("cchText: "+f+" != "+n.length)}e.l=a+r;return{t:n}}catch(p){e.l=a+r;return{t:n}}}function Yi(e,r){var t=Un(e,8);e.l+=16;var a=In(e,r-24);return[t,a]}function $i(e,r){var t=e.l+r;e._R(2);var a=Un(e,8);var n=e._R((r-10)/2,"dbcs-cont");n=n.replace(b,"");return[a,n]}function Zi(e,r){var t=[],a;a=e._R(2);t[0]=ea[a]||a;a=e._R(2);t[1]=ea[a]||a;return t}function Qi(e){if(!e)e=Ir(4);e._W(2,1);e._W(2,1);return e}function Ji(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Rn(e,8));return a}function qi(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Rn(e,8));return a}function es(e,r){e.l+=2;var t={cxfs:0,crc:0};t.cxfs=e._R(2);t.crc=e._R(4);return t}function rs(e,r,t){if(!t.cellStyles)return _r(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var f=e._R(a);var o=e._R(2);if(a==2)e.l+=2;return{s:n,e:i,w:s,ixfe:f,flags:o}}function ts(e,r,t){var a={};e.l+=16;a.header=yt(e,8);a.footer=yt(e,8);e.l+=2;return a}function as(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function ns(e){var r=Ir(2*e);for(var t=0;t0){if(n[n.l]===42){n.l+=d;continue}++n.l;a[++w]=[];S=0;for(S=0;S!=m.length;++S){var A=n.slice(n.l,n.l+m[S].len);n.l+=m[S].len;Br(A,0);var B=cptable.utils.decode(b,A);switch(m[S].type){case"C":a[w][S]=cptable.utils.decode(b,A);a[w][S]=a[w][S].trim();break;case"D":if(B.length===8)a[w][S]=new Date(+B.substr(0,4),+B.substr(4,2)-1,+B.substr(6,2));else a[w][S]=B;break;case"F":a[w][S]=parseFloat(B.trim());break;case"+":;case"I":a[w][S]=o?A._R(-4,"i")^2147483648:A._R(4,"i");break;case"L":switch(B.toUpperCase()){case"Y":;case"T":a[w][S]=true;break;case"N":;case"F":a[w][S]=false;break;case" ":;case"?":a[w][S]=false;break;default:throw new Error("DBF Unrecognized L:|"+B+"|");}break;case"M":if(!s)throw new Error("DBF Unexpected MEMO for type "+i.toString(16));a[w][S]="##MEMO##"+(o?parseInt(B.trim(),10):A._R(4));break;case"N":a[w][S]=+B.replace(/\u0000/g,"").trim();break;case"@":a[w][S]=new Date(A._R(-8,"f")-621356832e5);break;case"T":a[w][S]=new Date((A._R(4)-2440588)*864e5+A._R(4));break;case"Y":a[w][S]=A._R(4,"i")/1e4;break;case"O":a[w][S]=-A._R(-8,"f");break;case"B":if(f&&m[S].len==8){a[w][S]=A._R(8,"f");break};case"G":;case"P":A.l+=m[S].len;break;case"0":if(m[S].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+m[S].type);}}}if(i!=2)if(n.l0)switch(m){case"ID":break;case"E":break;case"B":break;case"O":break;case"P":if(b[1].charAt(0)=="P")o.push(g.substr(3).replace(/;;/g,";"));break;case"C":for(s=1;s0){h[a].hpt=p;h[a].hpx=Of(p)}else if(p===0)h[a].hidden=true;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+g);}if(w<1)l=null;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+g);}}if(h.length>0)c["!rows"]=h;if(u.length>0)c["!cols"]=u;return[f,c]}function t(r,t){var a=e(r,t);var n=a[0],i=a[1];var s=nt(n,t);x(i).forEach(function(e){s[e]=i[e]});return s}function a(e,r){return at(t(e,r),r)}function n(e,r,t,a,n){var i="C;Y"+(t+1)+";X"+(a+1)+";K";switch(e.t){case"n":i+=e.v||0;if(e.f&&!e.F)i+=";E"+dl(e.f,{r:t,c:a});break;case"b":i+=e.v?"TRUE":"FALSE";break;case"e":i+=e.w||e.v;break;case"d":i+='"'+(e.w||e.v)+'"';break;case"s":i+='"'+e.v.replace(/"/g,"")+'"';break;}return i}function i(e,r){r.forEach(function(r,t){var a="F;W"+(t+1)+" "+(t+1)+" ";if(r.hidden)a+="0";else{if(typeof r.width=="number")r.wpx=kf(r.width);if(typeof r.wpx=="number")r.wch=wf(r.wpx);if(typeof r.wch=="number")a+=Math.round(r.wch)}if(a.charAt(a.length-1)!=" ")e.push(a)})}function s(e,r){r.forEach(function(r,t){var a="F;";if(r.hidden)a+="M0;";else if(r.hpt)a+="M"+20*r.hpt+";";else if(r.hpx)a+="M"+20*Df(r.hpx)+";";if(a.length>2)e.push(a+"R"+(t+1))})}function f(e,r){var t=["ID;PWXL;N;E"],a=[];var f=et(e["!ref"]),o;var l=Array.isArray(e);var c="\r\n";t.push("P;PGeneral");t.push("F;P0;DG0G8;M255");if(e["!cols"])i(t,e["!cols"]);if(e["!rows"])s(t,e["!rows"]);t.push("B;Y"+(f.e.r-f.s.r+1)+";X"+(f.e.c-f.s.c+1)+";D"+[f.s.c,f.s.r,f.e.c,f.e.r].join(" "));for(var h=f.s.r;h<=f.e.r;++h){for(var u=f.s.c;u<=f.e.c;++u){var d=$r({r:h,c:u});o=l?(e[h]||[])[u]:e[d];if(!o||o.v==null&&(!o.f||o.F))continue;a.push(n(o,e,h,u,r))}}return t.join(c)+c+a.join(c)+c+"E"+c}return{to_workbook:a,to_sheet:t,from_sheet:f}}();var Es=function(){function e(e,t){switch(t.type){case"base64":return r(u.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=e.split("\n"),a=-1,n=-1,i=0,s=[];for(;i!==t.length;++i){if(t[i].trim()==="BOT"){s[++a]=[];n=0;continue}if(a<0)continue;var f=t[i].trim().split(",");var o=f[0],l=f[1];++i;var c=t[i].trim();switch(+o){case-1:if(c==="BOT"){s[++a]=[];n=0;continue}else if(c!=="EOD")throw new Error("Unrecognized DIF special command "+c);break;case 0:if(c==="TRUE")s[a][n]=true;else if(c==="FALSE")s[a][n]=false;else if(!isNaN(G(l)))s[a][n]=G(l);else if(!isNaN(j(l).getDate()))s[a][n]=H(l);else s[a][n]=l;++n;break;case 1:c=c.substr(1,c.length-2);s[a][n++]=c!==""?c:null;break;}if(c==="EOD")break}return s}function t(r,t){return nt(e(r,t),t)}function a(e,r){return at(t(e,r),r)}var n=function(){var e=function t(e,r,a,n,i){e.push(r);e.push(a+","+n);e.push('"'+i.replace(/"/g,'""')+'"')};var r=function a(e,r,t,n){e.push(r+","+t);e.push(r==1?'"'+n.replace(/"/g,'""')+'"':n)};return function n(t,a){var n=[];var i=et(t["!ref"]),s;var f=Array.isArray(t);e(n,"TABLE",0,1,"sheetjs");e(n,"VECTORS",0,i.e.r-i.s.r+1,"");e(n,"TUPLES",0,i.e.c-i.s.c+1,"");e(n,"DATA",0,0,"");for(var o=i.s.r;o<=i.e.r;++o){r(n,-1,0,"BOT");for(var l=i.s.c;l<=i.e.c;++l){var c=$r({r:o,c:l});s=f?(t[o]||[])[l]:t[c];if(!s){r(n,1,0,"");continue}switch(s.t){case"n":var u=h?s.w:s.v;if(!u&&s.v!=null)u=s.v;if(u==null){if(h&&s.f&&!s.F)r(n,1,0,"="+s.f);else r(n,1,0,"")}else r(n,0,u,"V");break;case"b":r(n,0,s.v?1:0,s.v?"TRUE":"FALSE");break;case"s":r(n,1,0,!h||isNaN(s.v)?s.v:'="'+s.v+'"');break;case"d":if(!s.w)s.w=C.format(s.z||C._table[14],P(H(s.v)));if(h)r(n,0,s.w,"V");else r(n,1,0,s.w);break;default:r(n,1,0,"");}}}r(n,-1,0,"EOD");var d="\r\n";var p=n.join(d);return p}}();return{to_workbook:a,to_sheet:t,from_sheet:n}}();var ks=function(){function e(e,r,t,a,n){if(n.raw)r[t][a]=e;else if(e==="TRUE")r[t][a]=true;else if(e==="FALSE")r[t][a]=false;else if(e===""){}else if(!isNaN(G(e)))r[t][a]=G(e);else if(!isNaN(j(e).getDate()))r[t][a]=H(e);else r[t][a]=e}function r(r,t){var a=t||{};var n=[];if(!r||r.length===0)return n;var i=r.split(/[\r\n]/);var s=i.length-1;while(s>=0&&i[s].length===0)--s;var f=10,o=0;var l=0;for(;l<=s;++l){o=i[l].indexOf(" ");if(o==-1)o=i[l].length;else o++;f=Math.max(f,o)}for(l=0;l<=s;++l){n[l]=[];var c=0;e(i[l].slice(0,f).trim(),n,l,c,a);for(c=1;c<=(i[l].length-f)/10+1;++c)e(i[l].slice(f+(c-1)*10,f+c*10).trim(),n,l,c,a)}return n}var t={44:",",9:"\t",59:";"};var a={44:3,9:2,59:1};function n(e){var r={},n=false,i=0,s=0;for(;i0)b();i["!ref"]=qr(s);return i}function s(e,t){if(e.substr(0,4)=="sep=")return i(e,t);if(e.indexOf("\t")>=0||e.indexOf(",")>=0)return i(e,t);return nt(r(e,t),t)}function f(e,r){var t="",a=r.type=="string"?[0,0,0,0]:Av(e,r);switch(r.type){case"base64":t=u.decode(e);break;case"binary":t=e;break;case"buffer":t=e.toString("binary");break;case"array":t=W(e);break;case"string":t=e;break;default:throw new Error("Unrecognized type "+r.type);}if(a[0]==239&&a[1]==187&&a[2]==191)t=Be(t.slice(3));return s(t,r)}function o(e,r){return at(f(e,r),r)}function l(e,r){var t=[];var a=et(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){var f=[];for(var o=a.s.c;o<=a.e.c;++o){var l=$r({r:s,c:o});n=i?(e[s]||[])[o]:e[l];if(!n||n.v==null){f.push(" ");continue}var c=(n.w||(tt(n),n.w)||"").substr(0,10);while(c.length<10)c+=" ";f.push(c+(o===0?" ":""))}t.push(f.join(""))}return t.join("\n")}return{to_workbook:o,to_sheet:f,from_sheet:l}}();function ws(e,r){var t=r||{},a=!!t.WTF;t.WTF=true;try{var n=Cs.to_workbook(e,t);t.WTF=a;return n}catch(i){t.WTF=a;if(!i.message.match(/SYLK bad record ID/)&&a)throw i;return ks.to_workbook(e,r)}}var Ss=function(){function e(e,r,t){if(!e)return;Br(e,e.l||0);var a=t.Enum||k;while(e.l=4096)a.qpro=true;break;case 6:l=e;break;case 15:if(!a.qpro)e[1].v=e[1].v.substr(1);case 13:;case 14:;case 16:;case 51:if(c==14&&(e[2]&112)==112&&(e[2]&15)>1&&(e[2]&15)<15){e[1].z=a.dateNF||C._table[14];if(a.cellDates){e[1].t="d";e[1].v=N(e[1].v)}}if(a.dense){if(!n[e[0].r])n[e[0].r]=[];n[e[0].r][e[0].c]=e[1]}else n[$r(e[0])]=e[1];break;}else switch(c){case 22:e[1].v=e[1].v.substr(1);case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>s){n["!ref"]=qr(l);f[i]=n;n=a.dense?[]:{};l={s:{r:0,c:0},e:{r:0,c:0}};s=e[3];i="Sheet"+(s+1);o.push(i)}n[$r(e[0])]=e[1];if(l.e.c>1;if(t[1].v&1){switch(a&7){case 1:a=(a>>3)*500;break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(a&7);}}t[1].v=a;return t}function p(e,r){var t=l(e,r);var a=e._R(4);var n=e._R(4);var i=e._R(2);if(i==65535){t[1].v=0;return t}var s=i&32768;i=(i&32767)-16446;t[1].v=(i>0?n<>>-i)+(i>-32?a<>>-(i+32));return t}function g(e,r){var t=p(e,14);e.l+=r-14;return t}function b(e,r){var t=l(e,r);var a=e._R(4);t[1].v=a>>6;return t}function m(e,r){var t=l(e,r);var a=e._R(8,"f");t[1].v=a;return t}function E(e,r){var t=m(e,14);e.l+=r-10;return t}var k={0:{n:"BOF",f:pn},1:{n:"EOF",f:_r},2:{n:"CALCMODE",f:_r},3:{n:"CALCORDER",f:_r},4:{n:"SPLIT",f:_r},5:{n:"SYNC",f:_r},6:{n:"RANGE",f:a},7:{n:"WINDOW1",f:_r},8:{n:"COLW1",f:_r},9:{n:"WINTWO",f:_r},10:{n:"COLW2",f:_r},11:{n:"NAME",f:_r},12:{n:"BLANK",f:_r},13:{n:"INTEGER",f:s},14:{n:"NUMBER",f:f},15:{n:"LABEL",f:i},16:{n:"FORMULA",f:o},24:{n:"TABLE",f:_r},25:{n:"ORANGE",f:_r},26:{n:"PRANGE",f:_r},27:{n:"SRANGE",f:_r},28:{n:"FRANGE",f:_r},29:{n:"KRANGE1",f:_r},32:{n:"HRANGE",f:_r},35:{n:"KRANGE2",f:_r},36:{n:"PROTEC",f:_r},37:{n:"FOOTER",f:_r},38:{n:"HEADER",f:_r},39:{n:"SETUP",f:_r},40:{n:"MARGINS",f:_r},41:{n:"LABELFMT",f:_r},42:{n:"TITLES",f:_r},43:{n:"SHEETJS",f:_r},45:{n:"GRAPH",f:_r},46:{n:"NGRAPH",f:_r},47:{n:"CALCCOUNT",f:_r},48:{n:"UNFORMATTED",f:_r},49:{n:"CURSORW12",f:_r},50:{n:"WINDOW",f:_r},51:{n:"STRING",f:i},55:{n:"PASSWORD",f:_r},56:{n:"LOCKED",f:_r},60:{n:"QUERY",f:_r},61:{n:"QUERYNAME",f:_r},62:{n:"PRINT",f:_r},63:{n:"PRINTNAME",f:_r},64:{n:"GRAPH2",f:_r},65:{n:"GRAPHNAME",f:_r},66:{n:"ZOOM",f:_r},67:{n:"SYMSPLIT",f:_r},68:{n:"NSROWS",f:_r},69:{n:"NSCOLS",f:_r},70:{n:"RULER",f:_r},71:{n:"NNAME",f:_r},72:{n:"ACOMM",f:_r},73:{n:"AMACRO",f:_r},74:{n:"PARSE",f:_r},255:{n:"",f:_r}};var w={0:{n:"BOF",f:_r},1:{n:"EOF",f:_r},3:{n:"??",f:_r},4:{n:"??",f:_r},5:{n:"??",f:_r},6:{n:"??",f:_r},7:{n:"??",f:_r},9:{n:"??",f:_r},10:{n:"??",f:_r},11:{n:"??",f:_r},12:{n:"??",f:_r},14:{n:"??",f:_r},15:{n:"??",f:_r},16:{n:"??",f:_r},17:{n:"??",f:_r},18:{n:"??",f:_r},19:{n:"??",f:_r},21:{n:"??",f:_r},22:{n:"LABEL16",f:h},23:{n:"NUMBER17",f:p},24:{n:"NUMBER18",f:d},25:{n:"FORMULA19",f:g},26:{n:"??",f:_r},27:{n:"??",f:_r},28:{n:"??",f:_r},29:{n:"??",f:_r},30:{n:"??",f:_r},31:{n:"??",f:_r},33:{n:"??",f:_r},37:{n:"NUMBER25",f:b},39:{n:"NUMBER27",f:m},40:{n:"FORMULA28",f:E},255:{n:"",f:_r}};return{to_workbook:r}}();var As={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var Bs=function pg(){var e=ye("t"),r=ye("rPr"),t=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/,n=/\r\n/g;var i=function f(e,r,t){var a={},n=65001,i="";var s=e.match(oe),f=0;if(s)for(;f!=s.length;++f){var o=he(s[f]);switch(o[0].replace(/\w*:/g,"")){case"":;case"":a.shadow=1;break;case"":break;case"":;case"":a.outline=1;break;case"":break;case"":;case"":a.strike=1;break;case"":break;case"":;case"":a.u=1;break;case"":break;case"":;case"":a.b=1;break;case"":break;case"":;case"":a.i=1;break;case"":break;case"');if(a.b){r.push("");t.push("")}if(a.i){r.push("");t.push("")}if(a.strike){r.push("");t.push("")}if(i=="superscript")i="sup";else if(i=="subscript")i="sub";if(i!=""){r.push("<"+i+">");t.push("")}t.push("");return n};function s(t){var a=[[],"",[]];var s=t.match(e),f=65001;if(!T(s))return"";a[1]=s[1];var o=t.match(r);if(T(o))f=i(o[1],a[0],a[2]);return a[0].join("")+a[1].replace(n,"
    ")+a[2].join("")}return function o(e){return e.replace(t,"").split(a).map(s).join("")}}();var _s=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ts=/<(?:\w+:)?r>/;var xs=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Is(e,r){var t=r?r.cellHTML:true;var a={};if(!e)return null;var n;if(e.match(/^\s*<(?:\w+:)?t[^>]*>/)){a.t=ve(Be(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||""));a.r=Be(e);if(t)a.h=ke(a.t)}else if(n=e.match(Ts)){a.r=Be(e);a.t=ve(Be((e.replace(xs,"").match(_s)||[]).join("").replace(oe,"")));if(t)a.h=Bs(a.r)}return a}var ys=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/;var Rs=/<(?:\w+:)?(?:si|sstItem)>/g;var Ds=/<\/(?:\w+:)?(?:si|sstItem)>/;function Os(e,r){var t=[],a="";if(!e)return t;var n=e.match(ys);if(T(n)){a=n[2].replace(Rs,"").split(Ds);for(var i=0;i!=a.length;++i){var s=Is(a[i].trim(),r);if(s!=null)t[t.length]=s}n=he(n[1]);t.Count=n.count;t.Unique=n.uniqueCount}return t}ua.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Fs=/^\s|\s$|[\t\n\r]/;function Ps(e,r){if(!r.bookSST)return"";var t=[se];t[t.length]=Ue("sst",null,{xmlns:ze.main[0],count:e.Count,uniqueCount:e.Unique});for(var a=0;a!=e.length;++a){if(e[a]==null)continue;var n=e[a];var i="";if(n.r)i+=n.r;else{i+=""}i+="";t[t.length]=i}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Ns(e,r){return[e._R(4),e._R(4)]}function Ls(e,r){var t=[];var a=false;yr(e,function n(e,i,s){switch(s){case 159:t.Count=e[0];t.Unique=e[1];break;case 19:t.push(e);break;case 160:return true;case 35:a=true;break;case 36:a=false;break;default:if(i.indexOf("Begin")>0){}else if(i.indexOf("End")>0){}if(!a||r.WTF)throw new Error("Unexpected record "+s+" "+i);}});return t}function Ms(e,r){if(!r)r=Ir(8);r._W(4,e.Count);r._W(4,e.Unique);return r}var Us=ht;function Hs(e,r){var t=Rr();Dr(t,"BrtBeginSst",Ms(e));for(var a=0;a=4)e.l+=r-4;return t}function Vs(e,r){var t={};t.id=e._R(0,"lpp4");t.R=zs(e,4);t.U=zs(e,4);t.W=zs(e,4);return t}function Xs(e){var r=e._R(4);var t=e.l+r-4;var a={};var n=e._R(4);var i=[];while(n-- >0){var s={};s.t=e._R(4);s.v=e._R(0,"lpp4");i.push(s)}a.name=e._R(0,"lpp4");a.comps=i;return a}function Gs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(Xs(e));return t}function js(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(e._R(0,"lpp4"));return t}function Ks(e,r){var t={};var a=e._R(4);var n=e.l+a-4;e.l+=4;t.id=e._R(0,"lpp4");t.name=e._R(0,"lpp4");t.R=zs(e,4);t.U=zs(e,4);t.W=zs(e,4);return t}function Ys(e,r){var t=Ks(e);t.ename=e._R(0,"8lpp4");t.blksz=e._R(4);t.cmode=e._R(4);if(e._R(4)!=4)throw new Error("Bad !Primary record");return t}function $s(e,r){var t=e.l+r;var a={};a.Flags=e._R(4)&63;e.l+=4;a.AlgID=e._R(4);var n=false;switch(a.AlgID){case 26126:;case 26127:;case 26128:n=a.Flags==36;break;case 26625:n=a.Flags==4;break;case 0:n=a.Flags==16||a.Flags==4||a.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+a.AlgID;}if(!n)throw new Error("Encryption Flags/AlgID mismatch");a.AlgIDHash=e._R(4);a.KeySize=e._R(4);a.ProviderType=e._R(4);e.l+=8;a.CSPName=e._R(t-e.l>>1,"utf16le").slice(0,-1);e.l=t;return a}function Zs(e,r){var t={};e.l+=4;t.Salt=e.slice(e.l,e.l+16);e.l+=16;t.Verifier=e.slice(e.l,e.l+16);e.l+=16;var a=e._R(4);t.VerifierHash=e.slice(e.l,e.l+a);e.l+=a;return t}function Qs(e,r){var t=zs(e);switch(t.Minor){case 2:return[t.Minor,Js(e,t)];case 3:return[t.Minor,qs(e,t)];case 4:return[t.Minor,ef(e,t)];}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}function Js(e,r){var t=e._R(4);if((t&63)!=36)throw new Error("EncryptionInfo mismatch");var a=e._R(4);var n=e.l+a;var i=$s(e,a);var s=Zs(e,e.length-e.l);return{t:"Std",h:i,v:s}}function qs(e,r){throw new Error("File is password-protected: ECMA-376 Extensible")}function ef(e,r){e.l+=4;return e._R(e.length-e.l,"utf8")}function rf(e,r){var t={};var a=t.EncryptionVersionInfo=zs(e,4);r-=4;if(a.Minor!=2)throw new Error("unrecognized minor version code: "+a.Minor);if(a.Major>4||a.Major<2)throw new Error("unrecognized major version code: "+a.Major);t.Flags=e._R(4);r-=4;var n=e._R(4);r-=4;t.EncryptionHeader=$s(e,n);r-=n;t.EncryptionVerifier=Zs(e,r);return t}function tf(e,r){var t={};var a=t.EncryptionVersionInfo=zs(e,4);r-=4;if(a.Major!=1||a.Minor!=1)throw"unrecognized version code "+a.Major+" : "+a.Minor;t.Salt=e._R(16);t.EncryptedVerifier=e._R(16);t.EncryptedVerifierHash=e._R(16);return t}function af(e){var r=0,t;var a=Ws(e);var n=a.length+1,i,s;var f,o,l;t=p(n);t[0]=a.length;for(i=1;i!=n;++i)t[i]=a[i-1];for(i=n-1;i>=0;--i){s=t[i];f=(r&16384)===0?0:1;o=r<<1&32767;l=f|o;r=l^s}return r^52811}var nf=function(){var e=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0];var r=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163];var t=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628];var a=function(e){return(e/2|e*128)&255};var n=function(e,r){return a(e^r)};var i=function(e){var a=r[e.length-1];var n=104;for(var i=e.length-1;i>=0;--i){var s=e[i];for(var f=0;f!=7;++f){if(s&64)a^=t[n];s*=2;--n}}return a};return function(r){var t=Ws(r);var a=i(t);var s=t.length;var f=p(16);for(var o=0;o!=16;++o)f[o]=0;var l,c,h;if((s&1)===1){l=a>>8;f[s]=n(e[0],l);--s;l=a&255;c=t[t.length-1];f[s]=n(c,l)}while(s>0){--s;l=a>>8;f[s]=n(t[s],l);--s;l=a&255;f[s]=n(t[s],l)}s=15;h=15-t.length;while(h>0){l=a>>8;f[s]=n(e[h],l);--s;--h;l=a&255;f[s]=n(t[s],l);--s;--h}return f}}();var sf=function(e,r,t,a,n){if(!n)n=r;if(!a)a=nf(e);var i,s;for(i=0;i!=r.length;++i){s=r[i];s^=a[t];s=(s>>5|s<<3)&255;n[i]=s;++t}return[n,t,a]};var ff=function(e){var r=0,t=nf(e);return function(e){var a=sf("",e,r,t);r=a[1];return a[0]}};function of(e,r,t,a){var n={key:pn(e),verificationBytes:pn(e)};if(t.password)n.verifier=af(t.password);a.valid=n.verificationBytes===n.verifier;if(a.valid)a.insitu=ff(t.password);return n}function lf(e,r,t){var a=t||{};a.Info=e._R(2);e.l-=2;if(a.Info===1)a.Data=tf(e,r);else a.Data=rf(e,r); +return a}function cf(e,r,t){var a={Type:t.biff>=8?e._R(2):0};if(a.Type)lf(e,r-2,a);else of(e,r-2,t,a);return a}var hf=function(){function e(e,t){switch(t.type){case"base64":return r(u.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(W(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=r||{};var a={};var n={s:{c:0,r:0},e:{c:0,r:0}};if(!e.match(/\\trowd/))throw new Error("RTF missing table");a["!ref"]=qr(n);return a}function t(r,t){return at(e(r,t),t)}function a(e,r){var t=["{\\rtf1\\ansi"];var a=et(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){t.push("\\trowd\\trautofit1");for(var f=a.s.c;f<=a.e.c;++f)t.push("\\cellx"+(f+1));t.push("\\pard\\intbl");for(f=a.s.c;f<=a.e.c;++f){var o=$r({r:s,c:f});n=i?(e[s]||[])[f]:e[o];if(!n||n.v==null&&(!n.f||n.F))continue;t.push(" "+(n.w||(tt(n),n.w)));t.push("\\cell")}t.push("\\pard\\intbl\\row")}return t.join("")+"}"}return{to_workbook:t,to_sheet:e,from_sheet:a}}();function uf(e){var r=e.substr(e[0]==="#"?1:0,6);return[parseInt(r.substr(0,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(4,2),16)]}function df(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().substr(1)}function pf(e){var r=e[0]/255,t=e[1]/255,a=e[2]/255;var n=Math.max(r,t,a),i=Math.min(r,t,a),s=n-i;if(s===0)return[0,0,r];var f=0,o=0,l=n+i;o=s/(l>1?2-l:l);switch(n){case r:f=((t-a)/s+6)%6;break;case t:f=(a-r)/s+2;break;case a:f=(r-t)/s+4;break;}return[f/6,o,l/2]}function vf(e){var r=e[0],t=e[1],a=e[2];var n=t*2*(a<.5?a:1-a),i=a-n/2;var s=[i,i,i],f=6*r;var o;if(t!==0)switch(f|0){case 0:;case 6:o=n*f;s[0]+=n;s[1]+=o;break;case 1:o=n*(2-f);s[0]+=o;s[1]+=n;break;case 2:o=n*(f-2);s[1]+=n;s[2]+=o;break;case 3:o=n*(4-f);s[1]+=o;s[2]+=n;break;case 4:o=n*(f-4);s[2]+=n;s[0]+=o;break;case 5:o=n*(6-f);s[2]+=o;s[0]+=n;break;}for(var l=0;l!=3;++l)s[l]=Math.round(s[l]*255);return s}function gf(e,r){if(r===0)return e;var t=pf(uf(e));if(r<0)t[2]=t[2]*(1+r);else t[2]=1-(1-t[2])*(1-r);return df(vf(t))}var bf=6,mf=15,Cf=1,Ef=bf;function kf(e){return Math.floor((e+Math.round(128/Ef)/256)*Ef)}function wf(e){return Math.floor((e-5)/Ef*100+.5)/100}function Sf(e){return Math.round((e*Ef+5)/Ef*256)/256}function Af(e){return((e-5)/Ef*100+.5)/100}function Bf(e){return(e*Ef+5)/Ef*256/256}function _f(e){return Sf(wf(kf(e)))}function Tf(e){var r=Math.abs(e-_f(e)),t=Ef;if(r>.005)for(Ef=Cf;Ef.5)t--;if(Math.abs(t)":;case"":break;case"":;case"":n={};if(t.diagonalUp){n.diagonalUp=t.diagonalUp}if(t.diagonalDown){n.diagonalDown=t.diagonalDown}r.Borders.push(n);break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in borders");}})}function Nf(e,r,t,a){r.Fills=[];var n={};e[0].match(oe).forEach(function(e){var t=he(e);switch(t[0]){case"":;case"":break;case"":;case"":n={};r.Fills.push(n);break;case"":break;case"":break;case"":r.Fills.push(n);n={};break;case"":if(t.patternType)n.patternType=t.patternType;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":break;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in fills");}})}function Lf(e,r,t,a){r.Fonts=[];var n={};e[0].match(oe).forEach(function(e){var i=he(e);switch(i[0]){case"":;case"":break;case"":break;case"
    ":;case"":r.Fonts.push(n);n={};break;case"":;case"":break;case"":n.bold=1;break;case"":n.italic=1;break;case"":n.underline=1;break;case"":n.strike=1;break;case"":n.outline=1;break;case"":n.shadow=1;break;case"":n.condense=1;break;case"":n.extend=1;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+i[0]+" in fonts");}})}function Mf(e,r,t){r.NumberFmt=[];var a=x(C._table);for(var n=0;n":;case"":;case"":break;case"0){if(o>392){for(o=392;o>60;--o)if(r.NumberFmt[o]==null)break;r.NumberFmt[o]=f}C.load(f,o)}}break;case"":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function Uf(e,r){var t=[""];[[5,8],[23,26],[41,44],[50,392]].forEach(function(r){for(var a=r[0];a<=r[1];++a)if(e[a]!=null)t[t.length]=Ue("numFmt",null,{numFmtId:a,formatCode:me(e[a])})});if(t.length===1)return"";t[t.length]="";t[0]=Ue("numFmts",null,{count:t.length-2}).replace("/>",">");return t.join("")}var Hf=["numFmtId","fillId","fontId","borderId","xfId"];var Wf=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function zf(e,r,t){r.CellXf=[];var a;e[0].match(oe).forEach(function(e){var n=he(e),i=0;switch(n[0]){case"":;case"":;case"":break;case"":a=n;delete a[0];for(i=0;i392){for(i=392;i>60;--i)if(r.NumberFmt[a.numFmtId]==r.NumberFmt[i]){a.numFmtId=i;break}}r.CellXf.push(a);break;case"":break;case"":var s={};if(n.vertical)s.vertical=n.vertical;if(n.horizontal)s.horizontal=n.horizontal;if(n.textRotation!=null)s.textRotation=n.textRotation;if(n.indent)s.indent=n.indent;if(n.wrapText)s.wrapText=n.wrapText;a.alignment=s;break;case"":break;case"":;case"":break;case"":break;case"";if(r.length===2)return"";r[0]=Ue("cellXfs",null,{count:r.length-2}).replace("/>",">");return r.join("")}var Xf=function vg(){var e=/]*)>[\S\s]*?<\/numFmts>/;var r=/]*)>[\S\s]*?<\/cellXfs>/;var t=/]*)>[\S\s]*?<\/fills>/;var a=/]*)>[\S\s]*?<\/fonts>/;var n=/]*)>[\S\s]*?<\/borders>/;return function i(s,f,o){var l={};if(!s)return l;s=s.replace(//gm,"").replace(//gm,"");var c;if(c=s.match(e))Mf(c,l,o);if(c=s.match(a))Lf(c,l,f,o);if(c=s.match(t))Nf(c,l,f,o);if(c=s.match(n))Pf(c,l,f,o);if(c=s.match(r))zf(c,l,o);return l}}();var Gf=Ue("styleSheet",null,{xmlns:ze.main[0],"xmlns:vt":ze.vt});ua.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function jf(e,r){var t=[se,Gf],a;if(e.SSF&&(a=Uf(e.SSF))!=null)t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';if(a=Vf(r.cellXfs))t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Kf(e,r){var t=e._R(2);var a=st(e,r-2);return[t,a]}function Yf(e,r,t){if(!t)t=Ir(6+4*r.length);t._W(2,e);ft(r,t);return t.length>t.l?t.slice(0,t.l):t}function $f(e,r,t){var a={};a.sz=e._R(2)/20;var n=Nt(e,2,t);if(n.fCondense)a.condense=1;if(n.fExtend)a.extend=1;if(n.fShadow)a.shadow=1;if(n.fOutline)a.outline=1;if(n.fStrikeout)a.strike=1;if(n.fItalic)a.italic=1;var i=e._R(2);if(i===700)a.bold=1;switch(e._R(2)){case 1:a.vertAlign="superscript";break;case 2:a.vertAlign="subscript";break;}var s=e._R(1);if(s!=0)a.underline=s;var f=e._R(1);if(f>0)a.family=f;var o=e._R(1);if(o>0)a.charset=o;e.l++;a.color=Ft(e,8);switch(e._R(1)){case 1:a.scheme="major";break;case 2:a.scheme="minor";break;}a.name=st(e,r-21);return a}function Zf(e,r){if(!r)r=Ir(25+4*32);r._W(2,e.sz*20);Lt(e,r);r._W(2,e.bold?700:400);var t=0;if(e.vertAlign=="superscript")t=1;else if(e.vertAlign=="subscript")t=2;r._W(2,t);r._W(1,e.underline||0);r._W(1,e.family||0);r._W(1,e.charset||0);r._W(1,0);Pt(e.color,r);var a=0;if(e.scheme=="major")a=1;if(e.scheme=="minor")a=2;r._W(1,a);ft(e.name,r);return r.length>r.l?r.slice(0,r.l):r}var Qf=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];var Jf=y(Qf);var qf=_r;function eo(e,r){if(!r)r=Ir(4*3+8*7+16*1);var t=Jf[e.patternType];if(t==null)t=40;r._W(4,t);var a=0;if(t!=40){Pt({auto:1},r);Pt({auto:1},r);for(;a<12;++a)r._W(4,0)}else{for(;a<4;++a)r._W(4,0);for(;a<12;++a)r._W(4,0)}return r.length>r.l?r.slice(0,r.l):r}function ro(e,r){var t=e._R(2);var a=e._R(2);_r(e,r-4);return{ixfe:t,numFmtId:a}}function to(e,r,t){if(!t)t=Ir(16);t._W(2,r||0);t._W(2,e.numFmtId||0);t._W(2,0);t._W(2,0);t._W(2,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);return t}function ao(e,r){if(!r)r=Ir(10);r._W(1,0);r._W(1,0);r._W(4,0);r._W(4,0);return r}var no=_r;function io(e,r){if(!r)r=Ir(51);r._W(1,0);ao(null,r);ao(null,r);ao(null,r);ao(null,r);ao(null,r);return r.length>r.l?r.slice(0,r.l):r}function so(e,r){if(!r)r=Ir(12+4*10);r._W(4,e.xfId);r._W(2,1);r._W(1,+e.builtinId);r._W(1,0);Ct(e.name||"",r);return r.length>r.l?r.slice(0,r.l):r}function fo(e,r,t){var a=Ir(4+256*2*4);a._W(4,e);Ct(r,a);Ct(t,a);return a.length>a.l?a.slice(0,a.l):a}function oo(e,r,t){var a={};a.NumberFmt=[];for(var n in C._table)a.NumberFmt[n]=C._table[n];a.CellXf=[];a.Fonts=[];var i=[];var s=false;yr(e,function f(e,n,o){switch(o){case 44:a.NumberFmt[e[0]]=e[1];C.load(e[1],e[0]);break;case 43:a.Fonts.push(e);if(e.color.theme!=null&&r&&r.themeElements&&r.themeElements.clrScheme){e.color.rgb=gf(r.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0)}break;case 1025:break;case 45:break;case 46:break;case 47:if(i[i.length-1]=="BrtBeginCellXFs"){a.CellXf.push(e)}break;case 48:;case 507:;case 572:;case 475:break;case 1171:;case 2102:;case 1130:;case 512:;case 2095:break;case 35:s=true;break;case 36:s=false;break;case 37:i.push(n);break;case 38:i.pop();break;default:if((n||"").indexOf("Begin")>0)i.push(n);else if((n||"").indexOf("End")>0)i.pop();else if(!s||t.WTF)throw new Error("Unexpected record "+o+" "+n);}});return a}function lo(e,r){if(!r)return;var t=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(e){for(var a=e[0];a<=e[1];++a)if(r[a]!=null)++t});if(t==0)return;Dr(e,"BrtBeginFmts",it(t));[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(r[a]!=null)Dr(e,"BrtFmt",Yf(a,r[a]))});Dr(e,"BrtEndFmts")}function co(e,r){var t=1;if(t==0)return;Dr(e,"BrtBeginFonts",it(t));Dr(e,"BrtFont",Zf({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}));Dr(e,"BrtEndFonts")}function ho(e,r){var t=2;if(t==0)return;Dr(e,"BrtBeginFills",it(t));Dr(e,"BrtFill",eo({patternType:"none"}));Dr(e,"BrtFill",eo({patternType:"gray125"}));Dr(e,"BrtEndFills")}function uo(e,r){var t=1;if(t==0)return;Dr(e,"BrtBeginBorders",it(t));Dr(e,"BrtBorder",io({}));Dr(e,"BrtEndBorders")}function po(e,r){var t=1;Dr(e,"BrtBeginCellStyleXFs",it(t));Dr(e,"BrtXF",to({numFmtId:0,fontId:0,fillId:0,borderId:0},65535));Dr(e,"BrtEndCellStyleXFs")}function vo(e,r){Dr(e,"BrtBeginCellXFs",it(r.length));r.forEach(function(r){Dr(e,"BrtXF",to(r,0))});Dr(e,"BrtEndCellXFs")}function go(e,r){var t=1;Dr(e,"BrtBeginStyles",it(1));Dr(e,"BrtStyle",so({xfId:0,builtinId:0,name:"Normal"}));Dr(e,"BrtEndStyles")}function bo(e,r){var t=0;Dr(e,"BrtBeginDXFs",it(t));Dr(e,"BrtEndDXFs")}function mo(e,r){var t=0;Dr(e,"BrtBeginTableStyles",fo(t,"TableStyleMedium9","PivotStyleMedium4"));Dr(e,"BrtEndTableStyles")}function Co(e,r){return}function Eo(e,r){var t=Rr();Dr(t,"BrtBeginStyleSheet");lo(t,e.SSF);co(t,e);ho(t,e);uo(t,e);po(t,e);vo(t,r.cellXfs);go(t,e);bo(t,e);mo(t,e);Co(t,e);Dr(t,"BrtEndStyleSheet");return t.end()}ua.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function ko(e,r,t){r.themeElements.clrScheme=[];var a={};(e[0].match(oe)||[]).forEach(function(e){var n=he(e);switch(n[0]){case"":break;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":if(n[0].charAt(1)==="/"){r.themeElements.clrScheme.push(a);a={}}else{a.name=n[0].substring(3,n[0].length-1)}break;default:if(t&&t.WTF)throw new Error("Unrecognized "+n[0]+" in clrScheme");}})}function wo(e,r,t){}function So(e,r,t){}var Ao=/]*)>[\s\S]*<\/a:clrScheme>/;var Bo=/]*)>[\s\S]*<\/a:fontScheme>/;var _o=/]*)>[\s\S]*<\/a:fmtScheme>/;function To(e,r,t){r.themeElements={};var a;[["clrScheme",Ao,ko],["fontScheme",Bo,wo],["fmtScheme",_o,So]].forEach(function(n){if(!(a=e.match(n[1])))throw new Error(n[0]+" not found in themeElements");n[2](a,r,t)})}var xo=/]*)>[\s\S]*<\/a:themeElements>/;function Io(e,r){if(!e||e.length===0)return Io(yo());var t;var a={};if(!(t=e.match(xo)))throw new Error("themeElements not found in theme");To(t[0],a,r);return a}function yo(e,r){if(r&&r.themeXLSX)return r.themeXLSX;var t=[se];t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";return t.join("")}function Ro(e,r,t){var a=e._R(4);if(a===124226)return;e.l+=r-4}function Do(e,r){return e._R(4)}function Oo(e,r){var t={};t.xclrType=e._R(2);t.nTintShade=e._R(2);switch(t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=Fo(e,4);break;case 2:t.xclrValue=yn(e,4);break;case 3:t.xclrValue=Do(e,4);break;case 4:e.l+=4;break;}e.l+=8;return t}function Fo(e,r){return _r(e,r)}function Po(e,r){return _r(e,r)}function No(e,r){var t=e._R(2);var a=e._R(2);var n=[t];switch(t){case 4:;case 5:;case 7:;case 8:;case 9:;case 10:;case 11:;case 13:n[1]=Oo(e,a);break;case 6:n[1]=Po(e,a);break;case 14:;case 15:n[1]=e._R(a===5?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+a);}return n}function Lo(e,r){var t=e.l+r;e.l+=2;var a=e._R(2);e.l+=2;var n=e._R(2);var i=[];while(n-- >0)i.push(No(e,t-e.l));return{ixfe:a,ext:i}}function Mo(e,r){r.forEach(function(e){switch(e[0]){case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 13:break;case 14:break;case 15:break;}})}function Uo(e,r,t){var a=[];if(!e)return a;var n=0,i=1;(e.match(oe)||[]).forEach(function(e){var r=he(e);switch(r[0]){case"":;case"":break;case"0){}else if((r||"").indexOf("End")>0){}else if(!n||t.WTF)throw new Error("Unexpected record "+s+" "+r);}});return a}function Vo(e,r){}function Xo(e,r,t){var a=t||{}}function Go(e,r,t){if(!e)return e;var a=t||{};var n=false,i=false;yr(e,function s(e,r,t){if(i)return;switch(t){case 359:;case 363:;case 364:;case 366:;case 367:;case 368:;case 369:;case 370:;case 371:;case 472:;case 577:;case 578:;case 579:;case 580:;case 581:;case 582:;case 583:;case 584:;case 585:;case 586:;case 587:break;case 35:n=true;break;case 36:n=false;break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!n||a.WTF)throw new Error("Unexpected record "+t.toString(16)+" "+r);}},a)}ua.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";ua.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";function jo(e,r){if(!e)return"??";var t=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return r["!id"][t].Target}var Ko=1024;function Yo(e,r){var t=[21600,21600];var a=["m0,0l0",t[1],t[0],t[1],t[0],"0xe"].join(",");var n=[Ue("xml",null,{"xmlns:v":Ve.v,"xmlns:o":Ve.o,"xmlns:x":Ve.x,"xmlns:mv":Ve.mv}).replace(/\/>/,">"),Ue("o:shapelayout",Ue("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ue("v:shapetype",[Ue("v:stroke",null,{joinstyle:"miter"}),Ue("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:t.join(","),path:a})];while(Ko",Ue("v:fill",Ue("o:fill",null,{ +type:"gradientUnscaled","v:ext":"view"}),{color2:"#BEFF82",angle:"-180",type:"gradient"}),Ue("v:shadow",null,{on:"t",obscured:"t"}),Ue("v:path",null,{"o:connecttype":"none"}),'
    ','',"","",Le("x:Anchor",[e.c,0,e.r,0,e.c+3,100,e.r+5,100].join(",")),Le("x:AutoFill","False"),Le("x:Row",String(e.r)),Le("x:Column",String(e.c)),"","",""])});n.push("");return n.join("")}ua.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";function $o(e,r,t,a,n){for(var i=0;i!=r.length;++i){var s=r[i];var f=Gd(ee(e,s.replace(/^\//,""),true),s,n);if(!f||!f.length)continue;var o=x(t);for(var l=0;l!=o.length;++l){var c=o[l];var h=a[c];if(h){var u=h[s];if(u)Zo(c,t[c],f)}}}}function Zo(e,r,t){var a=Array.isArray(r);var n,i;t.forEach(function(e){if(a){i=Yr(e.ref);if(!r[i.r])r[i.r]=[];n=r[i.r][i.c]}else n=r[e.ref];if(!n){n={};if(a)r[i.r][i.c]=n;else r[e.ref]=n;var t=et(r["!ref"]||"BDWGO1000001:A1");var s=Yr(e.ref);if(t.s.r>s.r)t.s.r=s.r;if(t.e.rs.c)t.s.c=s.c;if(t.e.c/))return[];var t=[];var a=[];var n=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^>]*>(.*)/);if(r)t.push(r[1])});var i=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e,n){if(e===""||e.trim()==="")return;var i=e.match(/<(?:\w+:)?comment[^>]*>/);if(!i)return;var s=he(i[0]);var f={author:s.authorId&&t[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid};var o=Yr(s.ref);if(r.sheetRows&&r.sheetRows<=o.r)return;var l=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/);var c=!!l&&!!l[1]&&Is(l[1])||{r:"",t:"",h:""};f.r=c.r;if(c.r=="")c.t=c.h="";f.t=c.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)f.h=c.h;a.push(f)});return a}var Jo=Ue("comments",null,{xmlns:ze.main[0]});function qo(e,r){var t=[se,Jo];var a=[];t.push("");e.map(function(e){return e[1]}).forEach(function(e){e.map(function(e){return me(e.a)}).forEach(function(e){if(a.indexOf(e)>-1)return;a.push(e);t.push(""+e+"")})});t.push("");t.push("");e.forEach(function(e){e[1].forEach(function(r){t.push('');t.push(Le("t",r.t==null?"":r.t));t.push("")})});t.push("");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function el(e,r){var t={};t.iauthor=e._R(4);var a=xt(e,16);t.rfx=a.s;t.ref=$r(a.s);e.l+=16;return t}function rl(e,r){if(r==null)r=Ir(36);r._W(4,e[1].iauthor);It(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var tl=st;function al(e){return ft(e.slice(0,54))}function nl(e,r){var t=[];var a=[];var n={};var i=false;yr(e,function s(e,f,o){switch(o){case 632:a.push(e);break;case 635:n=e;break;case 637:n.t=e.t;n.h=e.h;n.r=e.r;break;case 636:n.author=a[n.iauthor];delete n.iauthor;if(r.sheetRows&&r.sheetRows<=n.rfx.r)break;if(!n.t)n.t="";delete n.rfx;t.push(n);break;case 35:i=true;break;case 36:i=false;break;case 37:break;case 38:break;default:if((f||"").indexOf("Begin")>0){}else if((f||"").indexOf("End")>0){}else if(!i||r.WTF)throw new Error("Unexpected record "+o+" "+f);}});return t}function il(e,r){var t=Rr();var a=[];Dr(t,"BrtBeginComments");{Dr(t,"BrtBeginCommentAuthors");e.forEach(function(e){e[1].forEach(function(e){if(a.indexOf(e.a)>-1)return;a.push(e.a.slice(0,54));Dr(t,"BrtCommentAuthor",al(e.a))})});Dr(t,"BrtEndCommentAuthors")}{Dr(t,"BrtBeginCommentList");e.forEach(function(e){e[1].forEach(function(r){r.iauthor=a.indexOf(r.a);var n={s:Yr(e[0]),e:Yr(e[0])};Dr(t,"BrtBeginComment",rl([n,r]));if(r.t&&r.t.length>0)Dr(t,"BrtCommentText",dt(r));Dr(t,"BrtEndComment");delete r.iauthor})});Dr(t,"BrtEndCommentList")}Dr(t,"BrtEndComments");return t.end()}function sl(e){var r=_.utils.cfb_new({root:"R"});e.FullPaths.forEach(function(t,a){if(t.slice(-1)==="/"||!t.match(/_VBA_PROJECT_CUR/))return;var n=t.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");_.utils.cfb_add(r,n,e.FileIndex[a].content)});return _.write(r)}ua.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet";ua.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";function fl(e,r,t,a,n,i){return{"!type":"dialog"}}function ol(e,r,t,a,n,i){return{"!type":"dialog"}}function ll(e,r,t,a,n,i){return{"!type":"macro"}}function cl(e,r,t,a,n,i){return{"!type":"macro"}}var hl=function(){var e=/(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g;var r={r:0,c:0};function t(e,t,a,n,i,s){var f=n.length>0?parseInt(n,10)|0:0,o=s.length>0?parseInt(s,10)|0:0;if(o<0&&i.length===0)o=0;var l=false,c=false;if(i.length>0||s.length==0)l=true;if(l)o+=r.c;else--o;if(a.length>0||n.length==0)c=true;if(c)f+=r.r;else--f;return t+(l?"":"$")+Xr(o)+(c?"":"$")+Hr(f)}return function a(n,i){r=i;return n.replace(e,t)}}();var ul=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)([1-9]\d{0,5}|10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6])(?![_.\(A-Za-z0-9])/g;var dl=function(){return function e(r,t){return r.replace(ul,function(e,r,a,n,i,s,f,o){var l=Vr(n)-t.c;var c=Ur(s)-t.r;return r+"R"+(c==0?"":"["+c+"]")+"C"+(l==0?"":"["+l+"]")})}}();function pl(e,r){return e.replace(ul,function(e,t,a,n,i,s,f,o){return t+(a=="$"?a+n:Xr(Vr(n)+r.c))+(i=="$"?i+s:Hr(Ur(s)+r.r))})}function vl(e,r,t){var a=Jr(r),n=a.s,i=Yr(t);var s={r:i.r-n.r,c:i.c-n.c};return pl(e,s)}function gl(e){if(e.length==1)return false;return true}function bl(e){return function(r,t){r.l+=e;return}}function ml(e){e.l+=1;return}function Cl(e,r){var t=e._R(r==1?1:2);return[t&16383,t>>14&1,t>>15&1]}function El(e,r,t){var a=2;if(t){if(t.biff>=2&&t.biff<=5)return kl(e,r,t);else if(t.biff==12)a=4}var n=e._R(a),i=e._R(a);var s=Cl(e,2);var f=Cl(e,2);return{s:{r:n,c:s[0],cRel:s[1],rRel:s[2]},e:{r:i,c:f[0],cRel:f[1],rRel:f[2]}}}function kl(e){var r=Cl(e,2),t=Cl(e,2);var a=e._R(1);var n=e._R(1);return{s:{r:r[0],c:a,cRel:r[1],rRel:r[2]},e:{r:t[0],c:n,cRel:t[1],rRel:t[2]}}}function wl(e,r){var t=e._R(r==12?4:2),a=e._R(r==12?4:2);var n=Cl(e,2);var i=Cl(e,2);return{s:{r:t,c:n[0],cRel:n[1],rRel:n[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}function Sl(e,r,t){if(t&&t.biff>=2&&t.biff<=5)return Al(e,r,t);var a=e._R(t&&t.biff==12?4:2);var n=Cl(e,2);return{r:a,c:n[0],cRel:n[1],rRel:n[2]}}function Al(e,r,t){var a=Cl(e,2);var n=e._R(1);return{r:a[0],c:n,cRel:a[1],rRel:a[2]}}function Bl(e,r,t){var a=e._R(2);var n=e._R(2);return{r:a,c:n&255,fQuoted:!!(n&16384),cRel:n>>15,rRel:n>>15}}function _l(e,r,t){var a=t&&t.biff?t.biff:8;if(a>=2&&a<=5)return Tl(e,r,t);var n=e._R(a>=12?4:2);var i=e._R(2);var s=(i&32768)>>15,f=(i&16384)>>14;i&=16383;if(f==1)while(n>524287)n-=1048576;if(s==1)while(i>8191)i=i-16384;return{r:n,c:i,cRel:s,rRel:f}}function Tl(e,r){var t=e._R(2);var a=e._R(1);var n=(t&32768)>>15,i=(t&16384)>>14;t&=16383;if(n==1&&t>=8192)t=t-16384;if(i==1&&a>=128)a=a-256;return{r:t,c:a,cRel:i,rRel:n}}function xl(e,r,t){var a=(e[e.l++]&96)>>5;var n=El(e,t.biff>=2&&t.biff<=5?6:8,t);return[a,n]}function Il(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2,"i");var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}var s=El(e,i,t);return[a,n,s]}function yl(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t&&t.biff>8?12:8;return[a]}function Rl(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}e.l+=i;return[a,n]}function Dl(e,r,t){var a=(e[e.l++]&96)>>5;var n=wl(e,t&&t.biff>8?12:8,t);return[a,n]}function Ol(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t.biff==2?6:t.biff==12?14:7;return[a]}function Fl(e,r){var t=e[e.l+1]&1;var a=1;e.l+=4;return[t,a]}function Pl(e,r,t){e.l+=2;var a=e._R(t&&t.biff==2?1:2);var n=[];for(var i=0;i<=a;++i)n.push(e._R(t&&t.biff==2?1:2));return n}function Nl(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Ll(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Ml(e,r){var t=e[e.l+1]&255?1:0;e.l+=2;return[t,e._R(2)]}function Ul(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=t&&t.biff==2?3:4;return[a]}function Hl(e,r){var t=e._R(1),a=e._R(1);return[t,a]}function Wl(e,r){e._R(2);return Hl(e,2)}function zl(e,r){e._R(2);return Hl(e,2)}function Vl(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=Sl(e,0,t);return[n,i]}function Xl(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=_l(e,0,t);return[a,n]}function Gl(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=e._R(2);var i=Sl(e,0,t);return[a,n,i]}function jl(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=e._R(t&&t.biff<=3?1:2);return[kh[i],Eh[i],n]}function Kl(e,r,t){e.l++;var a=e._R(1),n=t&&t.biff<=3?[0,e._R(1)]:Yl(e);return[a,(n[0]===0?Eh:Ch)[n[1]]]}function Yl(e,r){return[e[e.l+1]>>7,e._R(2)&32767]}function $l(e,r,t){e.l+=t&&t.biff==2?3:4;return}var Zl=ml;function Ql(e,r,t){e.l++;if(t&&t.biff==12)return[e._R(4,"i"),0];var a=e._R(2);var n=e._R(t&&t.biff==2?1:2);return[a,n]}function Jl(e,r){e.l++;return Dt[e._R(1)]}function ql(e,r){e.l++;return e._R(2)}function ec(e,r){e.l++;return e._R(1)!==0}function rc(e,r){e.l++;return yt(e,8)}function tc(e,r,t){e.l++;return Cn(e,r-1,t)}function ac(e,r){var t=[e._R(1)];if(r==12)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2;break;}switch(t[0]){case 4:t[1]=un(e,1)?"TRUE":"FALSE";e.l+=7;break;case 16:t[1]=Dt[e[e.l]];e.l+=8;break;case 0:e.l+=8;break;case 1:t[1]=yt(e,8);break;case 2:t[1]=Sn(e,0,{biff:r>0&&r<8?2:r});break;}return t}function nc(e,r){var t=e._R(2);var a=[];for(var n=0;n!=t;++n)a.push(Un(e,8));return a}function ic(e,r,t){var a=0,n=0;if(t.biff==12){a=e._R(4);n=e._R(4)}else{n=1+e._R(1);a=1+e._R(2)}if(t.biff>=2&&t.biff<8){--a;if(--n==0)n=256}for(var i=0,s=[];i!=a&&(s[i]=[]);++i)for(var f=0;f!=n;++f)s[i][f]=ac(e,t.biff);return s}function sc(e,r,t){var a=e._R(1)>>>5&3;var n=!t||t.biff>=8?4:2;var i=e._R(n);switch(t.biff){case 2:e.l+=5;break;case 3:;case 4:e.l+=8;break;case 5:e.l+=12;break;}return[a,0,i]}function fc(e,r,t){if(t.biff==5)return oc(e,r,t);var a=e._R(1)>>>5&3;var n=e._R(2);var i=e._R(4);return[a,n,i]}function oc(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(2,"i");e.l+=8;var i=e._R(2);e.l+=12;return[a,n,i]}function lc(e,r,t){var a=e._R(1)>>>5&3;e.l+=t&&t.biff==2?3:4;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function cc(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function hc(e,r,t){var a=e._R(1)>>>5&3;e.l+=4;if(t.biff==12)e.l+=2;return[a]}function uc(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=4;if(t)switch(t.biff){case 5:throw new Error("PtgRefErr3d -- 5");case 12:i=6;break;}e.l+=i;return[a,n]}var dc=ml;var pc=ml;var vc=ml;var gc=ml;var bc=ml;var mc=ml;var Cc=ml;var Ec=ml;var kc=ml;var wc=ml;var Sc=ml;var Ac=ml;var Bc=ml;var _c=ml;var Tc=ml;var xc=ml;var Ic=ml;var yc=ml;var Rc=ml;var Dc=_r;var Oc=_r;var Fc=_r;function Pc(e,r,t){e.l+=2;return[Bl(e,4,t)]}function Nc(e,r,t){e.l+=6;return[]}var Lc=Pc;var Mc=Nc;var Uc=Nc;var Hc=Pc;function Wc(e,r,t){e.l+=2;return[pn(e),e._R(2)&1]}var zc=Pc;var Vc=Wc;var Xc=Nc;var Gc=Pc;var jc=Pc;function Kc(e,r,t){e.l+=2;var a=e._R(2);e.l+=10;return{}}function Yc(e,r,t){e.l+=2;return[e._R(4)]}var $c={1:{n:"PtgExp",f:Ql},2:{n:"PtgTbl",f:Fc},3:{n:"PtgAdd",f:dc},4:{n:"PtgSub",f:xc},5:{n:"PtgMul",f:wc},6:{n:"PtgDiv",f:pc},7:{n:"PtgPower",f:_c},8:{n:"PtgConcat",f:Zl},9:{n:"PtgLt",f:Ec},10:{n:"PtgLe",f:Cc},11:{n:"PtgEq",f:vc},12:{n:"PtgGe",f:gc},13:{n:"PtgGt",f:bc},14:{n:"PtgNe",f:Sc},15:{n:"PtgIsect",f:mc},16:{n:"PtgUnion",f:yc},17:{n:"PtgRange",f:Tc},18:{n:"PtgUplus",f:Rc},19:{n:"PtgUminus",f:Ic},20:{n:"PtgPercent",f:Bc},21:{n:"PtgParen",f:Ac},22:{n:"PtgMissArg",f:kc},23:{n:"PtgStr",f:tc},28:{n:"PtgErr",f:Jl},29:{n:"PtgBool",f:ec},30:{n:"PtgInt",f:ql},31:{n:"PtgNum",f:rc},32:{n:"PtgArray",f:Ol},33:{n:"PtgFunc",f:jl},34:{n:"PtgFuncVar",f:Kl},35:{n:"PtgName",f:sc},36:{n:"PtgRef",f:Vl},37:{n:"PtgArea",f:xl},38:{n:"PtgMemArea",f:lc},39:{n:"PtgMemErr",f:Dc},40:{n:"PtgMemNoMem",f:Oc},41:{n:"PtgMemFunc",f:cc},42:{n:"PtgRefErr",f:hc},43:{n:"PtgAreaErr",f:yl},44:{n:"PtgRefN",f:Xl},45:{n:"PtgAreaN",f:Dl},57:{n:"PtgNameX",f:fc},58:{n:"PtgRef3d",f:Gl},59:{n:"PtgArea3d",f:Il},60:{n:"PtgRefErr3d",f:uc},61:{n:"PtgAreaErr3d",f:Rl},255:{}};var Zc={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};(function(){for(var e in Zc)$c[e]=$c[Zc[e]]})();var Qc={1:{n:"PtgElfLel",f:Wc},2:{n:"PtgElfRw",f:Gc},3:{n:"PtgElfCol",f:Lc},6:{n:"PtgElfRwV",f:jc},7:{n:"PtgElfColV",f:Hc},10:{n:"PtgElfRadical",f:zc},11:{n:"PtgElfRadicalS",f:Xc},13:{n:"PtgElfColS",f:Mc},15:{n:"PtgElfColSV",f:Uc},16:{n:"PtgElfRadicalLel",f:Vc},25:{n:"PtgList",f:Kc},29:{n:"PtgSxName",f:Yc},255:{}};var Jc={1:{n:"PtgAttrSemi",f:Ul},2:{n:"PtgAttrIf",f:Ll},4:{n:"PtgAttrChoose",f:Pl},8:{n:"PtgAttrGoto",f:Nl},16:{n:"PtgAttrSum",f:$l},32:{n:"PtgAttrBaxcel",f:Fl},64:{n:"PtgAttrSpace",f:Wl},65:{n:"PtgAttrSpaceSemi",f:zl},128:{n:"PtgAttrIfError",f:Ml},255:{}};Jc[33]=Jc[32];function qc(e,r,t,a){if(a.biff<8)return _r(e,r);var n=e.l+r;var i=[];for(var s=0;s!==t.length;++s){switch(t[s][0]){case"PtgArray":t[s][1]=ic(e,0,a);i.push(t[s][1]);break;case"PtgMemArea":t[s][2]=nc(e,t[s][1]);i.push(t[s][2]);break;case"PtgExp":if(a&&a.biff==12){t[s][1][1]=e._R(4);i.push(t[s][1])}break;case"PtgList":;case"PtgElfRadicalS":;case"PtgElfColS":;case"PtgElfColSV":throw"Unsupported "+t[s][0];default:break;}}r=n-e.l;if(r!==0)i.push(_r(e,r));return i}function eh(e,r,t){var a=e.l+r;var n,i,s=[];while(a!=e.l){r=a-e.l;i=e[e.l];n=$c[i];if(i===24||i===25){i=e[e.l+1];n=(i===24?Qc:Jc)[i]}if(!n||!n.f){_r(e,r)}else{s.push([n.n,n.f(e,r,t)])}}return s}function rh(e){var r=[];for(var t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function ah(e){if(!e)return"";if(e.indexOf(" ")>-1)return"'"+e+"'";return e}function nh(e,r,t){return e.SheetNames[r]}function ih(e,r,t){return ah(nh(e,r,t))}function sh(e,r,t,a,n){var i={s:{c:0,r:0},e:{c:0,r:0}};var s=[],f,o,l,c,h=0,u=0,d,p="";if(!e[0]||!e[0][0])return"";var v=-1,g="";for(var b=0,m=e[0].length;b=0){switch(e[0][v][1][0]){case 0:g=X(" ",e[0][v][1][1]);break;case 1:g=X("\r",e[0][v][1][1]);break;default:g="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][v][1][0]);}o=o+g;v=-1}s.push(o+th[C[0]]+f);break;case"PtgIsect":f=s.pop();o=s.pop();s.push(o+" "+f);break;case"PtgUnion":f=s.pop();o=s.pop();s.push(o+","+f);break;case"PtgRange":f=s.pop();o=s.pop();s.push(o+":"+f);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":l=C[1][0];c=Or(C[1][1],i,n);s.push(Pr(c));break;case"PtgRefN":l=C[1][0];c=t?Or(C[1][1],t,n):C[1][1];s.push(Pr(c));break;case"PtgRef3d":l=C[1][0];h=C[1][1];c=Or(C[1][2],i,n);p=ih(a,h,n);var E=p;s.push(p+"!"+Pr(c));break;case"PtgFunc":;case"PtgFuncVar":var k=C[1][0],w=C[1][1];if(!k)k=0;var S=k==0?[]:s.slice(-k);s.length-=k;if(w==="User")w=S.shift();s.push(w+"("+S.join(",")+")");break;case"PtgBool":s.push(C[1]?"TRUE":"FALSE");break;case"PtgInt":s.push(C[1]);break;case"PtgNum":s.push(String(C[1]));break;case"PtgStr":s.push('"'+C[1]+'"');break;case"PtgErr":s.push(C[1]);break;case"PtgAreaN":l=C[1][0];d=Fr(C[1][1],i,n);s.push(Nr(d,n));break;case"PtgArea":l=C[1][0];d=Fr(C[1][1],i,n);s.push(Nr(d,n));break;case"PtgArea3d":l=C[1][0];h=C[1][1];d=C[1][2];p=a&&a[1]?a[1][h+1]:"**MISSING**";s.push(p+"!"+Nr(d,n));break;case"PtgAttrSum":s.push("SUM("+s.pop()+")");break;case"PtgAttrSemi":break;case"PtgName":u=C[1][2];var A=(a.names||[])[u-1]||(a[0]||[])[u];var B=A?A.Name:"SH33TJSERR7"+String(u);if(B in wh)B=wh[B];s.push(B);break;case"PtgNameX":var _=C[1][1];u=C[1][2];var T;if(n.biff<=5){if(_<0)_=-_;if(a[_])T=a[_][u]}else{var x=a.SheetNames[_];var I="";if(((a[_]||[])[0]||[])[0]==14849){}else if(((a[_]||[])[0]||[])[0]==1025){if(a[_][u]&&a[_][u].itab>0){I=a.SheetNames[a[_][u].itab-1]+"!"}}else I=a.SheetNames[u-1]+"!";if(a[_]&&a[_][u])I+=a[_][u].Name;else if(a[0]&&a[0][u])I+=a[0][u].Name;else I+="SH33TJSERRX";s.push(I);break}if(!T)T={Name:"SH33TJSERRY"};s.push(T.Name);break;case"PtgParen":var y="(",R=")";if(v>=0){g="";switch(e[0][v][1][0]){case 2:y=X(" ",e[0][v][1][1])+y;break;case 3:y=X("\r",e[0][v][1][1])+y;break;case 4:R=X(" ",e[0][v][1][1])+R;break;case 5:R=X("\r",e[0][v][1][1])+R;break;default:if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][v][1][0]);}v=-1}s.push(y+s.pop()+R);break;case"PtgRefErr":s.push("#REF!");break;case"PtgRefErr3d":s.push("#REF!");break;case"PtgExp":c={c:C[1][1],r:C[1][0]};var D={c:t.c,r:t.r};if(a.sharedf[$r(c)]){var O=a.sharedf[$r(c)];s.push(sh(O,i,D,a,n))}else{var F=false;for(f=0;f!=a.arrayf.length;++f){o=a.arrayf[f];if(c.co[0].e.c)continue;if(c.ro[0].e.r)continue;s.push(sh(o[1],i,D,a,n));F=true;break}if(!F)s.push(C[1])}break;case"PtgArray":s.push("{"+rh(C[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":;case"PtgAttrSpaceSemi":v=b;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":s.push("");break;case"PtgAreaErr":s.push("#REF!");break;case"PtgAreaErr3d":s.push("#REF!");break;case"PtgMemFunc":break;case"PtgMemNoMem":throw new Error("Unrecognized Formula Token: "+String(C));case"PtgElfCol":;case"PtgElfColS":;case"PtgElfColSV":;case"PtgElfColV":;case"PtgElfLel":;case"PtgElfRadical":;case"PtgElfRadicalLel":;case"PtgElfRadicalS":;case"PtgElfRw":;case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgAttrBaxcel":throw new Error("Unrecognized Formula Token: "+String(C));case"PtgSxName":throw new Error("Unrecognized Formula Token: "+String(C));case"PtgList":throw new Error("Unrecognized Formula Token: "+String(C));default:throw new Error("Unrecognized Formula Token: "+String(C));}var P=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(v>=0&&P.indexOf(e[0][b][0])==-1){C=e[0][v];var N=true;switch(C[1][0]){case 4:N=false;case 0:g=X(" ",C[1][1]);break;case 5:N=false;case 1:g=X("\r",C[1][1]);break;default:g="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+C[1][0]);}s.push((N?g:"")+s.pop()+(N?"":g));v=-1}}if(s.length>1&&n.WTF)throw new Error("bad formula stack");return s[0]}function fh(e,r,t,a){var n=e.l+r,i=t.biff==2?1:2;var s,f=e._R(i);if(f==65535)return[[],_r(e,r-2)];var o=eh(e,f,t);if(r!==f+i)s=qc(e,r-f-i,o,t);return[o,s]}function oh(e,r,t){var a=e.l+r,n=t.biff==2?1:2;var i,s=e._R(n);if(s==65535)return[[],_r(e,r-2)];var f=eh(e,s,t);if(r!==s+n)i=qc(e,r-s-n,f,t);return[f,i]}function lh(e,r,t,a){var n=e.l+r;var i=eh(e,a,t);var s;if(n!==e.l)s=qc(e,n-e.l,i,t);return[i,s]}function ch(e,r,t){var a=e.l+r;var n,i=e._R(2);var s=eh(e,i,t);if(i==65535)return[[],_r(e,r-2)];if(r!==i+2)n=qc(e,a-i-2,s,t);return[s,n]}function hh(e){var r;if(ur(e,e.l+6)!==65535)return[yt(e),"n"];switch(e[e.l]){case 0:e.l+=8;return["String","s"];case 1:r=e[e.l+2]===1;e.l+=8;return[r,"b"];case 2:r=e[e.l+2];e.l+=8;return[r,"e"];case 3:e.l+=8;return["","s"];}return[]}function uh(e,r,t){var a=e.l+r;var n=Dn(e,6);if(t.biff==2)++e.l;var i=hh(e,8);var s=e._R(1);if(t.biff!=2){e._R(1);if(t.biff>=5){var f=e._R(4)}}var o=oh(e,a-e.l,t);return{cell:n,val:i[0],formula:o,shared:s>>3&1,tt:i[1]}}function dh(e,r,t){var a=e.l+r;var n=e._R(4);var i=eh(e,n,t);var s=e._R(4);var f=s>0?qc(e,s,i,t):null;return[i,f]}var ph=dh;var vh=dh;var gh=dh;var bh=dh;var mh={1:"REFERENCE",2:"VALUE",3:"ARRAY"};var Ch={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"};var Eh={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST", +287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"};var kh={2:1,3:1,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,90:1,97:2,98:1,99:1,101:3,102:3,105:1,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};var wh={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFNA":"IFNA","_xlfn.IFERROR":"IFERROR","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function Sh(e){if(e.substr(0,3)=="of:")e=e.substr(3);if(e.charCodeAt(0)==61){e=e.substr(1);if(e.charCodeAt(0)==61)e=e.substr(1)}e=e.replace(/COM\.MICROSOFT\./g,"");e=e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(e,r){return r.replace(/\./g,"")});e=e.replace(/\[.(#[A-Z]*[?!])\]/g,"$1");return e.replace(/[;~]/g,",").replace(/\|/g,";")}function Ah(e){var r="of:="+e.replace(ul,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function Bh(e){var r=e.split(":");var t=r[0].split(".")[0];return[t,r[0].split(".")[1]+":"+r[1].split(".")[1]]}var _h={};var Th={};ua.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];function xh(e,r){for(var t=0,a=e.length;t-1){t.width=Sf(a);t.customWidth=1}else if(r.width!=null)t.width=r.width;if(r.hidden)t.hidden=true;return t}function yh(e,r){if(!e)return;var t=[.7,.7,.75,.75,.3,.3];if(r=="xlml")t=[1,1,1,1,.5,.5];if(e.left==null)e.left=t[0];if(e.right==null)e.right=t[1];if(e.top==null)e.top=t[2];if(e.bottom==null)e.bottom=t[3];if(e.header==null)e.header=t[4];if(e.footer==null)e.footer=t[5]}function Rh(e,r,t){var a=t.revssf[r.z!=null?r.z:"General"];var n=60,i=e.length;if(a==null&&t.ssf){for(;n<392;++n)if(t.ssf[n]==null){C.load(r.z,n);t.ssf[n]=r.z;t.revssf[r.z]=a=n;break}}for(n=0;n!=i;++n)if(e[n].numFmtId===a)return n;e[i]={numFmtId:a,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return i}function Dh(e,r,t,a,n,i){if(e.t==="z")return;if(e.t==="d"&&typeof e.v==="string")e.v=H(e.v);try{if(a.cellNF)e.z=C._table[r]}catch(s){if(a.WTF)throw s}if(!a||a.cellText!==false)try{if(e.t==="e")e.w=e.w||Dt[e.v];else if(r===0){if(e.t==="n"){if((e.v|0)===e.v)e.w=C._general_int(e.v);else e.w=C._general_num(e.v)}else if(e.t==="d"){var f=P(e.v);if((f|0)===f)e.w=C._general_int(f);else e.w=C._general_num(f)}else if(e.v===undefined)return"";else e.w=C._general(e.v,Th)}else if(e.t==="d")e.w=C.format(r,P(e.v),Th);else e.w=C.format(r,e.v,Th)}catch(s){if(a.WTF)throw s}if(!a.cellStyles)return;if(t!=null)try{e.s=i.Fills[t];if(e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb){e.s.fgColor.rgb=gf(n.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0);if(a.WTF)e.s.fgColor.raw_rgb=n.themeElements.clrScheme[e.s.fgColor.theme].rgb}if(e.s.bgColor&&e.s.bgColor.theme){e.s.bgColor.rgb=gf(n.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0);if(a.WTF)e.s.bgColor.raw_rgb=n.themeElements.clrScheme[e.s.bgColor.theme].rgb}}catch(s){if(a.WTF&&i.Fills)throw s}}function Oh(e,r){var t=et(r);if(t.s.r<=t.e.r&&t.s.c<=t.e.c&&t.s.r>=0&&t.s.c>=0)e["!ref"]=qr(t)}var Fh=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g;var Ph=/<(?:\w+:)?sheetData>([\s\S]*)<\/(?:\w+:)?sheetData>/;var Nh=/<(?:\w:)?hyperlink [^>]*>/gm;var Lh=/"(\w*:\w*)"/;var Mh=/<(?:\w:)?col[^>]*[\/]?>/g;var Uh=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g;var Hh=/<(?:\w:)?pageMargins[^>]*\/>/g;function Wh(e,r,t,a,n,i){if(!e)return e;if(c!=null&&r.dense==null)r.dense=c;var s=r.dense?[]:{};var f={s:{r:2e6,c:2e6},e:{r:0,c:0}};var o="",l="";var h=e.match(Ph);if(h){o=e.substr(0,h.index);l=e.substr(h.index+h[0].length)}else o=l=e;var u=(o.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(u>0){var d=o.substr(u,50).match(Lh);if(d)Oh(s,d[1])}var p=[];if(r.cellStyles){var v=o.match(Mh);if(v)Kh(p,v)}if(h)qh(h[1],s,r,f,n,i);var g=l.match(Uh);if(g)s["!autofilter"]=$h(g[0]);var b=[];var m=l.match(Fh);if(m)for(u=0;u!=m.length;++u)b[u]=et(m[u].substr(m[u].indexOf('"')+1));var C=l.match(Nh);if(C)Xh(s,C,t);var E=l.match(Hh);if(E)s["!margins"]=Gh(he(E[0]));if(!s["!ref"]&&f.e.c>=f.s.c&&f.e.r>=f.s.r)s["!ref"]=qr(f);if(r.sheetRows>0&&s["!ref"]){var k=et(s["!ref"]);if(r.sheetRows<+k.e.r){k.e.r=r.sheetRows-1;if(k.e.r>f.e.r)k.e.r=f.e.r;if(k.e.rf.e.c)k.e.c=f.e.c;if(k.e.c0)s["!cols"]=p;if(b.length>0)s["!merges"]=b;return s}function zh(e){if(e.length===0)return"";var r='';for(var t=0;t!=e.length;++t)r+='';return r+""}function Vh(e){var r={sheet:1};var t=["objects","scenarios","selectLockedCells","selectUnlockedCells"];var a=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];t.forEach(function(t){if(e[t]!=null&&e[t])r[t]="1"});a.forEach(function(t){if(e[t]!=null&&!e[t])r[t]="0"});if(e.password)r.password=af(e.password).toString(16).toUpperCase();return Ue("sheetProtection",null,r)}function Xh(e,r,t){var a=Array.isArray(e);for(var n=0;n!=r.length;++n){var i=he(Be(r[n]),true);if(!i.ref)return;var s=t?t["!id"][i.id]:null;if(s){i.Target=s.Target;if(i.location)i.Target+="#"+i.location;i.Rel=s}else{i.Target=i.location;s={Target:i.location,TargetMode:"Internal"};i.Rel=s}if(i.tooltip){i.Tooltip=i.tooltip;delete i.tooltip}var f=et(i.ref);for(var o=f.s.r;o<=f.e.r;++o)for(var l=f.s.c;l<=f.e.c;++l){var c=$r({c:l,r:o});if(a){if(!e[o])e[o]=[];if(!e[o][l])e[o][l]={t:"z",v:undefined};e[o][l].l=i}else{if(!e[c])e[c]={t:"z",v:undefined};e[c].l=i}}}}function Gh(e){var r={};["left","right","top","bottom","header","footer"].forEach(function(t){if(e[t])r[t]=parseFloat(e[t])});return r}function jh(e){yh(e);return Ue("pageMargins",null,e)}function Kh(e,r){var t=false;for(var a=0;a!=r.length;++a){var n=he(r[a],true);if(n.hidden)n.hidden=Ae(n.hidden);var i=parseInt(n.min,10)-1,s=parseInt(n.max,10)-1;delete n.min;delete n.max;n.width=+n.width;if(!t&&n.width){t=true;Tf(n.width)}If(n);while(i<=s)e[i++]=V(n)}}function Yh(e,r){var t=[""],a,n;for(var i=0;i!=r.length;++i){if(!(a=r[i]))continue;t[t.length]=Ue("col",null,Ih(i,a))}t[t.length]="";return t.join("")}function $h(e){var r={ref:(e.match(/ref="([^"]*)"/)||[])[1]};return r}function Zh(e){return Ue("autoFilter",null,{ref:e.ref})}function Qh(e,r,t,a){return Ue("sheetViews",Ue("sheetView",null,{workbookViewId:"0"}),{})}function Jh(e,r,t,a,n,i){if(e.v===undefined&&e.f===undefined||e.t==="z")return"";var s="";var f=e.t,o=e.v;switch(e.t){case"b":s=e.v?"1":"0";break;case"n":s=""+e.v;break;case"e":s=Dt[e.v];break;case"d":if(a.cellDates)s=H(e.v,-1).toISOString();else{e=V(e);e.t="n";s=""+(e.v=P(H(e.v)))}if(typeof e.z==="undefined")e.z=C._table[14];break;default:s=e.v;break;}var l=Le("v",me(s)),c={r:r};var h=Rh(a.cellXfs,e,a);if(h!==0)c.s=h;switch(e.t){case"n":break;case"d":c.t="d";break;case"b":c.t="b";break;case"e":c.t="e";break;default:if(e.v==null){delete e.t;break}if(a.bookSST){l=Le("v",""+xh(a.Strings,e.v));c.t="s";break}c.t="str";break;}if(e.t!=f){e.t=f;e.v=o}if(e.f){var u=e.F&&e.F.substr(0,r.length)==r?{t:"array",ref:e.F}:null;l=Ue("f",me(e.f),u)+(e.v!=null?l:"")}if(e.l)t["!links"].push([r,e.l]);if(e.c)t["!comments"].push([r,e.c]);return Ue("c",l,c)}var qh=function gg(){var e=/<(?:\w+:)?c[ >]/,r=/<\/(?:\w+:)?row>/;var t=/r=["']([^"']*)["']/,a=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/;var n=/ref=["']([^"']*)["']/;var i=ye("v"),s=ye("f");return function f(o,l,c,h,u,d){var p=0,v="",g=[],b=[],m=0,E=0,k=0,w="",S;var A,B=0,_=0;var T,x;var I=0,y=0;var R=Array.isArray(d.CellXf),D;var O=[];var F=[];var L=Array.isArray(l);var M=[],U={},W=false;for(var z=o.split(r),V=0,X=z.length;V!=X;++V){v=z[V].trim();var G=v.length;if(G===0)continue;for(p=0;pB-1)h.s.r=B-1;if(h.e.r":"")+v;if(b!=null&&b.length===2){m=0;w=b[1];for(E=0;E!=w.length;++E){if((k=w.charCodeAt(E)-64)<1||k>26)break;m=26*m+k}--m;_=m}else++_;for(E=0;E!=v.length;++E)if(v.charCodeAt(E)===62)break;++E;A=he(v.substr(0,E),true);if(!A.r)A.r=$r({r:B-1,c:_});w=v.substr(E);S={t:""};if((b=w.match(i))!=null&&b[1]!=="")S.v=ve(b[1]);if(c.cellFormula){if((b=w.match(s))!=null&&b[1]!==""){S.f=ve(Be(b[1])).replace(/_xlfn\./,"");if(b[0].indexOf('t="array"')>-1){S.F=(w.match(n)||[])[1];if(S.F.indexOf(":")>-1)O.push([et(S.F),S.F])}else if(b[0].indexOf('t="shared"')>-1){x=he(b[0]);F[parseInt(x.si,10)]=[x,ve(Be(b[1]))]}}else if(b=w.match(/]*\/>/)){x=he(b[0]);if(F[x.si])S.f=vl(F[x.si][1],F[x.si][0].ref,A.r)}var j=Yr(A.r);for(E=0;E=O[E][0].s.r&&j.r<=O[E][0].e.r)if(j.c>=O[E][0].s.c&&j.c<=O[E][0].e.c)S.F=O[E][1]}if(A.t==null&&S.v===undefined){if(S.f||S.F){S.v=0;S.t="n"}else if(!c.sheetStubs)continue;else S.t="z"}else S.t=A.t||"n";if(h.s.c>m)h.s.c=m;if(h.e.c0)l["!rows"]=M}}();function eu(e,r,t,a,n){var i=[],s=[],f=et(e["!ref"]),o,l,c="",h=[],u=0,d=0,p=e["!rows"];var v=Array.isArray(e);var g={r:c},b,m=-1;for(d=f.s.c;d<=f.e.c;++d)h[d]=Xr(d);for(u=f.s.r;u<=f.e.r;++u){s=[];c=Hr(u);for(d=f.s.c;d<=f.e.c;++d){l=h[d]+c;var C=v?(e[u]||[])[d]:e[l];if(C===undefined)continue;if((o=Jh(C,l,e,r,t,a))!=null)s.push(o)}if(s.length>0||p&&p[u]){g={r:c};if(p&&p[u]){b=p[u];if(b.hidden)g.hidden=1;m=-1;if(b.hpx)m=Df(b.hpx);else if(b.hpt)m=b.hpt;if(m>-1){g.ht=m;g.customHeight=1}if(b.level){g.outlineLevel=b.level}}i[i.length]=Ue("row",s.join(""),g)}}if(p)for(;u-1){g.ht=m;g.customHeight=1}if(b.level){g.outlineLevel=b.level}i[i.length]=Ue("row","",g)}}return i.join("")}var ru=Ue("worksheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function tu(e,r,t,a){var n=[se,ru];var i=t.SheetNames[e],s=0,f="";var o=t.Sheets[i];if(o==null)o={};var l=o["!ref"];if(l==null)l="A1";if(!a)a={};o["!comments"]=[];o["!drawing"]=[];n[n.length]=Ue("sheetPr",null,{codeName:me(t.SheetNames[e])});n[n.length]=Ue("dimension",null,{ref:l});n[n.length]=Qh(o,r,e,t);if(r.sheetFormat)n[n.length]=Ue("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"});if(o["!cols"]!=null&&o["!cols"].length>0)n[n.length]=Yh(o,o["!cols"]);n[s=n.length]="";o["!links"]=[];if(o["!ref"]!=null){f=eu(o,r,e,t,a);if(f.length>0)n[n.length]=f}if(n.length>s+1){n[n.length]="";n[s]=n[s].replace("/>",">")}if(o["!protect"]!=null)n[n.length]=Vh(o["!protect"]);if(o["!autofilter"]!=null)n[n.length]=Zh(o["!autofilter"]);if(o["!merges"]!=null&&o["!merges"].length>0)n[n.length]=zh(o["!merges"]);var c=-1,h,u=-1;if(o["!links"].length>0){n[n.length]="";o["!links"].forEach(function(e){if(!e[1].Target)return;u=ba(a,-1,me(e[1].Target).replace(/#.*$/,""),ua.HLINK);h={ref:e[0],"r:id":"rId"+u};if((c=e[1].Target.indexOf("#"))>-1)h.location=me(e[1].Target.substr(c+1));if(e[1].Tooltip)h.tooltip=me(e[1].Tooltip);n[n.length]=Ue("hyperlink",null,h)});n[n.length]=""}delete o["!links"];if(o["!margins"]!=null)n[n.length]=jh(o["!margins"]);var d=n.length;n[n.length]="";if(o["!drawing"].length>0){u=ba(a,-1,"../drawings/drawing"+(e+1)+".xml",ua.DRAW);n[n.length]=Ue("drawing",null,{"r:id":"rId"+u})}else delete o["!drawing"];if(o["!comments"].length>0){u=ba(a,-1,"../drawings/vmlDrawing"+(e+1)+".vml",ua.VML);n[n.length]=Ue("legacyDrawing",null,{"r:id":"rId"+u});o["!legacy"]=u}if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function au(e,r){var t={};var a=e.l+r;t.r=e._R(4);e.l+=4;var n=e._R(2);e.l+=1;var i=e._R(1);e.l=a;if(i&7)t.level=i&7;if(i&16)t.hidden=true;if(i&32)t.hpt=n/20;return t}function nu(e,r,t){var a=Ir(17+8*16);var n=(t["!rows"]||[])[e]||{};a._W(4,e);a._W(4,0);var i=320;if(n.hpx)i=Df(n.hpx)*20;else if(n.hpt)i=n.hpt*20;a._W(2,i);a._W(1,0);var s=0;if(n.level)s|=n.level;if(n.hidden)s|=16;if(n.hpx||n.hpt)s|=32;a._W(1,s);a._W(1,0);var f=0,o=a.l;a.l+=4;var l={r:e,c:0};for(var c=0;c<16;++c){if(r.s.c>c+1<<10||r.e.ca.l?a.slice(0,a.l):a}function iu(e,r,t,a){var n=nu(a,t,r);if(n.length>17||(r["!rows"]||[])[a])Dr(e,"BrtRowHdr",n)}var su=xt;var fu=It;function ou(e,r){}function lu(e,r){var t={};e.l+=19;t.name=gt(e,r-19);return t}function cu(e,r){if(r==null)r=Ir(84+4*e.length);for(var t=0;t<3;++t)r._W(1,0);Pt({auto:1},r);r._W(-4,-1);r._W(-4,-1);bt(e,r);return r.slice(0,r.l)}function hu(e,r){var t=pt(e);return[t]}function uu(e,r,t){if(t==null)t=Ir(8);return vt(r,t)}function du(e,r){var t=pt(e);var a=e._R(1);return[t,a,"b"]}function pu(e,r,t){if(t==null)t=Ir(9);vt(r,t);t._W(1,e.v?1:0);return t}function vu(e,r){var t=pt(e);var a=e._R(1);return[t,a,"e"]}function gu(e,r){var t=pt(e);var a=e._R(4);return[t,a,"s"]}function bu(e,r,t){if(t==null)t=Ir(12);vt(r,t);t._W(4,r.v);return t}function mu(e,r){var t=pt(e);var a=yt(e);return[t,a,"n"]}function Cu(e,r,t){if(t==null)t=Ir(16);vt(r,t);Rt(e.v,t);return t}function Eu(e,r){var t=pt(e);var a=At(e);return[t,a,"n"]}function ku(e,r,t){if(t==null)t=Ir(12);vt(r,t);Bt(e.v,t);return t}function wu(e,r){var t=pt(e);var a=st(e);return[t,a,"str"]}function Su(e,r,t){if(t==null)t=Ir(12+4*e.v.length);vt(r,t);ft(e.v,t);return t.length>t.l?t.slice(0,t.l):t}function Au(e,r,t){var a=e.l+r;var n=pt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var f=vh(e,a-e.l,t);s[3]=sh(f,null,n,t.supbooks,t)}else e.l=a;return s}function Bu(e,r,t){var a=e.l+r;var n=pt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var f=vh(e,a-e.l,t);s[3]=sh(f,null,n,t.supbooks,t)}else e.l=a;return s}function _u(e,r,t){var a=e.l+r;var n=pt(e);n.r=t["!row"];var i=yt(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var f=vh(e,a-e.l,t);s[3]=sh(f,null,n,t.supbooks,t)}else e.l=a;return s}function Tu(e,r,t){var a=e.l+r;var n=pt(e);n.r=t["!row"];var i=st(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var f=vh(e,a-e.l,t);s[3]=sh(f,null,n,t.supbooks,t)}else e.l=a;return s}var xu=xt;var Iu=It;function yu(e,r){if(r==null)r=Ir(4);r._W(4,e);return r}function Ru(e,r,t){var a=e.l+r;var n=xt(e,16);var i=mt(e);var s=st(e);var f=st(e);var o=st(e);e.l=a;var l={rfx:n,relId:i,loc:s,display:o};if(f)l.Tooltip=f;return l}function Du(e,r,t){if(t==null)t=Ir(50+4*e[1].Target.length);It({s:Yr(e[0]),e:Yr(e[0])},t);St("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.substr(a+1);ft(n||"",t);ft(e[1].Tooltip||"",t);ft("",t);return t.slice(0,t.l)}function Ou(e,r,t){var a=e.l+r;var n=_t(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var f=ph(e,a-e.l,t);s[1]=f}else e.l=a;return s}function Fu(e,r,t){var a=e.l+r;var n=xt(e,16);var i=[n];if(t.cellFormula){var s=bh(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function Pu(e,r,t){if(t==null)t=Ir(18);var a=Ih(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;t._W(1,n);t._W(1,0);return t}var Nu=["left","right","top","bottom","header","footer"];function Lu(e,r,t){var a={};Nu.forEach(function(r){a[r]=yt(e,8)});return a}function Mu(e,r){if(r==null)r=Ir(6*8);yh(e);Nu.forEach(function(t){Rt(e[t],r)});return r}function Uu(e,r){if(r==null)r=Ir(30);r._W(2,924);r._W(4,0);r._W(4,0);r._W(4,0);r._W(1,0);r._W(1,0);r._W(2,0);r._W(2,100);r._W(2,0);r._W(2,0);r._W(2,0);r._W(4,0);return r}function Hu(e,r){if(r==null)r=Ir(16*4+2);r._W(2,e.password?af(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function Wu(e,r,t,a,n,i){if(!e)return e;var s=r||{};if(!t)t={"!id":{}};if(c!=null&&s.dense==null)s.dense=c;var f=s.dense?[]:{};var o;var l={s:{r:2e6,c:2e6},e:{r:0,c:0}};var h=false,u=false;var d,p,v,g,b,m,E,k,w;var S=[];s.biff=12;s["!row"]=0;var A=0,B=false;var _=[];var T={};var x=[[]];x.sharedf=T;x.arrayf=_;x.SheetNames=a.SheetNames||a.Sheets.map(function(e){return e.name});s.supbooks=x;for(var I=0;I=c[0].s.r&&d.r<=c[0].e.r)if(b>=c[0].s.c&&b<=c[0].e.c){p.F=qr(c[0]);B=true}}if(!B&&e.length>3)p.f=e[3]}if(l.s.r>d.r)l.s.r=d.r;if(l.s.c>b)l.s.c=b;if(l.e.rd.r)l.s.r=d.r;if(l.s.c>b)l.s.c=b;if(l.e.r=e.s){y[e.e--]={width:e.w/256,hidden:!!(e.flags&1)};if(!F){F=true;Tf(e.w/256)}If(y[e.e+1])}break;case 161:f["!autofilter"]={ref:qr(e)};break;case 476:f["!margins"]=e;break;case 485:;case 175:;case 644:;case 625:;case 562:;case 396:;case 1112:;case 1146:;case 471:;case 1050:;case 649:;case 1105:;case 49:;case 589:;case 607:;case 564:;case 1055:;case 168:;case 174:;case 1180:;case 499:;case 64:;case 1053:;case 550:;case 171:;case 167:;case 1177:;case 169:;case 1181:;case 551:;case 552:;case 661:;case 639:;case 478:;case 151:;case 537:;case 477:;case 536:;case 1103:;case 680:;case 1104:;case 1024:;case 152:;case 663:;case 535:;case 678:;case 504:;case 1043:;case 428:;case 170:;case 50:;case 2070:;case 1045:;case 147:break;case 35:h=true;break;case 36:h=false;break;case 37:break;case 38:break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!h||s.WTF)throw new Error("Unexpected record "+a+" "+r);}},s);delete s.supbooks;delete s["!row"];if(!f["!ref"]&&(l.s.r<2e6||o&&(o.e.r>0||o.e.c>0||o.s.r>0||o.s.c>0)))f["!ref"]=qr(o||l);if(s.sheetRows&&f["!ref"]){var P=et(f["!ref"]);if(s.sheetRows<+P.e.r){P.e.r=s.sheetRows-1;if(P.e.r>l.e.r)P.e.r=l.e.r;if(P.e.rl.e.c)P.e.c=l.e.c;if(P.e.c0)f["!merges"]=S;if(y.length>0)f["!cols"]=y;if(R.length>0)f["!rows"]=R;return f}function zu(e,r,t,a,n,i){if(r.v===undefined)return"";var s="";switch(r.t){case"b":s=r.v?"1":"0";break;case"d":r=V(r);r.z=r.z||C._table[14];r.v=P(H(r.v));r.t="n";break;case"n":;case"e":s=""+r.v;break;default:s=r.v;break;}var f={r:t,c:a};f.s=Rh(n.cellXfs,r,n);if(r.l)i["!links"].push([$r(f),r.l]);if(r.c)i["!comments"].push([$r(f),r.c]);switch(r.t){case"s":;case"str":if(n.bookSST){s=xh(n.Strings,r.v);f.t="s";f.v=s;Dr(e,"BrtCellIsst",bu(r,f))}else{f.t="str";Dr(e,"BrtCellSt",Su(r,f))}return;case"n":if(r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3)Dr(e,"BrtCellRk",ku(r,f));else Dr(e,"BrtCellReal",Cu(r,f));return;case"b":f.t="b";Dr(e,"BrtCellBool",pu(r,f));return;case"e":f.t="e";break;}Dr(e,"BrtCellBlank",uu(r,f))}function Vu(e,r,t,a,n){var i=et(r["!ref"]||"A1"),s,f="",o=[];Dr(e,"BrtBeginSheetData");var l=Array.isArray(r);var c=i.e.r;if(r["!rows"])c=Math.max(i.e.r,r["!rows"].length-1);for(var h=i.s.r;h<=c;++h){f=Hr(h);iu(e,r,i,h);if(h<=i.e.r)for(var u=i.s.c;u<=i.e.c;++u){if(h===i.s.r)o[u]=Xr(u);s=o[u]+f;var d=l?(r[h]||[])[u]:r[s];if(!d)continue;zu(e,d,h,u,a,r)}}Dr(e,"BrtEndSheetData")}function Xu(e,r){if(!r||!r["!merges"])return;Dr(e,"BrtBeginMergeCells",yu(r["!merges"].length));r["!merges"].forEach(function(r){Dr(e,"BrtMergeCell",Iu(r))});Dr(e,"BrtEndMergeCells")}function Gu(e,r,t,a,n){if(!r||!r["!cols"])return;Dr(e,"BrtBeginColInfos");r["!cols"].forEach(function(r,t){if(r)Dr(e,"BrtColInfo",Pu(t,r))});Dr(e,"BrtEndColInfos")}function ju(e,r,t){r["!links"].forEach(function(r){if(!r[1].Target)return;var a=ba(t,-1,r[1].Target.replace(/#.*$/,""),ua.HLINK);Dr(e,"BrtHLink",Du(r,a))});delete r["!links"]}function Ku(e,r,t,a){if(r["!comments"].length>0){var n=ba(a,-1,"../drawings/vmlDrawing"+(t+1)+".vml",ua.VML);Dr(e,"BrtLegacyDrawing",St("rId"+n));r["!legacy"]=n}}function Yu(e,r){if(!r["!autofilter"])return;Dr(e,"BrtBeginAFilter",It(Jr(r["!autofilter"].ref)));Dr(e,"BrtEndAFilter")}function $u(e,r){Dr(e,"BrtBeginWsViews");{Dr(e,"BrtBeginWsView",Uu(r));Dr(e,"BrtEndWsView")}Dr(e,"BrtEndWsViews")}function Zu(e,r){}function Qu(e,r){if(!r["!protect"])return;Dr(e,"BrtSheetProtection",Hu(r["!protect"]))}function Ju(e,r,t,a){var n=Rr();var i=t.SheetNames[e],s=t.Sheets[i]||{};var f=et(s["!ref"]||"A1");s["!links"]=[];s["!comments"]=[];Dr(n,"BrtBeginSheet");Dr(n,"BrtWsProp",cu(i));Dr(n,"BrtWsDim",fu(f));$u(n,s);Zu(n,s);Gu(n,s,e,r,t);Vu(n,s,e,r,t);Qu(n,s);Yu(n,s);Xu(n,s);ju(n,s,a);if(s["!margins"])Dr(n,"BrtMargins",Mu(s["!margins"]));Ku(n,s,e,a);Dr(n,"BrtEndSheet");return n.end()}function qu(e){var r=[];(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach(function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);if(!t)return;r[+t[1]]=+t[2]});var t=ve((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return[r,t]}function ed(e,r,t,a,n,i){var s=i||{"!type":"chart"};if(!e)return i;var f=0,o=0,l="A";var c={s:{r:2e6,c:2e6},e:{r:0,c:0}};(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(e){ +var r=qu(e);c.s.r=c.s.c=0;c.e.c=f;l=Xr(f);r[0].forEach(function(e,t){s[l+Hr(t)]={t:"n",v:e,z:r[1]};o=t});if(c.e.r0)s["!ref"]=qr(c);return s}ua.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";var rd=Ue("chartsheet",null,{xmlns:ze.main[0],"xmlns:r":ze.r});function td(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var f;if(f=e.match(/drawing r:id="(.*?)"/))s["!rel"]=f[1];if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function ad(e,r,t,a){var n=[se,rd];n[n.length]=Ue("drawing",null,{"r:id":"rId1"});ba(a,-1,"../drawings/drawing"+(e+1)+".xml",ua.DRAW);if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function nd(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var f=[];var o=false;yr(e,function l(e,t,a){switch(a){case 550:s["!rel"]=e;break;case 562:;case 652:;case 651:;case 669:;case 679:;case 551:;case 552:;case 476:break;case 35:o=true;break;case 36:o=false;break;case 37:f.push(t);break;case 38:f.pop();break;default:if((t||"").indexOf("Begin")>0)f.push(t);else if((t||"").indexOf("End")>0)f.pop();else if(!o||r.WTF)throw new Error("Unexpected record "+a+" "+t);}},r);if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function id(e,r,t,a){var n=Rr();Dr(n,"BrtBeginSheet");Dr(n,"BrtEndSheet");return n.end()}var sd=[["allowRefreshQuery",false,"bool"],["autoCompressPictures",true,"bool"],["backupFile",false,"bool"],["checkCompatibility",false,"bool"],["codeName",""],["date1904",false,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",false,"bool"],["hidePivotFieldList",false,"bool"],["promptedSolutions",false,"bool"],["publishItems",false,"bool"],["refreshAllConnections",false,"bool"],["saveExternalLinkValues",true,"bool"],["showBorderUnselectedTables",true,"bool"],["showInkAnnotation",true,"bool"],["showObjects","all"],["showPivotChartFilter",false,"bool"],["updateLinks","userSet"]];var fd=[["activeTab",0,"int"],["autoFilterDateGrouping",true,"bool"],["firstSheet",0,"int"],["minimized",false,"bool"],["showHorizontalScroll",true,"bool"],["showSheetTabs",true,"bool"],["showVerticalScroll",true,"bool"],["tabRatio",600,"int"],["visibility","visible"]];var od=[];var ld=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var cd=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function hd(e,r){for(var t=0;t!=e.length;++t){var a=e[t];for(var n=0;n!=r.length;++n){var i=r[n];if(a[i[0]]==null)a[i[0]]=i[1];else switch(i[2]){case"bool":if(typeof a[i[0]]=="string")a[i[0]]=Ae(a[i[0]],i[0]);break;case"int":if(typeof a[i[0]]=="string")a[i[0]]=parseInt(a[i[0]],10);break;}}}}function ud(e,r){for(var t=0;t!=r.length;++t){var a=r[t];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case"bool":if(typeof e[a[0]]=="string")e[a[0]]=Ae(e[a[0]],a[0]);break;case"int":if(typeof e[a[0]]=="string")e[a[0]]=parseInt(e[a[0]],10);break;}}}function dd(e){ud(e.WBProps,sd);ud(e.CalcPr,ld);hd(e.WBView,fd);hd(e.Sheets,od);Th.date1904=Ae(e.WBProps.date1904,"date1904")}function pd(e){if(!e.Workbook)return"false";if(!e.Workbook.WBProps)return"false";return Ae(e.Workbook.WBProps.date1904)?"true":"false"}var vd="][*?/\\".split("");function gd(e,r){if(e.length>31){if(r)return false;throw new Error("Sheet names cannot exceed 31 chars")}var t=true;vd.forEach(function(a){if(e.indexOf(a)==-1)return;if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=false});return t}function bd(e){e.forEach(function(r,t){gd(r);for(var a=0;a":break;case"":;case"":break;case"":break;case"":sd.forEach(function(e){if(c[e[0]]==null)return;switch(e[2]){case"bool":t.WBProps[e[0]]=Ae(c[e[0]],e[0]);break;case"int":t.WBProps[e[0]]=parseInt(c[e[0]],10);break;default:t.WBProps[e[0]]=c[e[0]];}});break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":a=false;break;case"":{i.Ref=e.slice(s,l);t.Names.push(i)}break;case"":break;case"":delete c[0];t.CalcPr=c;break;case"":break;case"":;case"":;case"":break;case"":;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":;case"":;case"":break;case"":a=false;break;case"":a=true;break;case"":a=false;break;case"0;var n={codeName:"ThisWorkbook"};if(e.Workbook&&e.Workbook.WBProps){if(e.Workbook.WBProps.codeName)n.codeName=e.Workbook.WBProps.codeName;sd.forEach(function(r){if(e.Workbook.WBProps[r[0]]==null)return;if(e.Workbook.WBProps[r[0]]==r[1])return;n[r[0]]=e.Workbook.WBProps[r[0]]})}t[t.length]=Ue("workbookPr",null,n);t[t.length]="";var i=e.Workbook&&e.Workbook.Sheets||[];for(var s=0;s!=e.SheetNames.length;++s){var f={name:me(e.SheetNames[s].substr(0,31))};f.sheetId=""+(s+1);f["r:id"]="rId"+(s+1);if(i[s])switch(i[s].Hidden){case 1:f.state="hidden";break;case 2:f.state="veryHidden";break;}t[t.length]=Ue("sheet",null,f)}t[t.length]="";if(a){t[t.length]="";if(e.Workbook&&e.Workbook.Names)e.Workbook.Names.forEach(function(e){var r={name:e.Name};if(e.Comment)r.comment=e.Comment;if(e.Sheet!=null)r.localSheetId=""+e.Sheet;if(!e.Ref)return;t[t.length]=Ue("definedName",String(e.Ref),r)});t[t.length]=""}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Sd(e,r){var t={};t.Hidden=e._R(4);t.iTabID=e._R(4);t.strRelID=wt(e,r-8);t.name=st(e);return t}function Ad(e,r){if(!r)r=Ir(127);r._W(4,e.Hidden);r._W(4,e.iTabID);St(e.strRelID,r);ft(e.name.substr(0,31),r);return r.length>r.l?r.slice(0,r.l):r}function Bd(e,r){var t={};var a=e._R(4);t.defaultThemeVersion=e._R(4);var n=r>8?st(e):"";if(n.length>0)t.codeName=n;t.autoCompressPictures=!!(a&65536);t.backupFile=!!(a&64);t.checkCompatibility=!!(a&4096);t.date1904=!!(a&1);t.filterPrivacy=!!(a&8);t.hidePivotFieldList=!!(a&1024);t.promptedSolutions=!!(a&16);t.publishItems=!!(a&2048);t.refreshAllConnections=!!(a&262144);t.saveExternalLinkValues=!!(a&128);t.showBorderUnselectedTables=!!(a&4);t.showInkAnnotation=!!(a&32);t.showObjects=["all","placeholders","none"][a>>13&3];t.showPivotChartFilter=!!(a&32768);t.updateLinks=["userSet","never","always"][a>>8&3];return t}function _d(e,r){if(!r)r=Ir(72);var t=0;if(e){if(e.filterPrivacy)t|=8}r._W(4,t);r._W(4,0);bt("ThisWorkbook",r);return r.slice(0,r.l)}function Td(e,r){var t={};e._R(4);t.ArchID=e._R(4);e.l+=r-8;return t}function xd(e,r,t){var a=e.l+r;var n=e._R(4);var i=e._R(1);var s=e._R(4);var f=Et(e);var o=gh(e,0,t);var l=mt(e);e.l=a;var c={Name:f,Ptg:o,Comment:l};if(s<268435455)c.Sheet=s;return c}function Id(e,r){var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var a=false,n;if(!r)r={};r.biff=12;var i=[];var s=[];s.SheetNames=[];yr(e,function f(e,n,o){switch(o){case 156:s.SheetNames.push(e.name);t.Sheets.push(e);break;case 153:t.WBProps=e;break;case 39:e.Ref=sh(e.Ptg,null,null,s,r);delete e.Ptg;i.push(e);break;case 1036:break;case 357:;case 358:;case 355:;case 667:;case 362:;case 361:break;case 2071:;case 534:;case 677:;case 158:;case 157:;case 610:;case 2050:;case 155:;case 548:;case 676:;case 128:;case 665:;case 2128:;case 2125:;case 549:;case 2053:;case 596:;case 2076:;case 2075:;case 2082:;case 397:;case 154:;case 1117:;case 553:;case 2091:break;case 35:a=true;break;case 36:a=false;break;case 37:break;case 38:break;case 16:break;default:if((n||"").indexOf("Begin")>0){}else if((n||"").indexOf("End")>0){}else if(!a||r.WTF)throw new Error("Unexpected record "+o+" "+n);}},r);dd(t);t.Names=i;return t}function yd(e,r,t){Dr(e,"BrtBeginBundleShs");for(var a=0;a!=r.SheetNames.length;++a){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[a]&&r.Workbook.Sheets[a].Hidden||0;var i={Hidden:n,iTabID:a+1,strRelID:"rId"+(a+1),name:r.SheetNames[a]};Dr(e,"BrtBundleSh",Ad(i))}Dr(e,"BrtEndBundleShs")}function Rd(e,t){if(!t)t=Ir(127);for(var a=0;a!=4;++a)t._W(4,0);ft("SheetJS",t);ft(r.version,t);ft(r.version,t);ft("7262",t);t.length=t.l;return t.length>t.l?t.slice(0,t.l):t}function Dd(e,r){if(!r)r=Ir(29);r._W(-4,0);r._W(-4,460);r._W(4,28800);r._W(4,17600);r._W(4,500);r._W(4,e);r._W(4,e);var t=120;r._W(1,t);return r.length>r.l?r.slice(0,r.l):r}function Od(e,r,t){if(!r.Workbook||!r.Workbook.Sheets)return;var a=r.Workbook.Sheets;var n=0,i=-1,s=-1;for(;ni)return;Dr(e,"BrtBeginBookViews");Dr(e,"BrtBookView",Dd(i));Dr(e,"BrtEndBookViews")}function Fd(e,r){if(!r)r=Ir(26);r._W(4,0);r._W(4,1);r._W(4,0);Rt(0,r);r._W(-4,1023);r._W(1,51);r._W(1,0);return r}function Pd(e,r){if(!r)r=Ir(1);r._W(1,0);return r}function Nd(e,r){var t=Rr();Dr(t,"BrtBeginBook");Dr(t,"BrtFileVersion",Rd());Dr(t,"BrtWbProp",_d(e.Workbook&&e.Workbook.WBProps||null));Od(t,e,r);yd(t,e,r);Dr(t,"BrtEndBook");return t.end()}function Ld(e,r,t){if(r.slice(-4)===".bin")return Id(e,t);return Ed(e,t)}function Md(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Wu(e,t,a,n,i,s);return Wh(e,t,a,n,i,s)}function Ud(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return nd(e,t,a,n,i,s);return td(e,t,a,n,i,s)}function Hd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return ll(e,t,a,n,i,s);return cl(e,t,a,n,i,s)}function Wd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return fl(e,t,a,n,i,s);return ol(e,t,a,n,i,s)}function zd(e,r,t,a){if(r.slice(-4)===".bin")return oo(e,t,a);return Xf(e,t,a)}function Vd(e,r,t){return Io(e,t)}function Xd(e,r,t){if(r.slice(-4)===".bin")return Ls(e,t);return Os(e,t)}function Gd(e,r,t){if(r.slice(-4)===".bin")return nl(e,t);return Qo(e,t)}function jd(e,r,t){if(r.slice(-4)===".bin")return zo(e,r,t);return Uo(e,r,t)}function Kd(e,r,t){if(r.slice(-4)===".bin")return Go(e,r,t);return Xo(e,r,t)}function Yd(e,r,t){return(r.slice(-4)===".bin"?Nd:wd)(e,t)}function $d(e,r,t,a,n){return(r.slice(-4)===".bin"?Ju:tu)(e,t,a,n)}function Zd(e,r,t,a,n){return(r.slice(-4)===".bin"?id:ad)(e,t,a,n)}function Qd(e,r,t){return(r.slice(-4)===".bin"?Eo:jf)(e,t)}function Jd(e,r,t){return(r.slice(-4)===".bin"?Hs:Ps)(e,t)}function qd(e,r,t){return(r.slice(-4)===".bin"?il:qo)(e,t)}var ep=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var rp=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var tp=function(e){return String.fromCharCode(e)};function ap(e,r){var t=e.split(/\s+/);var a=[];if(!r)a[0]=t[0];if(t.length===1)return a;var n=e.match(ep),i,s,f,o;if(n)for(o=0;o!=n.length;++o){i=n[o].match(rp);if((s=i[1].indexOf(":"))===-1)a[i[1]]=i[2].substr(1,i[2].length-2);else{if(i[1].substr(0,6)==="xmlns:")f="xmlns"+i[1].substr(6);else f=i[1].substr(s+1);a[f]=i[2].substr(1,i[2].length-2)}}return a}function np(e){var r=e.split(/\s+/);var t={};if(r.length===1)return t;var a=e.match(ep),n,i,s,f;if(a)for(f=0;f!=a.length;++f){n=a[f].match(rp);if((i=n[1].indexOf(":"))===-1)t[n[1]]=n[2].substr(1,n[2].length-2);else{if(n[1].substr(0,6)==="xmlns:")s="xmlns"+n[1].substr(6);else s=n[1].substr(i+1);t[s]=n[2].substr(1,n[2].length-2)}}return t}function ip(e,r){var t=k[e]||ve(e);if(t==="General")return C._general(r);return C.format(t,r)}function sp(e,r,t,a){var n=a;switch((t[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":n=Ae(a);break;case"i2":;case"int":n=parseInt(a,10);break;case"r4":;case"float":n=parseFloat(a);break;case"date":;case"dateTime.tz":n=H(a);break;case"i8":;case"string":;case"fixed":;case"uuid":;case"bin.base64":break;default:throw new Error("bad custprop:"+t[0]);}e[ve(r[3])]=n}function fp(e,r,t){if(e.t==="z")return;if(!t||t.cellText!==false)try{if(e.t==="e"){e.w=e.w||Dt[e.v]}else if(r==="General"){if(e.t==="n"){if((e.v|0)===e.v)e.w=C._general_int(e.v);else e.w=C._general_num(e.v)}else e.w=C._general(e.v)}else e.w=ip(r||"General",e.v)}catch(a){if(t.WTF)throw a}try{var n=k[r]||r||"General";if(t.cellNF)e.z=n;if(t.cellDates&&e.t=="n"&&C.is_date(n)){var i=C.parse_date_code(e.v);if(i){e.t="d";e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u)}}}catch(a){if(t.WTF)throw a}}function op(e,r,t){if(t.cellStyles){if(r.Interior){var a=r.Interior;if(a.Pattern)a.patternType=Ff[a.Pattern]||a.Pattern}}e[r.ID]=r}function lp(e,r,t,a,n,i,s,f,o,l){var c="General",h=a.StyleID,u={};l=l||{};var d=[];var p=0;if(h===undefined&&f)h=f.StyleID;if(h===undefined&&s)h=s.StyleID;while(i[h]!==undefined){if(i[h].nf)c=i[h].nf;if(i[h].Interior)d.push(i[h].Interior);if(!i[h].Parent)break;h=i[h].Parent}switch(t.Type){case"Boolean":a.t="b";a.v=Ae(e);break;case"String":a.t="s";a.r=we(ve(e));a.v=e.indexOf("<")>-1?ve(r):a.r;break;case"DateTime":if(e.slice(-1)!="Z")e+="Z";a.v=(H(e)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(a.v!==a.v)a.v=ve(e);else if(a.v<60)a.v=a.v-1;if(!c||c=="General")c="yyyy-mm-dd";case"Number":if(a.v===undefined)a.v=+e;if(!a.t)a.t="n";break;case"Error":a.t="e";a.v=Ot[e];if(l.cellText!==false)a.w=e;break;default:a.t="s";a.v=we(r||e);break;}fp(a,c,l);if(l.cellFormula!==false){if(a.Formula){var v=ve(a.Formula);if(v.charCodeAt(0)==61)v=v.substr(1);a.f=hl(v,n);delete a.Formula;if(a.ArrayRange=="RC")a.F=hl("RC:RC",n);else if(a.ArrayRange){a.F=hl(a.ArrayRange,n);o.push([et(a.F),a.F])}}else{for(p=0;p=o[p][0].s.r&&n.r<=o[p][0].e.r)if(n.c>=o[p][0].s.c&&n.c<=o[p][0].e.c)a.F=o[p][1]}}if(l.cellStyles){d.forEach(function(e){if(!u.patternType&&e.patternType)u.patternType=e.patternType});a.s=u}a.ixfe=a.StyleID!==undefined?a.StyleID:"Default"}function cp(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function hp(e){if(d&&Buffer.isBuffer(e))return e.toString("utf8");if(typeof e==="string")return e;throw new Error("Bad input format: expected Buffer or string")}var up=/<(\/?)([^\s?>!\/:]*:|)([^\s?>]*[^\s?>\/])[^>]*>/gm;function dp(e,r){var t=r||{};E(C);var a=o(hp(e));if(t.type=="binary"||t.type=="base64"){if(typeof cptable!=="undefined")a=cptable.utils.decode(65001,i(a));else a=Be(a)}var n=a.slice(0,1024).toLowerCase(),s=false;if(n.indexOf("=0)s=true});if(s)return Zp.to_workbook(a,t);var f;var l=[],h;if(c!=null&&t.dense==null)t.dense=c;var u={},d=[],p=t.dense?[]:{},v="";var g={},b={},m={};var w=ap(''),S=0;var A=0,B=0;var _={s:{r:2e6,c:2e6},e:{r:0,c:0}};var T={},x={};var I="",y=0;var R=[];var D={},O={},F=0,P={};var N=[],L={};var M=[],U,H=false;var W=[];var z=[],X={},G=0,j=0;var K={Sheets:[],WBProps:{date1904:false}},Y={};up.lastIndex=0;a=a.replace(//gm,"");while(f=up.exec(a))switch(f[3]){case"Data":if(l[l.length-1][1])break;if(f[1]==="/")lp(a.slice(S,f.index),I,w,l[l.length-1][0]=="Comment"?L:b,{c:A,r:B},T,M[A],m,W,t);else{I="";w=ap(f[0]);S=f.index+f[0].length}break;case"Cell":if(f[1]==="/"){if(N.length>0)b.c=N;if((!t.sheetRows||t.sheetRows>B)&&b.v!==undefined){if(t.dense){if(!p[B])p[B]=[];p[B][A]=b}else p[Xr(A)+Hr(B)]=b}if(b.HRef){b.l={Target:b.HRef,Tooltip:b.HRefScreenTip};delete b.HRef;delete b.HRefScreenTip}if(b.MergeAcross||b.MergeDown){G=A+(parseInt(b.MergeAcross,10)|0);j=B+(parseInt(b.MergeDown,10)|0);R.push({s:{c:A,r:B},e:{c:G,r:j}})}if(!t.sheetStubs){if(b.MergeAcross)A=G+1;else++A}else if(b.MergeAcross||b.MergeDown){for(var $=A;$<=G;++$){for(var Z=B;Z<=j;++Z){if($>A||Z>B){if(t.dense){if(!p[Z])p[Z]=[];p[Z][$]={t:"z"}}else p[Xr($)+Hr(Z)]={t:"z"}}}}A=G+1}else++A}else{b=np(f[0]);if(b.Index)A=+b.Index-1;if(A<_.s.c)_.s.c=A;if(A>_.e.c)_.e.c=A;if(f[0].slice(-2)==="/>")++A;N=[]}break;case"Row":if(f[1]==="/"||f[0].slice(-2)==="/>"){if(B<_.s.r)_.s.r=B;if(B>_.e.r)_.e.r=B;if(f[0].slice(-2)==="/>"){m=ap(f[0]);if(m.Index)B=+m.Index-1}A=0;++B}else{m=ap(f[0]);if(m.Index)B=+m.Index-1;X={};if(m.AutoFitHeight=="0"||m.Height){X.hpx=parseInt(m.Height,10);X.hpt=Df(X.hpx);z[B]=X}if(m.Hidden=="1"){X.hidden=true;z[B]=X}}break;case"Worksheet":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"));d.push(v);if(_.s.r<=_.e.r&&_.s.c<=_.e.c)p["!ref"]=qr(_);if(R.length)p["!merges"]=R;if(M.length>0)p["!cols"]=M;if(z.length>0)p["!rows"]=z;u[v]=p}else{_={s:{r:2e6,c:2e6},e:{r:0,c:0}};B=A=0;l.push([f[3],false]);h=ap(f[0]);v=ve(h.Name);p=t.dense?[]:{};R=[];W=[];z=[];Y={name:v,Hidden:0};K.Sheets.push(Y)}break;case"Table":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else if(f[0].slice(-2)=="/>")break;else{g=ap(f[0]);l.push([f[3],false]);M=[];H=false}break;case"Style":if(f[1]==="/")op(T,x,t);else x=ap(f[0]);break;case"NumberFormat":x.nf=ve(ap(f[0]).Format||"General");if(k[x.nf])x.nf=k[x.nf];for(var Q=0;Q!=392;++Q)if(C._table[Q]==x.nf)break;if(Q==392)for(Q=57;Q!=392;++Q)if(C._table[Q]==null){C.load(x.nf,Q);break}break;case"Column":if(l[l.length-1][0]!=="Table")break;U=ap(f[0]);if(U.Hidden){U.hidden=true;delete U.Hidden}if(U.Width)U.wpx=parseInt(U.Width,10);if(!H&&U.wpx>10){H=true;Ef=bf;for(var J=0;J0)re.Sheet=K.Sheets.length-1;K.Names.push(re);break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(f[0].slice(-2)==="/>")break;else if(f[1]==="/")I+=a.slice(y,f.index);else y=f.index+f[0].length;break;case"Interior":if(!t.cellStyles)break;x.Interior=ap(f[0]);break;case"Protection":break;case"Author":;case"Title":;case"Description":;case"Created":;case"Keywords":;case"Subject":;case"Category":;case"Company":;case"LastAuthor":;case"LastSaved":;case"LastPrinted":;case"Version":;case"Revision":;case"TotalTime":;case"HyperlinkBase":;case"Manager":;case"ContentStatus":;case"Identifier":;case"Language":;case"AppName":if(f[0].slice(-2)==="/>")break;else if(f[1]==="/")Wa(D,f[3],a.slice(F,f.index));else F=f.index+f[0].length;break;case"Paragraphs":break;case"Styles":;case"Workbook":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else l.push([f[3],false]);break;case"Comment":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"));cp(L);N.push(L)}else{l.push([f[3],false]);h=ap(f[0]);L={a:h.Author}}break;case"AutoFilter":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else if(f[0].charAt(f[0].length-2)!=="/"){var te=ap(f[0]);p["!autofilter"]={ref:hl(te.Range).replace(/\$/g,"")};l.push([f[3],true])}break;case"Name":break;case"ComponentOptions":;case"DocumentProperties":;case"CustomDocumentProperties":;case"OfficeDocumentSettings":;case"PivotTable":;case"PivotCache":;case"Names":;case"MapInfo":;case"PageBreaks":;case"QueryTable":;case"DataValidation":;case"Sorting":;case"Schema":;case"data":;case"ConditionalFormatting":;case"SmartTagType":;case"SmartTags":;case"ExcelWorkbook":;case"WorkbookOptions":;case"WorksheetOptions":if(f[1]==="/"){if((h=l.pop())[0]!==f[3])throw new Error("Bad state: "+h.join("|"))}else if(f[0].charAt(f[0].length-2)!=="/")l.push([f[3],true]);break;default:if(l.length==0&&f[3]=="document")return rv(a,t);if(l.length==0&&f[3]=="UOF")return rv(a,t);var ae=true;switch(l[l.length-1][0]){case"OfficeDocumentSettings":switch(f[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:ae=false;}break;case"ComponentOptions":switch(f[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:ae=false;}break;case"ExcelWorkbook":switch(f[3]){case"Date1904":K.WBProps.date1904=true;break;case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:ae=false;}break;case"WorkbookOptions":switch(f[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:ae=false;}break;case"WorksheetOptions":switch(f[3]){case"Visible":if(f[0].slice(-2)==="/>"){}else if(f[1]==="/")switch(a.slice(F,f.index)){case"SheetHidden":Y.Hidden=1;break;case"SheetVeryHidden":Y.Hidden=2;break;}else F=f.index+f[0].length;break;case"Header":if(!p["!margins"])yh(p["!margins"]={},"xlml");p["!margins"].header=he(f[0]).Margin;break;case"Footer":if(!p["!margins"])yh(p["!margins"]={},"xlml");p["!margins"].footer=he(f[0]).Margin;break;case"PageMargins":var ne=he(f[0]);if(!p["!margins"])yh(p["!margins"]={},"xlml");if(ne.Top)p["!margins"].top=ne.Top;if(ne.Left)p["!margins"].left=ne.Left;if(ne.Right)p["!margins"].right=ne.Right;if(ne.Bottom)p["!margins"].bottom=ne.Bottom;break;case"Unsynced":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"PageSetup":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:ae=false;}break;case"PivotTable":;case"PivotCache":switch(f[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:ae=false;}break;case"PageBreaks":switch(f[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:ae=false;}break;case"AutoFilter":switch(f[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:ae=false;}break;case"QueryTable":switch(f[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:ae=false;}break;case"Sorting":;case"ConditionalFormatting":;case"DataValidation":switch(f[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:ae=false;}break;case"MapInfo":;case"Schema":;case"data":switch(f[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":;case"element":;case"complexType":;case"datatype":;case"all":;case"attribute":;case"extends":break;case"row":break;default:ae=false;}break;case"SmartTags":break;default:ae=false;break;}if(ae)break;if(!l[l.length-1][1])throw"Unrecognized tag: "+f[3]+"|"+l.join("|");if(l[l.length-1][0]==="CustomDocumentProperties"){if(f[0].slice(-2)==="/>")break;else if(f[1]==="/")sp(O,f,P,a.slice(F,f.index));else{P=f;F=f.index+f[0].length}break}if(t.WTF)throw"Unrecognized tag: "+f[3]+"|"+l.join("|");}var ie={};if(!t.bookSheets&&!t.bookProps)ie.Sheets=u;ie.SheetNames=d;ie.Workbook=K;ie.SSF=C.get_table();ie.Props=D;ie.Custprops=O;return ie}function pp(e){if(Array.isArray(e))return e.map(tp).join("");var r=[];for(var t=0;t");if(e["!margins"].header)n.push(Ue("Header",null,{"x:Margin":e["!margins"].header}));if(e["!margins"].footer)n.push(Ue("Footer",null,{"x:Margin":e["!margins"].footer}));n.push(Ue("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"}));n.push("")}if(a&&a.Workbook&&a.Workbook.Sheets&&a.Workbook.Sheets[t]){if(a.Workbook.Sheets[t].Hidden)n.push(Ue("Visible",a.Workbook.Sheets[t].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var i=0;i")}}if(e["!protect"]){n.push(Le("ProtectContents","True"));if(e["!protect"].objects)n.push(Le("ProtectObjects","True")); +if(e["!protect"].scenarios)n.push(Le("ProtectScenarios","True"));if(e["!protect"].selectLockedCells!=null&&!e["!protect"].selectLockedCells)n.push(Le("EnableSelection","NoSelection"));else if(e["!protect"].selectUnlockedCells!=null&&!e["!protect"].selectUnlockedCells)n.push(Le("EnableSelection","UnlockedCells"));[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(r){if(e["!protect"][r[0]])n.push("<"+r[1]+"/>")})}if(n.length==0)return"";return Ue("WorksheetOptions",n.join(""),{xmlns:Ve.x})}function Ep(e){return e.map(function(e){var r=Se(e.t||"");var t=Ue("ss:Data",r,{xmlns:"http://www.w3.org/TR/REC-html40"});return Ue("Comment",t,{"ss:Author":e.a})}).join("")}function kp(e,r,t,a,n,i,s){if(!e||e.v==undefined&&e.f==undefined)return"";var f={};if(e.f)f["ss:Formula"]="="+me(dl(e.f,s));if(e.F&&e.F.substr(0,r.length)==r){var o=Yr(e.F.substr(r.length+1));f["ss:ArrayRange"]="RC:R"+(o.r==s.r?"":"["+(o.r-s.r)+"]")+"C"+(o.c==s.c?"":"["+(o.c-s.c)+"]")}if(e.l&&e.l.Target){f["ss:HRef"]=me(e.l.Target);if(e.l.Tooltip)f["x:HRefScreenTip"]=me(e.l.Tooltip)}if(t["!merges"]){var l=t["!merges"];for(var c=0;c!=l.length;++c){if(l[c].s.c!=s.c||l[c].s.r!=s.r)continue;if(l[c].e.c>l[c].s.c)f["ss:MergeAcross"]=l[c].e.c-l[c].s.c;if(l[c].e.r>l[c].s.r)f["ss:MergeDown"]=l[c].e.r-l[c].s.r}}var h="",u="";switch(e.t){case"z":return"";case"n":h="Number";u=String(e.v);break;case"b":h="Boolean";u=e.v?"1":"0";break;case"e":h="Error";u=Dt[e.v];break;case"d":h="DateTime";u=new Date(e.v).toISOString();break;case"s":h="String";u=me(e.v||"");break;}var d=e.v!=null?u:"";var p=''+d+"";if((e.c||[]).length>0)p+=Ep(e.c);return Ue("Cell",p,f)}function wp(e,r){var t='"}function Sp(e,r,t,a){if(!e["!ref"])return"";var n=et(e["!ref"]);var i=e["!merges"]||[],s=0;var f=[];if(e["!cols"])e["!cols"].forEach(function(e,r){If(e);var t=!!e.width;var a=Ih(r,e);var n={"ss:Index":r+1};if(t)n["ss:Width"]=kf(a.width);if(e.hidden)n["ss:Hidden"]="1";f.push(Ue("Column",null,n))});var o=Array.isArray(e);for(var l=n.s.r;l<=n.e.r;++l){var c=[wp(l,(e["!rows"]||[])[l])];for(var h=n.s.c;h<=n.e.c;++h){var u=false;for(s=0;s!=i.length;++s){if(i[s].s.c>h)continue;if(i[s].s.r>l)continue;if(i[s].e.c");if(c.length>2)f.push(c.join(""))}return f.join("")}function Ap(e,r,t){var a=[];var n=t.SheetNames[e];var i=t.Sheets[n];var s=i?Sp(i,r,e,t):"";if(s.length>0)a.push(""+s+"
    ");a.push(Cp(i,r,e,t));return a.join("")}function Bp(e,r){var t=[];t.push(gp(e,r));t.push(bp(e,r));t.push(mp(e,r));for(var a=0;a400)throw new Error("Unsupported Clipboard: "+n.toString(16));a+=n;}n=er(t,a);a+=n.length===0?0:5+n.length;r.Reserved1=n;if((n=pr(t,a))!==1907550708)return r;throw new Error("Unsupported Unicode Extension")}function Tp(e,r,t,a){var n=t;var i=[];var s=r.slice(r.l,r.l+n);if(a&&a.enc&&a.enc.insitu)switch(e.n){case"BOF":;case"FilePass":;case"FileLock":;case"InterfaceHdr":;case"RRDInfo":;case"RRDHead":;case"UsrExcl":break;default:if(s.length===0)break;a.enc.insitu(s);}i.push(s);r.l+=n;var f=Np[ur(r,r.l)];var o=0;while(f!=null&&f.n.slice(0,8)==="Continue"){n=ur(r,r.l+2);o=r.l+4;if(f.n=="ContinueFrt")o+=4;else if(f.n.slice(0,11)=="ContinueFrt")o+=12;i.push(r.slice(o,r.l+4+n));r.l+=4+n;f=Np[ur(r,r.l)]}var l=g(i);Br(l,0);var c=0;l.lens=[];for(var h=0;h1)return;if(!_)return;if(t.cellStyles&&r.XF&&r.XF.data)D(e,r,t);delete r.ixfe;delete r.XF;p=e;v=$r(e);if(o.s){if(e.ro.e.r)o.e.r=e.r+1;if(e.c+1>o.e.c)o.e.c=e.c+1}if(t.cellFormula&&r.f){for(var a=0;ae.c)continue;if(S[a][0].s.r>e.r)continue;if(S[a][0].e.c=t.sheetRows)_=false;else{if(t.dense){if(!i[e.r])i[e.r]=[];i[e.r][e.c]=r}else i[v]=r}};var F={enc:false,sbcch:0,snames:[],sharedf:w,arrayf:S,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,cellStyles:!!r&&!!r.cellStyles,WTF:!!r&&!!r.wtf};if(r.password)F.password=r.password;var P=[];var N=[];var L=[],M=[];var U=0,H=0;var W=false;var z=[];z.SheetNames=F.snames;z.sharedf=F.sharedf;z.arrayf=F.arrayf;z.names=[];z.XTI=[];var V="";var X=0;var G=0;var j=[];var K=[];var Y;F.codepage=1200;n(1200);while(e.l0)Y.Sheet=re.itab-1;z.names.push(Y);if(!z[0])z[0]=[];z[z.length-1].push(re);if(re.Name=="_xlnm._FilterDatabase"&&re.itab>0)if(re.rgce&&re.rgce[0]&&re.rgce[0][0]&&re.rgce[0][0][0]=="PtgArea3d")K[re.itab-1]={ref:qr(re.rgce[0][0][1][2])};break;case"ExternCount":F.ExternCount=re;break;case"ExternSheet":if(z.length==0){z[0]=[];z[0].XTI=[]}z[z.length-1].XTI=z[z.length-1].XTI.concat(re);z.XTI=z.XTI.concat(re);break;case"NameCmt":if(F.biff<8)break;if(Y!=null)Y.Comment=re[1];break;case"Protect":i["!protect"]=re;break;case"Password":if(re!==0&&F.WTF)console.error("Password verifier: "+re);break;case"Prot4Rev":;case"Prot4RevPass":break;case"BoundSheet8":{s[re.pos]=re;F.snames.push(re.name)}break;case"EOF":{if(--X)break;if(o.e){if(o.e.r>0&&o.e.c>0){o.e.r--;o.e.c--;i["!ref"]=qr(o);o.e.r++;o.e.c++}if(P.length>0)i["!merges"]=P;if(N.length>0)i["!objects"]=N;if(L.length>0)i["!cols"]=L;if(M.length>0)i["!rows"]=M;I.Sheets.push(y)}if(u==="")d=i;else a[u]=i;i=r.dense?[]:{}}break;case"BOF":{if(F.biff===8)switch(Z){case 9:F.biff=2;break;case 521:F.biff=3;break;case 1033:F.biff=4;break;default:switch(re.BIFFVer){case 1280:F.biff=5;break;case 1536:F.biff=8;break;case 2:F.biff=2;break;case 7:F.biff=2;break;};}if(X++)break;_=true;i=r.dense?[]:{};if(F.biff<5){if(u==="")u="Sheet1";o={s:{r:0,c:0},e:{r:0,c:0}};var ae={pos:e.l-Q,name:u};s[ae.pos]=ae;F.snames.push(u)}else u=(s[$]||{name:""}).name;if(re.dt==32)i["!type"]="chart";P=[];N=[];S=[];F.arrayf=S;L=[];M=[];U=H=0;W=false;y={Hidden:(s[$]||{hs:0}).hs,name:u}}break;case"Number":;case"BIFF2NUM":;case"BIFF2INT":{if(i["!type"]=="chart")if(r.dense?(i[re.r]||[])[re.c]:i[$r({c:re.c,r:re.r})])++re.c;A={ixfe:re.ixfe,XF:T[re.ixfe]||{},v:re.val,t:"n"};if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"BoolErr":{A={ixfe:re.ixfe,XF:T[re.ixfe],v:re.val,t:re.t};if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"RK":{A={ixfe:re.ixfe,XF:T[re.ixfe],v:re.rknum,t:"n"};if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"MulRk":{for(var ne=re.c;ne<=re.C;++ne){var ie=re.rkrec[ne-re.c][0];A={ixfe:ie,XF:T[ie],v:re.rkrec[ne-re.c][1],t:"n"};if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:ne,r:re.r},A,r)}}break;case"Formula":{if(re.val=="String"){l=re;break}A=Ip(re.val,re.cell.ixfe,re.tt);A.XF=T[A.ixfe];if(r.cellFormula){var se=re.formula;if(se&&se[0]&&se[0][0]&&se[0][0][0]=="PtgExp"){var fe=se[0][0][1][0],oe=se[0][0][1][1];var le=$r({r:fe,c:oe});if(w[le])A.f=""+sh(re.formula,o,re.cell,z,F);else A.F=((r.dense?(i[fe]||[])[oe]:i[le])||{}).F}else A.f=""+sh(re.formula,o,re.cell,z,F)}if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O(re.cell,A,r);l=re}break;case"String":{if(l){l.val=re;A=Ip(re,l.cell.ixfe,"s");A.XF=T[A.ixfe];if(r.cellFormula){A.f=""+sh(l.formula,o,l.cell,z,F)}if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O(l.cell,A,r);l=null}else throw new Error("String record expects Formula")}break;case"Array":{S.push(re);var ce=$r(re[0].s);g=r.dense?(i[re[0].s.r]||[])[re[0].s.c]:i[ce];if(r.cellFormula&&g){if(!l)break;if(!ce||!g)break;g.f=""+sh(re[1],o,re[0],z,F);g.F=qr(re[0])}}break;case"ShrFmla":{if(!_)break;if(!r.cellFormula)break;if(v){if(!l)break;w[$r(l.cell)]=re[0];g=r.dense?(i[l.cell.r]||[])[l.cell.c]:i[$r(l.cell)];(g||{}).f=""+sh(re[0],o,p,z,F)}}break;case"LabelSst":A=Ip(h[re.isst].t,re.ixfe,"s");A.XF=T[A.ixfe];if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r);break;case"Blank":if(r.sheetStubs){A={ixfe:re.ixfe,XF:T[re.ixfe],t:"z"};if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r)}break;case"MulBlank":if(r.sheetStubs){for(var he=re.c;he<=re.C;++he){var ue=re.ixfe[he-re.c];A={ixfe:ue,XF:T[ue],t:"z"};if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:he,r:re.r},A,r)}}break;case"RString":;case"Label":;case"BIFF2STR":A=Ip(re.val,re.ixfe,"s");A.XF=T[A.ixfe];if(G>0)A.z=j[A.ixfe>>8&31];xp(A,r,t.opts.Date1904);O({c:re.c,r:re.r},A,r);break;case"Dimensions":{if(X===1)o=re}break;case"SST":{h=re}break;case"Format":{C.load(re[1],re[0])}break;case"BIFF2FORMAT":{j[G++]=re;for(var de=0;de=163)C.load(re,G+163)}break;case"MergeCells":P=P.concat(re);break;case"Obj":N[re.cmo[0]]=F.lastobj=re;break;case"TxO":F.lastobj.TxO=re;break;case"ImData":F.lastobj.ImData=re;break;case"HLink":{for(k=re[0].s.r;k<=re[0].e.r;++k)for(E=re[0].s.c;E<=re[0].e.c;++E){g=r.dense?(i[k]||[])[E]:i[$r({c:E,r:k})];if(g)g.l=re[1]}}break;case"HLinkTooltip":{for(k=re[0].s.r;k<=re[0].e.r;++k)for(E=re[0].s.c;E<=re[0].e.c;++E){g=r.dense?(i[k]||[])[E]:i[$r({c:E,r:k})];if(g)g.l.Tooltip=re[1]}}break;case"Note":{if(F.biff<=5&&F.biff>=2)break;g=r.dense?(i[re[0].r]||[])[re[0].c]:i[$r(re[0])];var pe=N[re[2]];if(!g)break;if(!g.c)g.c=[];b={a:re[1],t:pe.TxO.t};g.c.push(b)}break;default:switch(q.n){case"ClrtClient":break;case"XFExt":Mo(T[re.ixfe],re.ext);break;case"DefColWidth":U=re;break;case"DefaultRowHeight":H=re[1];break;case"ColInfo":{if(!F.cellStyles)break;while(re.e>=re.s){L[re.e--]={width:re.w/256};if(!W){W=true;Tf(re.w/256)}If(L[re.e+1])}}break;case"Row":{var ve={};if(re.level!=null){M[re.r]=ve;ve.level=re.level}if(re.hidden){M[re.r]=ve;ve.hidden=true}if(re.hpt){M[re.r]=ve;ve.hpt=re.hpt;ve.hpx=Of(re.hpt)}}break;case"LeftMargin":;case"RightMargin":;case"TopMargin":;case"BottomMargin":if(!i["!margins"])yh(i["!margins"]={});i["!margins"][te.slice(0,-6).toLowerCase()]=re;break;case"Setup":if(!i["!margins"])yh(i["!margins"]={});i["!margins"].header=re.header;i["!margins"].footer=re.footer;break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"GCW":break;case"LHRecord":break;case"DBCell":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXString":break;case"Sync":break;case"Addin":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":;case"FeatHdr11":break;case"Feature11":;case"Feature12":;case"List12":break;case"Country":B=re;break;case"RecalcId":break;case"DxGCol":break;case"Fbi":;case"Fbi2":;case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":x=re;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":;case"DXFN":;case"DXFN12":;case"DXFN12List":;case"DXFN12NoCB":break;case"Dv":;case"DVal":break;case"BRAI":;case"Series":;case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"OleDbConn":break;case"ExtString":break;case"IFmtRecord":break;case"CondFmt":;case"CF":;case"CF12":;case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":;case"Mms":;case"InterfaceEnd":;case"DSF":break;case"BuiltInFnGroupCount":break;case"Window1":;case"Window2":;case"HideObj":;case"GridSet":;case"Guts":;case"UserBView":;case"UserSViewBegin":;case"UserSViewEnd":;case"Pane":break;default:switch(q.n){case"Dat":;case"Begin":;case"End":;case"StartBlock":;case"EndBlock":;case"Frame":;case"Area":;case"Axis":;case"AxisLine":;case"Tick":break;case"AxesUsed":;case"CrtLayout12":;case"CrtLayout12A":;case"CrtLink":;case"CrtLine":;case"CrtMlFrt":;case"CrtMlFrtContinue":break;case"LineFormat":;case"AreaFormat":;case"Chart":;case"Chart3d":;case"Chart3DBarShape":;case"ChartFormat":;case"ChartFrtInfo":break;case"PlotArea":;case"PlotGrowth":break;case"SeriesList":;case"SerParent":;case"SerAuxTrend":break;case"DataFormat":;case"SerToCrt":;case"FontX":break;case"CatSerRange":;case"AxcExt":;case"SerFmt":break;case"ShtProps":break;case"DefaultText":;case"Text":;case"CatLab":break;case"DataLabExtContents":break;case"Legend":;case"LegendException":break;case"Pie":;case"Scatter":break;case"PieFormat":;case"MarkerFormat":break;case"StartObject":;case"EndObject":break;case"AlRuns":;case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":;case"YMult":break;case"Line":;case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":;case"Qsif":;case"Qsir":;case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":;case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":;case"MsoDrawingGroup":;case"MsoDrawingSelection":break;case"WebPub":;case"AutoWebPub":break;case"HeaderFooter":;case"HFPicture":;case"PLV":;case"HorizontalPageBreaks":;case"VerticalPageBreaks":break;case"Backup":;case"CompressPictures":;case"Compat12":break;case"Continue":;case"ContinueFrt12":break;case"FrtFontList":;case"FrtWrapper":break;default:switch(q.n){case"TabIdConf":;case"Radar":;case"RadarArea":;case"DropBar":;case"Intl":;case"CoordList":;case"SerAuxErrBar":break;case"BIFF2FONTCLR":;case"BIFF2FMTCNT":;case"BIFF2FONTXTRA":break;case"BIFF2XF":;case"BIFF3XF":;case"BIFF4XF":break;case"BIFF4FMTCNT":;case"BIFF2ROW":;case"BIFF2WINDOW2":break;case"SCENARIO":;case"DConBin":;case"PicF":;case"DataLabExt":;case"Lel":;case"BopPop":;case"BopPopCustom":;case"RealTimeData":;case"Name":break;case"LHNGraph":;case"FnGroupName":;case"AddMenu":;case"LPr":break;case"ListObj":;case"ListField":break;case"RRSort":break;case"BigName":break;case"ToolbarHdr":;case"ToolbarEnd":break;case"DDEObjName":break;case"FRTArchId$":break;default:if(r.WTF)throw"Unrecognized Record "+q.n;};};};}}else e.l+=Q}var ge=Object.keys(s).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return s[e].name});var be=ge.slice();t.Directory=ge;t.SheetNames=ge;if(!r.bookSheets)t.Sheets=a;if(t.Sheets)K.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Preamble=d;t.Strings=h;t.SSF=C.get_table();if(F.enc)t.Encryption=F.enc;t.Metadata={};if(B!==undefined)t.Metadata.Country=B;if(z.names.length>0)I.Names=z.names;t.Workbook=I;return t}function Rp(e,r,t){var a=_.find(e,"!DocumentSummaryInformation");if(a)try{var n=on(a,Qt);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF==2)throw s}var f=_.find(e,"!SummaryInformation");if(f)try{var o=on(f,Jt);for(var l in o)if(r[l]==null)r[l]=o[l]}catch(s){if(t.WTF==2)throw s}}function Dp(e,r){if(!r)r={};pv(r);a();var t,n,i;if(e.FullPaths){t=_.find(e,"!CompObj");n=_.find(e,"!SummaryInformation");i=_.find(e,"/Workbook")||_.find(e,"/Book")}else{switch(r.type){case"base64":e=v(u.decode(e));break;case"binary":e=v(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}Br(e,0);i={content:e}}var s,f,o;var l;if(t)s=_p(t);if(r.bookProps&&!r.bookSheets)o={};else{var c=d?"buffer":"array";if(i&&i.content)o=yp(i.content,r);else if((l=_.find(e,"PerfectOffice_MAIN"))&&l.content)o=Ss.to_workbook(l.content,(r.type=c,r));else if((l=_.find(e,"NativeContent_MAIN"))&&l.content)o=Ss.to_workbook(l.content,(r.type=c,r));else throw new Error("Cannot find Workbook stream");if(r.bookVBA&&_.find(e,"/_VBA_PROJECT_CUR/VBA/dir"))o.vbaraw=sl(e)}var h={};if(e.FullPaths)Rp(e,h,r);o.Props=o.Custprops=h;if(r.bookFiles)o.cfb=e;return o}function Op(e,r){var t=r||{};var a=_.utils.cfb_new({root:"R"});var n="/Workbook";switch(t.bookType||"xls"){case"xls":t.bookType="biff8";case"biff8":n="/Workbook";t.biff=8;break;case"biff5":n="/Book";t.biff=5;break;default:throw new Error("invalid type "+t.bookType+" for XLS CFB");}_.utils.cfb_add(a,n,$p(e,t));return a}var Fp={0:{n:"BrtRowHdr",f:au},1:{n:"BrtCellBlank",f:hu},2:{n:"BrtCellRk",f:Eu},3:{n:"BrtCellError",f:vu},4:{n:"BrtCellBool",f:du},5:{n:"BrtCellReal",f:mu},6:{n:"BrtCellSt",f:wu},7:{n:"BrtCellIsst",f:gu},8:{n:"BrtFmlaString",f:Tu},9:{n:"BrtFmlaNum",f:_u},10:{n:"BrtFmlaBool",f:Au},11:{n:"BrtFmlaError",f:Bu},16:{n:"BrtFRTArchID$",f:Td},19:{n:"BrtSSTItem",f:ct},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:xd},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:$f},44:{n:"BrtFmt",f:Kf},45:{n:"BrtFill",f:qf},46:{n:"BrtBorder",f:no},47:{n:"BrtXF",f:ro},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:rs},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:Wo},64:{n:"BrtDVal"},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:_r,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView"},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:lu},148:{n:"BrtWsDim",f:su,p:16},151:{n:"BrtPane"},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:Bd},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:Sd},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:Ns},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:xt},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:xu},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:wt},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:Pi},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:Ou},427:{n:"BrtShrFmla",f:Fu},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:Lu},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:ou},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:Ru},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs" +},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:wt},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:tl},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:el},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:ut},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp"},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14"},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSxview14"},1063:{n:"BrtEndSxview14"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},65535:{n:""}};var Pp=I(Fp,"n");var Np={3:{n:"BIFF2NUM",f:hs},4:{n:"BIFF2STR",f:cs},6:{n:"Formula",f:uh},9:{n:"BOF",f:Yn},10:{n:"EOF",f:ln},12:{n:"CalcCount",f:pn},13:{n:"CalcMode",f:pn},14:{n:"CalcPrecision",f:un},15:{n:"CalcRefMode",f:un},16:{n:"CalcDelta",f:yt},17:{n:"CalcIter",f:un},18:{n:"Protect",f:un},19:{n:"Password",f:pn},20:{n:"Header",f:yi},21:{n:"Footer",f:yi},23:{n:"ExternSheet",f:Pi},24:{n:"Lbl",f:Fi},25:{n:"WinProtect",f:un},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:zi},29:{n:"Selection"},34:{n:"Date1904",f:un},35:{n:"ExternName",f:Di},38:{n:"LeftMargin",f:yt},39:{n:"RightMargin",f:yt},40:{n:"TopMargin",f:yt},41:{n:"BottomMargin",f:yt},42:{n:"PrintRowCol",f:un},43:{n:"PrintGrid",f:un},47:{n:"FilePass",f:cf},49:{n:"Font",f:li},51:{n:"PrintSize",f:pn},60:{n:"Continue"},61:{n:"Window1",f:fi},64:{n:"Backup",f:un},65:{n:"Pane"},66:{n:"CodePage",f:pn},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:pn},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:Qn},93:{n:"Obj",f:Xi},94:{n:"Uncalced"},95:{n:"CalcSaveRecalc",f:un},96:{n:"Template"},97:{n:"Intl"},99:{n:"ObjProtect",f:un},125:{n:"ColInfo",f:rs},128:{n:"Guts",f:Ai},129:{n:"WsBool"},130:{n:"GridSet",f:pn},131:{n:"HCenter",f:un},132:{n:"VCenter",f:un},133:{n:"BoundSheet8",f:qn},134:{n:"WriteProtect"},140:{n:"Country",f:Zi},141:{n:"HideObj",f:pn},144:{n:"Sort"},146:{n:"Palette",f:qi},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:pn},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:ss},161:{n:"Setup",f:ts},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:mi},190:{n:"MulBlank",f:Ci},193:{n:"Mms",f:ln},197:{n:"SXDI"},198:{n:"SXDB"},199:{n:"SXFDB"},200:{n:"SXDBB"},201:{n:"SXNum"},202:{n:"SxBool",f:un},203:{n:"SxErr"},204:{n:"SXInt"},205:{n:"SXString"},206:{n:"SXDtr"},207:{n:"SxNil"},208:{n:"SXTbl"},209:{n:"SXTBRGIITM"},210:{n:"SxTbpg"},211:{n:"ObProj"},213:{n:"SXStreamID"},215:{n:"DBCell"},216:{n:"SXRng"},217:{n:"SxIsxoper"},218:{n:"BookBool",f:pn},220:{n:"DbOrParamQry"},221:{n:"ScenarioProtect",f:un},222:{n:"OleObjectSize"},224:{n:"XF",f:Si},225:{n:"InterfaceHdr",f:Zn},226:{n:"InterfaceEnd",f:ln},227:{n:"SXVS"},229:{n:"MergeCells",f:Vi},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:ri},253:{n:"LabelSst",f:ci},255:{n:"ExtSST",f:ti},256:{n:"SXVDEx"},259:{n:"SXFormula"},290:{n:"SXDBEx"},311:{n:"RRDInsDel"},312:{n:"RRDHead"},315:{n:"RRDChgCell"},317:{n:"RRTabId",f:gn},318:{n:"RRDRenSheet"},319:{n:"RRSort"},320:{n:"RRDMove"},330:{n:"RRFormat"},331:{n:"RRAutoFmt"},333:{n:"RRInsertSh"},334:{n:"RRDMoveBegin"},335:{n:"RRDMoveEnd"},336:{n:"RRDInsDelBegin"},337:{n:"RRDInsDelEnd"},338:{n:"RRDConflict"},339:{n:"RRDDefName"},340:{n:"RRDRstEtxp"},351:{n:"LRng"},352:{n:"UsesELFs",f:un},353:{n:"DSF",f:ln},401:{n:"CUsr"},402:{n:"CbUsr"},403:{n:"UsrInfo"},404:{n:"UsrExcl"},405:{n:"FileLock"},406:{n:"RRDInfo"},407:{n:"BCUsrs"},408:{n:"UsrChk"},425:{n:"UserBView"},426:{n:"UserSViewBegin"},427:{n:"UserSViewEnd"},428:{n:"RRDUserView"},429:{n:"Qsi"},430:{n:"SupBook",f:Ri},431:{n:"Prot4Rev",f:un},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:Ki},439:{n:"RefreshAll",f:un},440:{n:"HLink",f:Yi},441:{n:"Lel"},442:{n:"CodeName",f:wn},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:pn},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:ln},449:{n:"RecalcId",f:ii,r:2},450:{n:"EntExU2",f:ln},512:{n:"Dimensions",f:vi},513:{n:"Blank",f:is},515:{n:"Number",f:xi},516:{n:"Label",f:hi},517:{n:"BoolErr",f:_i},518:{n:"Formula",f:uh},519:{n:"String",f:fs},520:{n:"Row",f:ai},523:{n:"Index"},545:{n:"Array",f:Ui},549:{n:"DefaultRowHeight",f:si},566:{n:"Table"},574:{n:"Window2",f:_r},638:{n:"RK",f:bi},659:{n:"Style",f:_r},1030:{n:"Formula",f:uh},1048:{n:"BigName"},1054:{n:"Format",f:di},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:Mi},2048:{n:"HLinkTooltip",f:$i},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:Yn},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:ln},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:es,r:12},2173:{n:"XFExt",f:Lo,r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:un,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt",f:_r},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:Li,r:12},2197:{n:"SortData"},2198:{n:"Theme",f:Ro,r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:Hi,r:12},2203:{n:"CompressPictures",f:ln},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:ni},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:pn},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:as},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:Ji},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:vi},2:{n:"BIFF2INT",f:ds},5:{n:"BoolErr",f:_i},7:{n:"String",f:vs},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:pn},30:{n:"BIFF2FORMAT",f:pi},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:Ui},37:{n:"DefaultRowHeight",f:si},50:{n:"BIFF2FONTXTRA",f:gs},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:os},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:bs},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:Yn},536:{n:"Lbl",f:Fi},547:{n:"ExternName",f:Di},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:Yn},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}};var Lp=I(Np,"n");function Mp(e,r,t,a){var n=+r||+Lp[r];if(isNaN(n))return;var i=a||(t||[]).length||0;var s=e.next(4+i);s._W(2,n);s._W(2,i);if(i>0&&cr(t))e.push(t)}function Up(e,r,t){if(!e)e=Ir(7);e._W(2,r);e._W(2,t);e._W(1,0);e._W(1,0);e._W(1,0);return e}function Hp(e,r,t,a){var n=Ir(9);Up(n,e,r);if(a=="e"){n._W(1,t);n._W(1,1)}else{n._W(1,t?1:0);n._W(1,0)}return n}function Wp(e,r,t){var a=Ir(8+2*t.length);Up(a,e,r);a._W(1,t.length);a._W(t.length,t,"sbcs");return a.l=0&&i<65536)Mp(e,2,ps(t,a,i));else Mp(e,3,us(t,a,i));return;case"b":;case"e":Mp(e,5,Hp(t,a,r.v,r.t));return;case"s":;case"str":Mp(e,4,Wp(t,a,r.v));return;}Mp(e,1,Up(null,t,a))}function Vp(e,r,t,a,n){var i=Array.isArray(r);var s=et(r["!ref"]||"A1"),f,o="",l=[];for(var c=s.s.r;c<=s.e.r;++c){o=Hr(c);for(var h=s.s.c;h<=s.e.c;++h){if(c===s.s.r)l[h]=Xr(h);f=l[h]+o;var u=i?(r[c]||[])[h]:r[f];if(!u)continue;zp(e,u,c,h,a)}}}function Xp(e,r){var t=r||{};if(c!=null&&t.dense==null)t.dense=c;var a=Rr();var n=0;for(var i=0;i");var i=e.match(/<\/table/i);var s=n.index,f=i&&i.index||e.length;var o=Y(e.slice(s,f),/(:?]*>)/i,"");var l=-1,h=0,u=0,d=0;var p={s:{r:1e7,c:1e7},e:{r:0,c:0}};var v=[],g=0;for(s=0;s/i);for(f=0;f"))>-1)k=k.slice(w+1);while(k.indexOf(">")>-1)k=k.slice(0,k.lastIndexOf("<"));var S=he(E.slice(0,E.indexOf(">")));d=S.colspan?+S.colspan:1;if((u=+S.rowspan)>0||d>1)v.push({s:{r:l,c:h},e:{r:l+(u||1)-1,c:h+d-1}});if(!k.length){h+=d;continue}k=Re(ve(k));if(p.s.r>l)p.s.r=l;if(p.e.rh)p.s.c=h;if(p.e.c";for(var f=r.s.c;f<=r.e.c;++f){var o=0,l=0;for(var c=0;ct||n[c].s.c>f)continue;if(n[c].e.r1)p.rowspan=o;if(l>1)p.colspan=l;if(a.editable)p.contenteditable="true";p.id="sjs-"+h;i.push(Ue("td",d,p))}var v="";return v+i.join("")+""}function a(e,r,t){var a=[];return a.join("")+""}var n='SheetJS Table Export';var i="";function s(e,r,s){var f=r||{};var o=f.header!=null?f.header:n;var l=f.footer!=null?f.footer:i;var c=[o];var h=Jr(e["!ref"]);f.dense=Array.isArray(e);c.push(a(e,h,f));for(var u=h.s.r;u<=h.e.r;++u)c.push(t(e,h,u,f));c.push("
    "+l);return c.join("")}return{to_workbook:r,to_sheet:e,_row:t,BEGIN:n,END:i,_preamble:a,from_sheet:s}}();function Qp(e,r){var t=r||{};if(c!=null)t.dense=c;var a=t.dense?[]:{};var n=e.getElementsByTagName("tr");var i={s:{r:0,c:0},e:{r:n.length-1,c:0}};var s=[],f=0;var o=0,l=0,h=0,u=0,d=0;for(;o0||d>1)s.push({s:{r:o,c:h},e:{r:o+(u||1)-1,c:h+d-1}});var E={t:"s",v:b};if(b!=null){if(b.length==0)E.t="z";else if(t.raw){}else if(b.trim().length==0)E.t="s";else if(b==="TRUE")E={t:"b",v:true};else if(b==="FALSE")E={t:"b",v:false};else if(!isNaN(G(b)))E={t:"n",v:G(b)};else if(!isNaN(j(b).getDate())){E={t:"d",v:H(b)};if(!t.cellDates)E={t:"n",v:P(E.v)};E.z=t.dateNF||C._table[14]}}if(t.dense){if(!a[o])a[o]=[];a[o][h]=E}else a[$r({c:h,r:o})]=E;if(i.e.c/g," ").replace(//g,function(e,r){return Array(parseInt(r,10)+1).join(" ")}).replace(/]*\/>/g,"\t").replace(//g,"\n").replace(/<[^>]*>/g,""))};var r={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']};return function t(a,n){var i=n||{};if(c!=null&&i.dense==null)i.dense=c;var s=hp(a);var f=[],o;var l;var h={name:""},u="",d=0;var p;var v;var g={},b=[];var m=i.dense?[]:{};var C,E;var k={value:""};var w="",S=0,A;var B=-1,_=-1,T={s:{r:1e6,c:1e7},e:{r:0,c:0}};var x=0;var I={};var y=[],R={},D=0,O=0;var F=[],N=1,M=1;var U=[];var W=[],z={};var X="",G=0;var j=false;var K=0;up.lastIndex=0;s=s.replace(//gm,"").replace(//gm,"");while(C=up.exec(s))switch(C[3]=C[3].replace(/_.*$/,"")){case"table":;case"工作表":if(C[1]==="/"){if(T.e.c>=T.s.c&&T.e.r>=T.s.r)m["!ref"]=qr(T);if(y.length)m["!merges"]=y;if(F.length)m["!rows"]=F;p.name=Be(p["名称"]||p.name);b.push(p.name);g[p.name]=m}else if(C[0].charAt(C[0].length-2)!=="/"){p=he(C[0],false);B=_=-1;T.s.r=T.s.c=1e7;T.e.r=T.e.c=0;m=i.dense?[]:{};y=[];F=[]}break;case"table-row-group":if(C[1]==="/")--x;else++x;break;case"table-row":;case"行":if(C[1]==="/"){B+=N;N=1;break}v=he(C[0],false);if(v["行号"])B=v["行号"]-1;else if(B==-1)B=0;N=+v["number-rows-repeated"]||1;if(N<10)for(K=0;K0)F[B+K]={level:x};_=-1;break;case"covered-table-cell":++_;if(i.sheetStubs){if(i.dense){if(!m[B])m[B]=[];m[B][_]={t:"z"}}else m[$r({r:B,c:_})]={t:"z"}}break;case"table-cell":;case"数据":if(C[0].charAt(C[0].length-2)==="/"){++_;k=he(C[0],false);M=parseInt(k["number-columns-repeated"]||"1",10);E={t:"z",v:null};if(k.formula&&i.cellFormula!=false)E.f=Sh(ve(k.formula));if((k["数据类型"]||k["value-type"])=="string"){E.t="s";E.v=ve(k["string-value"]||"");if(i.dense){if(!m[B])m[B]=[];m[B][_]=E}else{m[$r({r:B,c:_})]=E}}_+=M-1}else if(C[1]!=="/"){++_;M=1;if(_>T.e.c)T.e.c=_;if(B>T.e.r)T.e.r=B;if(_=U[K][0].s.r&&B<=U[K][0].e.r)if(_>=U[K][0].s.c&&_<=U[K][0].e.c)E.F=U[K][1]}if(k["number-columns-spanned"]||k["number-rows-spanned"]){D=parseInt(k["number-rows-spanned"],10)||0;O=parseInt(k["number-columns-spanned"],10)||0;R={s:{r:B,c:_},e:{r:B+D-1,c:_+O-1}};y.push(R)}if(k["number-columns-repeated"])M=parseInt(k["number-columns-repeated"],10);switch(E.t){case"boolean":E.t="b";E.v=Ae(k["boolean-value"]);break;case"float":E.t="n";E.v=parseFloat(k.value);break;case"percentage":E.t="n";E.v=parseFloat(k.value);break;case"currency":E.t="n";E.v=parseFloat(k.value);break;case"date":E.t="d";E.v=H(k["date-value"]);if(!i.cellDates){E.t="n";E.v=P(E.v)}E.z="m/d/yy";break;case"time":E.t="n";E.v=L(k["time-value"])/86400;break;case"number":E.t="n";E.v=parseFloat(k["数据数值"]);break;default:if(E.t==="string"||E.t==="text"||!E.t){E.t="s";if(k["string-value"]!=null)w=ve(k["string-value"])}else throw new Error("Unsupported value type "+E.t);}}else{j=false;if(E.t==="s"){E.v=w||"";j=S==0}if(W.length>0){E.c=W;W=[]}if(w&&i.cellText!==false)E.w=w;if(!j||i.sheetStubs){if(!(i.sheetRows&&i.sheetRows0)m[B+Y][_+M]=V(E)}else{m[$r({r:B+Y,c:_})]=E;while(--M>0)m[$r({r:B+Y,c:_+M})]=V(E)}if(T.e.c<=_)T.e.c=_}}}M=parseInt(k["number-columns-repeated"]||"1",10);_+=M-1;M=0;E={};w=""}break;case"document":;case"document-content":;case"电子表格文档":;case"spreadsheet":;case"主体":;case"scripts":;case"styles":;case"font-face-decls":if(C[1]==="/"){if((o=f.pop())[0]!==C[3])throw"Bad state: "+o}else if(C[0].charAt(C[0].length-2)!=="/")f.push([C[3],true]);break;case"annotation":if(C[1]==="/"){if((o=f.pop())[0]!==C[3])throw"Bad state: "+o;z.t=w;z.a=X;W.push(z)}else if(C[0].charAt(C[0].length-2)!=="/"){f.push([C[3],false])}X="";G=0;w="";S=0;break;case"creator":if(C[1]==="/"){ +X=s.slice(G,C.index)}else G=C.index+C[0].length;break;case"meta":;case"元数据":;case"settings":;case"config-item-set":;case"config-item-map-indexed":;case"config-item-map-entry":;case"config-item-map-named":;case"shapes":;case"frame":;case"text-box":;case"image":;case"data-pilot-tables":;case"list-style":;case"form":;case"dde-links":;case"event-listeners":;case"chart":if(C[1]==="/"){if((o=f.pop())[0]!==C[3])throw"Bad state: "+o}else if(C[0].charAt(C[0].length-2)!=="/")f.push([C[3],false]);w="";S=0;break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":;case"percentage-style":;case"date-style":;case"time-style":if(C[1]==="/"){I[h.name]=u;if((o=f.pop())[0]!==C[3])throw"Bad state: "+o}else if(C[0].charAt(C[0].length-2)!=="/"){u="";h=he(C[0],false);f.push([C[3],true])}break;case"script":break;case"libraries":break;case"automatic-styles":break;case"master-styles":break;case"default-style":;case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(f[f.length-1][0]){case"time-style":;case"date-style":l=he(C[0],false);u+=r[C[3]][l.style==="long"?1:0];break;}break;case"fraction":break;case"day":;case"month":;case"year":;case"era":;case"day-of-week":;case"week-of-year":;case"quarter":;case"hours":;case"minutes":;case"seconds":;case"am-pm":switch(f[f.length-1][0]){case"time-style":;case"date-style":l=he(C[0],false);u+=r[C[3]][l.style==="long"?1:0];break;}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(C[0].slice(-2)==="/>")break;else if(C[1]==="/")switch(f[f.length-1][0]){case"number-style":;case"date-style":;case"time-style":u+=s.slice(d,C.index);break;}else d=C.index+C[0].length;break;case"text-content":break;case"text-properties":break;case"embedded-text":break;case"body":;case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-rows":break;case"table-column-group":break;case"table-header-columns":break;case"table-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"named-range":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":;case"文本串":if(C[1]==="/"&&(!k||!k["string-value"]))w=(w.length>0?w+"\n":"")+e(s.slice(S,C.index),A);else{A=he(C[0],false);S=C.index+C[0].length}break;case"s":break;case"database-range":if(C[1]==="/")break;try{var $=Bh(he(C[0])["target-range-address"]);g[$[0]]["!autofilter"]={ref:$[1]}}catch(Z){}break;case"date":break;case"object":break;case"title":;case"标题":break;case"desc":break;case"binary-data":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":;case"sender-lastname":;case"sender-initials":;case"sender-title":;case"sender-position":;case"sender-email":;case"sender-phone-private":;case"sender-fax":;case"sender-company":;case"sender-phone-work":;case"sender-street":;case"sender-city":;case"sender-postal-code":;case"sender-country":;case"sender-state-or-province":;case"author-name":;case"author-initials":;case"chapter":;case"file-name":;case"template-name":;case"sheet-name":break;case"event-listener":break;case"initial-creator":;case"creation-date":;case"print-date":;case"generator":;case"document-statistic":;case"user-defined":;case"editing-duration":;case"editing-cycles":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":;case"source-cell-range":;case"source-service":;case"data-pilot-field":;case"data-pilot-level":;case"data-pilot-subtotals":;case"data-pilot-subtotal":;case"data-pilot-members":;case"data-pilot-member":;case"data-pilot-display-info":;case"data-pilot-sort-info":;case"data-pilot-layout-info":;case"data-pilot-field-reference":;case"data-pilot-groups":;case"data-pilot-group":;case"data-pilot-group-member":break;case"rect":break;case"dde-connection-decls":;case"dde-connection-decl":;case"dde-link":;case"dde-source":break;case"properties":break;case"property":break;case"a":break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:switch(C[2]){case"dc:":;case"calcext:":;case"loext:":;case"ooo:":;case"chartooo:":;case"draw:":;case"style:":;case"chart:":;case"form:":;case"uof:":;case"表:":;case"字:":break;default:if(i.WTF)throw new Error(C);};}var Q={Sheets:g,SheetNames:b};if(i.bookSheets)delete Q.Sheets;return Q}}();function ev(e,r){r=r||{};var t=!!J(e,"objectdata");if(t)var a=Ca(ee(e,"META-INF/manifest.xml"),r);var n=re(e,"content.xml");if(!n)throw new Error("Missing content.xml in "+(t?"ODS":"UOF")+" file");var i=qp(t?n:Be(n),r);if(J(e,"meta.xml"))i.Props=Ta(ee(e,"meta.xml"));return i}function rv(e,r){return qp(e,r)}var tv=function(){var e="";return function r(t,a){return se+e}}();var av=function(){var e=function(e){return me(e).replace(/ +/g,function(e){return''}).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"")};var r=" \n";var t=" \n";var a=function(a,n,i,s){var f=[];f.push(' \n');var o=0,l=0,c=Jr(a["!ref"]);var h=a["!merges"]||[],u=0;var d=Array.isArray(a);for(o=0;o\n");for(;o<=c.e.r;++o){f.push(" \n");for(l=0;ll)continue;if(h[u].s.r>o)continue;if(h[u].e.c\n")}f.push(" \n");return f.join("")};var n=function(e){e.push(" \n");e.push(' \n');e.push(' \n');e.push(" /\n");e.push(' \n');e.push(" /\n");e.push(" \n");e.push(" \n");e.push(' \n');e.push(" \n")};return function i(e,r){var t=[se];var i=Me({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Me({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods")t.push("\n");else t.push("\n");n(t);t.push(" \n");t.push(" \n");for(var f=0;f!=e.SheetNames.length;++f)t.push(a(e.Sheets[e.SheetNames[f]],e,f,r));t.push(" \n");t.push(" \n");if(r.bookType=="fods")t.push("");else t.push("");return t.join("")}}();function nv(e,r){if(r.bookType=="fods")return av(e,r);var t=new ae;var a="";var n=[];var i=[];a="mimetype";t.file(a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";t.file(a,av(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";t.file(a,tv(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="meta.xml";t.file(a,Aa(e,r));n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="manifest.rdf";t.file(a,Sa(i,r));n.push([a,"application/rdf+xml"]);a="META-INF/manifest.xml";t.file(a,Ea(n,r));return t}function iv(e){return function r(t,a){var n=0;for(var i=0;i-1)return"sheet";if(ua.CS&&e==ua.CS)return"chart";if(ua.DS&&e==ua.DS)return"dialog";if(ua.MS&&e==ua.MS)return"macro";return e&&e.length?e:"sheet"}function bv(e,r){if(!e)return 0;try{e=r.map(function a(r){if(!r.id)r.id=r.strRelID;return[r.name,e["!id"][r.id].Target,gv(e["!id"][r.id].Type)]})}catch(t){return null}return!e||e.length===0?null:e}function mv(e,r,t,a,n,i,s,f,o,l,c){try{n[a]=pa(re(e,t,true),r);var h=ee(e,r);switch(s){case"sheet":i[a]=Md(h,r,f,n[a],o,l,c);break;case"chart":var u=Ud(h,r,f,n[a],o,l,c);i[a]=u;if(!u||!u["!chart"])break;var d=ie(u["!chart"].Target,r);var p=da(d);var v=jo(re(e,d,true),pa(re(e,p,true),d));var g=ie(v,d);var b=da(g);u=ed(re(e,g,true),g,f,pa(re(e,b,true),g),o,u);break;case"macro":i[a]=Hd(h,r,f,n[a],o,l,c);break;case"dialog":i[a]=Wd(h,r,f,n[a],o,l,c);break;}}catch(m){if(f.WTF)throw m}}var Cv=function bg(e){return e.slice(-1)!="/"};function Ev(e){return e.charAt(0)=="/"?e.slice(1):e}function kv(e,r){E(C);r=r||{};pv(r);a();if(J(e,"META-INF/manifest.xml"))return ev(e,r);if(J(e,"objectdata.xml"))return ev(e,r);if(J(e,"Index/Document.iwa"))throw new Error("Unsupported NUMBERS file");var t=x(e.files).filter(Cv).sort();var i=oa(re(e,"[Content_Types].xml"),r);var s=false;var f,o;if(i.workbooks.length===0){o="xl/workbook.xml";if(ee(e,o,true))i.workbooks.push(o)}if(i.workbooks.length===0){o="xl/workbook.bin";if(!ee(e,o,true))throw new Error("Could not find workbook");i.workbooks.push(o);s=true}if(i.workbooks[0].slice(-3)=="bin")s=true;if(s)n(1200);var l={};var c={};if(!r.bookSheets&&!r.bookProps){_h=[];if(i.sst)_h=Xd(ee(e,Ev(i.sst)),i.sst,r);if(r.cellStyles&&i.themes.length)l=Vd(re(e,i.themes[0].replace(/^\//,""),true)||"",i.themes[0],r);if(i.style)c=zd(ee(e,Ev(i.style)),i.style,l,r)}var h=i.links.map(function(t){return Kd(ee(e,Ev(t)),t,r)});var u=Ld(ee(e,Ev(i.workbooks[0])),i.workbooks[0],r);var d={},p="";if(i.coreprops.length){p=ee(e,Ev(i.coreprops[0]),true);if(p)d=Ta(p);if(i.extprops.length!==0){p=ee(e,Ev(i.extprops[0]),true);if(p)Da(p,d,r)}}var v={};if(!r.bookSheets||r.bookProps){if(i.custprops.length!==0){p=re(e,Ev(i.custprops[0]),true);if(p)v=Na(p,r)}}var g={};if(r.bookSheets||r.bookProps){if(u.Sheets)f=u.Sheets.map(function D(e){return e.name});else if(d.Worksheets&&d.SheetNames.length>0)f=d.SheetNames;if(r.bookProps){g.Props=d;g.Custprops=v}if(r.bookSheets&&typeof f!=="undefined")g.SheetNames=f;if(r.bookSheets?g.SheetNames:r.bookProps)return g}f={};var b={};if(r.bookDeps&&i.calcchain)b=jd(ee(e,Ev(i.calcchain)),i.calcchain,r);var m=0;var k={};var w,S;{var A=u.Sheets;d.Worksheets=A.length;d.SheetNames=[];for(var B=0;B!=A.length;++B){d.SheetNames[B]=A[B].name}}var _=s?"bin":"xml";var T="xl/_rels/workbook."+_+".rels";var I=pa(re(e,T,true),T);if(I)I=bv(I,u.Sheets);var y=ee(e,"xl/worksheets/sheet.xml",true)?1:0;for(m=0;m!=d.Worksheets;++m){var R="sheet";if(I&&I[m]){w="xl/"+I[m][1].replace(/[\/]?xl\//,"");R=I[m][2]}else{w="xl/worksheets/sheet"+(m+1-y)+"."+_;w=w.replace(/sheet0\./,"sheet.")}S=w.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");mv(e,w,S,d.SheetNames[m],k,f,R,r,u,l,c)}if(i.comments)$o(e,i.comments,f,k,r);g={Directory:i,Workbook:u,Props:d,Custprops:v,Deps:b,Sheets:f,SheetNames:d.SheetNames,Strings:_h,Styles:c,Themes:l,SSF:C.get_table()};if(r.bookFiles){g.keys=t;g.files=e.files}if(r.bookVBA){if(i.vba.length>0)g.vbaraw=ee(e,Ev(i.vba[0]),true);else if(i.defaults&&i.defaults.bin==="application/vnd.ms-office.vbaProject")g.vbaraw=ee(e,"xl/vbaProject.bin",true)}return g}function wv(e,r){var t="Version";var a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var n=Vs(a.content);t="DataSpaceMap";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var i=Gs(a.content);if(i.length!==1||i[0].comps.length!==1||i[0].comps[0].t!==0||i[0].name!=="StrongEncryptionDataSpace"||i[0].comps[0].v!=="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+t);t="StrongEncryptionDataSpace";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var s=js(a.content);if(s.length!=1||s[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+t);t="!Primary";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var f=Ys(a.content);t="EncryptionInfo";a=_.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var o=Qs(a.content);if(o[0]==4)throw new Error("File is password-protected: ECMA-376 Agile");throw new Error("File is password-protected")}function Sv(e,r){Ko=1024;if(r.bookType=="ods")return nv(e,r);if(e&&!e.SSF){e.SSF=C.get_table()}if(e&&e.SSF){E(C);C.load_table(e.SSF);r.revssf=R(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;var t=r.bookType=="xlsb"?"bin":"xml";var a=r.bookType=="xlsb"||r.bookType=="xlsm";var n=fa();vv(r=r||{});var i=new ae;var s="",f=0;r.cellXfs=[];Rh(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";i.file(s,ya(e.Props,r));n.coreprops.push(s);ba(r.rels,2,s,ua.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else e.Props.SheetNames=e.SheetNames.map(function(r,t){return[(e.Workbook.Sheets[t]||{}).Hidden!=2,r]}).filter(function(e){return e[0]}).map(function(e){return e[1]});e.Props.Worksheets=e.Props.SheetNames.length;i.file(s,Fa(e.Props,r));n.extprops.push(s);ba(r.rels,3,s,ua.EXT_PROPS);if(e.Custprops!==e.Props&&x(e.Custprops||{}).length>0){s="docProps/custom.xml";i.file(s,Ma(e.Custprops,r));n.custprops.push(s);ba(r.rels,4,s,ua.CUST_PROPS)}s="xl/workbook."+t;i.file(s,Yd(e,s,r));n.workbooks.push(s);ba(r.rels,1,s,ua.WB);for(f=1;f<=e.SheetNames.length;++f){var o={"!id":{}};var l=e.Sheets[e.SheetNames[f-1]];var c=(l||{})["!type"]||"sheet";switch(c){case"chart":;default:s="xl/worksheets/sheet"+f+"."+t;i.file(s,$d(f-1,s,r,e,o));n.sheets.push(s);ba(r.wbrels,-1,"worksheets/sheet"+f+"."+t,ua.WS[0]);}if(l){var h=l["!comments"];if(h&&h.length>0){var u="xl/comments"+f+"."+t;i.file(u,qd(h,u,r));n.comments.push(u);ba(o,-1,"../comments"+f+"."+t,ua.CMNT)}if(l["!legacy"]){i.file("xl/drawings/vmlDrawing"+f+".vml",Yo(f,l["!comments"]))}delete l["!comments"];delete l["!legacy"]}if(o["!id"].rId1)i.file(da(s),ga(o))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;i.file(s,Jd(r.Strings,s,r));n.strs.push(s);ba(r.wbrels,-1,"sharedStrings."+t,ua.SST)}s="xl/theme/theme1.xml";i.file(s,yo(e.Themes,r));n.themes.push(s);ba(r.wbrels,-1,"theme/theme1.xml",ua.THEME);s="xl/styles."+t;i.file(s,Qd(e,s,r));n.styles.push(s);ba(r.wbrels,-1,"styles."+t,ua.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";i.file(s,e.vbaraw);n.vba.push(s);ba(r.wbrels,-1,"vbaProject.bin",ua.VBA)}i.file("[Content_Types].xml",ha(n,r));i.file("_rels/.rels",ga(r.rels));i.file("xl/_rels/workbook."+t+".rels",ga(r.wbrels));delete r.revssf;delete r.ssf;return i}function Av(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3]];case"base64":t=u.decode(e.substr(0,24));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}function Bv(e,r){if(_.find(e,"EncryptedPackage"))return wv(e,r);return Dp(e,r)}function _v(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=d&&Buffer.isBuffer(e)?"buffer":"base64";switch(n.type){case"base64":t=new ae(a,{base64:true});break;case"binary":;case"array":t=new ae(a,{base64:false});break;case"buffer":t=new ae(a);break;default:throw new Error("Unrecognized type "+n.type);}return kv(t,n)}function Tv(e,r){var t=0;e:while(t=2&&n[3]===0)return Ss.to_workbook(a,s);break;case 3:;case 131:;case 139:;case 140:return ms.to_workbook(a,s);case 123:if(n[1]===92&&n[2]===114&&n[3]===116)return hf.to_workbook(a,s);break;case 10:;case 13:;case 32:return xv(a,s);}if(n[2]<=12&&n[3]<=31)return ms.to_workbook(a,s);if(32>n[0]||n[0]>127)throw new Error("Unsupported file "+n.join("|"));return Rv(e,a,s,i)}function Ov(e,r){var t=r||{};t.type="file";return Dv(e,t)}function Fv(e,r){var t=r||{};var a=Sv(e,t);var n={};if(t.compression)n.compression="DEFLATE";switch(t.type){case"base64":n.type="base64";break;case"binary":n.type="string";break;case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");case"buffer":;case"file":n.type="nodebuffer";break;default:throw new Error("Unrecognized type "+t.type);}if(t.type==="file")return te.writeFileSync(t.file,a.generate(n));var i=a.generate(n);return t.type=="string"?Be(i):i}function Pv(e,r){var t=r||{};var a=Op(e,t);switch(t.type){case"base64":;case"binary":break;case"buffer":;case"array":t.type="";break;case"file":return te.writeFileSync(t.file,_.write(a,{type:"buffer"}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");default:throw new Error("Unrecognized type "+t.type);}return _.write(a,t)}function Nv(e,r,t){if(!t)t="";var a=t+e;switch(r.type){case"base64":return u.encode(_e(a));case"binary":return _e(a);case"string":return e;case"file":return te.writeFileSync(r.file,a,"utf8");case"buffer":{if(d)return new Buffer(a,"utf8");else return Nv(a,{type:"binary"}).split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Lv(e,r){switch(r.type){case"base64":return u.encode(e);case"binary":return e;case"string":return e;case"file":return te.writeFileSync(r.file,e,"binary");case"buffer":{if(d)return new Buffer(e,"binary");else return e.split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Mv(e,r){switch(r.type){case"string":;case"base64":;case"binary":var t="";for(var a=0;a0)n=0;var p=Hr(l.s.r);var v=[];var g=[];var b=0,m=0;var C=Array.isArray(e);var E=l.s.r,k=0,w=0;if(C&&!e[E])e[E]=[];for(k=l.s.c;k<=l.e.c;++k){v[k]=Xr(k);t=C?e[E][k]:e[v[k]+p];switch(a){case 1:i[k]=k-l.s.c;break;case 2:i[k]=v[k];break;case 3:i[k]=c.header[k-l.s.c];break;default:if(t==null)continue;o=f=tt(t,null,c);m=0;for(w=0;w=0)c='"'+c.replace(Xv,'""')+'"'}else c="";l.push(c)}if(f.blankrows===false&&o)return null;return l.join(s)}function jv(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=et(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var f=a.RS!==undefined?a.RS:"\n",o=f.charCodeAt(0);var l=new RegExp((i=="|"?"\\|":i)+"+$");var c="",h=[];a.dense=Array.isArray(e);var u=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var p=n.s.c;p<=n.e.c;++p)if(!(u[p]||{}).hidden)h[p]=Xr(p);for(var v=n.s.r;v<=n.e.r;++v){if((d[v]||{}).hidden)continue;c=Gv(e,n,v,h,s,o,i,a);if(c==null){continue}if(a.strip)c=c.replace(l,"");t.push(c+f)}delete a.dense;return t.join("")}function Kv(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=jv(e,r);if(typeof cptable=="undefined"||r.type=="string")return t;var a=cptable.utils.encode(1200,t,"str");return"ÿþ"+a}function Yv(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=et(e["!ref"]),i="",s=[],f;var o=[];var l=Array.isArray(e);for(f=n.s.c;f<=n.e.c;++f)s[f]=Xr(f);for(var c=n.s.r;c<=n.e.r;++c){i=Hr(c);for(f=n.s.c;f<=n.e.c;++f){r=s[f]+i;t=l?(e[c]||[])[f]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;o[o.length]=r+"="+a}}return o}function $v(e,r){var t=r||{};var a={};var n;var i={s:{c:0,r:0},e:{c:0,r:e.length}};var s=t.header||[],f=0;e.forEach(function(e,r){x(e).filter(function(r){return e.hasOwnProperty(r)}).forEach(function(i){if((f=s.indexOf(i))==-1)s[f=s.length]=i;var o=e[i];var l="z";var c="";if(typeof o=="number")l="n";else if(typeof o=="boolean")l="b";else if(typeof o=="string")l="s";else if(o instanceof Date){l="d";if(!t.cellDates){l="n";o=P(o)}c=t.dateNF||C._table[14]}a[$r({c:f,r:r+1})]=n={t:l,v:o};if(c)n.z=c})});i.e.c=s.length-1;for(f=0;f=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}e.book_new=function(){return{SheetNames:[],Sheets:{}}};e.book_append_sheet=function(e,r,t){if(!t)for(var a=1;a<=65535;++a)if(e.SheetNames.indexOf(t="Sheet"+a)==-1)break;if(!t)throw new Error("Too many worksheets");gd(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r};e.book_set_sheet_visibility=function(e,r,a){t(e,"Workbook",{});t(e.Workbook,"Sheets",[]);var i=n(e,r);t(e.Workbook.Sheets,i,{});switch(a){case 0:;case 1:;case 2:break;default:throw new Error("Bad sheet visibility setting "+a);}e.Workbook.Sheets[i].Hidden=a};r([["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]]);e.cell_set_number_format=function(e,r){e.z=r;return e};e.cell_set_hyperlink=function(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e};e.cell_add_comment=function(e,r,t){ +if(!e.c)e.c=[];e.c.push({t:r,a:t||"SheetJS"})};e.sheet_set_array_formula=function(e,r,t){var n=typeof r!="string"?r:et(r);var i=typeof r=="string"?r:qr(r);for(var s=n.s.r;s<=n.e.r;++s)for(var f=n.s.c;f<=n.e.c;++f){var o=a(e,s,f);o.t="n";o.F=i;delete o.v;if(s==n.s.r&&f==n.s.c)o.f=t}return e};return e})(Zv);if(d&&typeof require!="undefined")(function(){var e={}.Readable;var t=function(r,t){var a=e();var n="";var i=t==null?{}:t;if(r==null||r["!ref"]==null){a.push(null);return a}var s=et(r["!ref"]);var f=i.FS!==undefined?i.FS:",",o=f.charCodeAt(0);var l=i.RS!==undefined?i.RS:"\n",c=l.charCodeAt(0);var h=new RegExp((f=="|"?"\\|":f)+"+$");var u="",d=[];i.dense=Array.isArray(r);var p=i.skipHidden&&r["!cols"]||[];var v=i.skipHidden&&r["!rows"]||[];for(var g=s.s.c;g<=s.e.c;++g)if(!(p[g]||{}).hidden)d[g]=Xr(g);var b=s.s.r;a._read=function(){if(b>s.e.r)return a.push(null);while(b<=s.e.r){++b;if((v[b-1]||{}).hidden)continue;u=Gv(r,s,b-1,d,o,c,f,i);if(u!=null){if(i.strip)u=u.replace(h,"");a.push(u+l);break}}};return a};var a=function(r,t){var a=e();var n=t||{};var i=n.header!=null?n.header:Zp.BEGIN;var s=n.footer!=null?n.footer:Zp.END;a.push(i);var f=Jr(r["!ref"]);n.dense=Array.isArray(r);a.push(Zp._preamble(r,f,n));var o=f.s.r;var l=false;a._read=function(){if(o>f.e.r){if(!l){l=true;a.push(""+s)}return a.push(null)}while(o<=f.e.r){a.push(Zp._row(r,f,o,n));++o;break}};return a};r.stream={to_html:a,to_csv:t}})();r.parse_xlscfb=Dp;r.parse_ods=ev;r.parse_fods=rv;r.write_ods=nv;r.parse_zip=kv;r.read=Dv;r.readFile=Ov;r.readFileSync=Ov;r.write=Uv;r.writeFile=Wv;r.writeFileSync=Wv;r.writeFileAsync=zv;r.utils=Zv;r.SSF=C})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX;var ODS=XLSX; diff --git a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.map b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.map index 3860bdc3d4..7e116a9545 100644 --- a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.map +++ b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.full.min.map @@ -1 +1 @@ -{"version":3,"sources":["misc/suppress_export.js","jszip.js","dist/cpexcel.js","dist/xlsx.js"],"names":["DO_NOT_EXPORT_CODEPAGE","DO_NOT_EXPORT_JSZIP","e","exports","module","define","amd","JSZip","f","window","global","$","self","t","n","r","s","o","u","a","require","i","Error","call","length","1","_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode","2","CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent","3","STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate","4","utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils","5","DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date","6","base64","binary","dir","createFolders","date","compression","comment","7","string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object","8","USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw","9","options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support","10","ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries","11","Buffer","encoding","test","isBuffer","undefined","12","Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","./dataReader","16","join","17","arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","18","sig0","sig1","sig2","sig3","subarray","19","20","_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min","21","identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method","22","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants","25","zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream","26","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js","27","TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common","29","adler32","adler","s1","s2","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","31","makeTable","crcTable","end","32","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees","33","GZheader","xflags","extra_len","done","34","BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","35","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees","36","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index","37","0","-1","-2","-3","-4","-5","-6","38","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","39","ZStream","cptable","version","d","D","enc","split","factory","cpt","1200","1201","12000","12001","16969","20127","65000","65001","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","has_buf","mdl","mdb","make_EE","E","EE","keys","ee","sbcs_encode","make_sbcs_encode","cp","sbcs_e","ofmt","sbcs_decode","make_sbcs_decode","DD","sbcs_d","dbcs_encode","make_dbcs_encode","dbcs_e","jj","dbcs_decode","make_dbcs_decode","dbcs_d","utf8_d","map","ww","utf8_e","direct","encache","null_enc","cp_decache","decache","forEach","last_enc","last_cp","cache","sbcs","dbcs","BM","SetD","C","M","isstr","tt","F","dash","o64","c1","c3","e1","e2","e3","e4","hascp","XLSX","make_xlsx","current_codepage","reset_cp","set_cp","char_codes","utf16leread","utf16beread","debom","substr","_getchar","_gc1","_gc2","DENSE","DIF_XL","Base64","make_b64","b64_decode","process","versions","new_raw_buf","s2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","parse_date_code","b2","dow","dout","T","H","S","abs","date1904","setDate","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","_general_num","general_fmt","format","_general","write_date","fmt","ss0","ss","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","fmt_is_date","is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","load_entry","_table","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","datestr","timestr","DO_NOT_EXPORT_CFB","CFB","_CFB","namecmp","L","R","Z","dirname","parse","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","prep_blob","mv","check_get_mver","check_shifts","dir_cnt","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","pl","dad","cnt","sector","__readInt32LE","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","minifat_store","namelen","__utf16le","color","clsid","ctime","ct","read_date","mtime","mt","storage","MSSZ","__readUInt32LE","fs","read_file","readFileSync","read","init_cfb","cfb","CLSID","seed_cfb","nm","find","new_buf","rebuild_cfb","gc","_file","pop","now","sort","elt","_write","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","write_shift","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","a2s","write","cfb_new","cfb_add","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","isval","evert_key","key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","setFullYear","cc2str","arr","str2cc","dup","JSON","stringify","fuzzynum","Number","wt","fuzzydate","NaN","getYear","safe_split_regex","split_regex","re","def","getdatastr","getdatabin","getdata","safegetzipfile","g","getzipfile","getzipdata","safe","getzipstr","_fs","jszip","resolve_path","target","step","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","quot","strip_ns","encodings",""","'",">","<","&","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","xml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8reada","orig","utf8write","utf8readb","corpus","utf8readc","matchtag","mtcache","htmldecode","trim","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","XLMLNS","html","read_double_le","Infinity","write_double_le","bs","av","isFinite","LN2","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","lpstr_b","readUInt32LE","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","___unhexlify","__unhexlify","oI","oR","oo","loc","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","hexstr","fld","parsenoop","parsenooplog","console","writenoop","sz","recordhopper","cb","tmpbyte","cntbyte","RT","tgt","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","fix_cell","unfix_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","aoa_to_sheet","dense","ws","cellStubs","cellDates","cell_ref","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","write_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","42","43","255","RBErr","parse_BrtColor","fValidRGB","xColorType","nTS","bR","bG","bB","bAlpha","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_UI8","VT_LPSTR","VT_FILETIME","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties","2147483648","2147483651","1919054434","CountryEnum","41","44","45","46","47","48","49","52","55","61","64","66","81","82","84","86","90","105","213","216","218","351","354","358","420","886","961","962","963","964","965","966","971","972","974","981","65535","XLSFillPattern","rgbify","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-office.chartcolorstyle+xml","application/vnd.ms-office.chartstyle+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.openxmlformats-officedocument.themeOverride+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","image/png","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","CT_ODS","parse_manifest","xlml_normalize","Rn","FEtag","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","wmo","wb","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","_opts","Props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","dt:dt","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","parse_ClipboardData","Size","parse_VtVector","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","width","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","accel","parse_URLMoniker","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","parse_InterfaceHdr","parse_WriteAccess","UserName","write_WriteAccess","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","miyRw","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Font","dyHeight","parse_LabelSst","isst","parse_Label","write_Label","parse_Format","fmtstr","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","cbPictFmla","colL","dxL","rwT","dyT","colR","dxR","rwB","dyB","cbMacro","parse_TxO","texts","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","100","101","102","103","104","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","77","78","79","80","87","88","89","dbf_to_aoa","memo","vfp","filedate","nrow","fpos","rlen","current_cp","fields","field","hend","day","ms","dbf_to_sheet","dbf_to_workbook","to_workbook","to_sheet","SYLK","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","aoa","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","from_sheet","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","PRN","set_text_arr","prn_to_aoa_str","lines","guess_sep","instr","dsv_to_sheet_str","sep","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","message","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","40","50","51","56","60","62","63","65","67","68","69","70","71","72","73","74","CS2CP","128","129","130","134","136","161","162","163","177","178","186","204","222","238","parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","rc","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu_decrypt","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","px2char_","char2width_","cycle_width","collw","find_mdw_colw","delta","_MDW","find_mdw_wpx","guess","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_borders","Borders","border","sub_border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","codepage","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","ixfeP","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","write_cc_bin","parse_xlink_xml","parse_xlink_bin","xlink_parse","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","xmlns:v","xmlns:o","xmlns:x","xmlns:mv","v:ext","joinstyle","gradientshapeok","o:connecttype","o:spt","coordsize","fillcolor","strokecolor","color2","angle","obscured","CMNT","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","thisCell","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","sheetRows","textMatch","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","write_comments_bin","DS","MS","parse_ds_bin","!type","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","$4","$5","fstr","crefregex","$0","off","shift_formula_str","shift_formula_xlsx","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","PtgTypes","57","58","59","PtgDupes","96","97","98","99","75","76","108","109","91","92","93","Ptg18","Ptg19","parse_Formula","parse_FormulaValue","chn","cbf","parse_XLSCellParsedFormula","shared","parse_RgbExtra","parse_Rgce","rgcb","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","get_ixti","stringify_formula","_range","stack","nameidx","last_sp","sp","fflen","argc","args","lbl","names","XLSXFutureFunctions","bookidx","externbook","pnxname","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","PtgDataType","53","54","83","85","94","95","110","111","112","113","114","115","116","117","118","119","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","206","207","208","209","210","211","212","214","215","217","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","353","357","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_range_3D","_ssfopts","WS","get_sst_id","col_obj_w","default_margins","margins","defs","right","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","parse_ws_xml","data1","data2","mtch","ridx","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","mergecells","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","write_ws_xml_protection","deffalse","deftrue","Rel","tooltip","Tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","write_ws_xml_sheetviews","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","cellFormula","si","_tag","sheetStubs","_r","write_ws_xml_data","_cell","params","height","customHeight","WS_XML_ROOT","xmlns:r","write_ws_xml","rdata","codeName","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","r:id","hfidx","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","parse_BrtMargins","write_BrtMargins","write_BrtBeginWsView","write_BrtSheetProtection","parse_ws_bin","!id","ai","af","array_formulae","shared_formulae","Names","defwidth","defheight","ws_parse","aii","_d","write_ws_bin_cell","olddate","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_numCache","nf","parse_chart","csheet","nc","CS","CS_XML_ROOT","parse_cs_xml","!chart","!rel","write_cs_xml","parse_cs_bin","cs_parse","write_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","Workbook","badchars","check_ws_name","_good","check_wb_names","N","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","Sheet","Ref","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cc","parse_xlink","write_wb","write_ws","write_cs","write_sty","write_sst","write_cmnt","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","arr2str","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_ws_xlml_wsopts","x:Margin","x:Bottom","x:Left","x:Right","x:Top","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","ss:Author","write_ws_xlml_cell","mi","_v","write_ws_xlml_row","write_ws_xlml_table","ss:Index","write_ws_xlml","write_xlml","ss:Name","xmlns:ss","xmlns:dt","xmlns:html","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","XTI","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","RecordType","Date1904","WriteProtect","error","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","ExternCount","fakebs8","_f","_fr","_fc","_fe","_arraystart","_j","_ixfe","b2idx","TxO","ImData","noteobj","sheetnamesraw","Encryption","Metadata","Country","parse_props","props","DSI","DocSummary","SI","Summary","parse_xlscfb","CompObj","CompObjP","SummaryP","WorkbookP","bookFiles","write_xlscfb","wbpath","write_biff_buf","333","486","487","488","490","492","496","497","498","499","500","501","502","503","504","505","506","507","508","512","513","514","515","516","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","540","541","542","550","551","552","553","554","555","556","557","558","559","560","561","562","564","565","566","569","570","572","573","574","577","578","579","580","581","582","583","584","585","586","587","588","589","590","591","592","593","594","595","596","597","598","599","600","601","602","603","604","605","606","607","608","609","610","611","612","613","614","615","616","617","618","619","625","626","627","628","629","630","631","632","633","634","635","636","637","638","639","640","641","642","643","644","645","646","648","649","650","651","652","654","655","656","657","658","659","660","661","662","663","664","665","666","668","669","671","672","674","675","676","677","678","679","680","1024","1025","1026","1027","1028","1029","1030","1031","1032","1033","1034","1035","1036","1037","1038","1039","1040","1041","1042","1043","1044","1045","1046","1047","1048","1049","1050","1051","1052","1053","1054","1055","1056","1057","1058","1059","1061","1062","1063","1066","1067","1068","1069","1070","1071","1072","1073","1075","1076","1077","1078","1079","1080","1081","1082","1083","1084","1085","1086","1087","1088","1089","1090","1091","1092","1093","1094","1095","1096","1097","1098","1099","1100","1101","1102","1103","1104","1105","1111","1112","1113","1114","1115","1116","1117","1118","1119","1120","1121","1122","1123","1124","1125","1126","1128","1129","1130","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1141","1142","1143","1144","1145","1146","1147","1148","1149","1150","1152","1153","1154","1155","1156","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170","1171","1172","1173","1177","1178","1180","1181","1182","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2060","2067","2068","2069","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","2101","2102","2103","2104","2105","2106","2107","2108","2109","2110","2111","2112","2113","2114","2115","2116","2117","2118","2119","2120","2121","2122","2123","2124","2125","2126","2127","2128","2129","2130","2131","2132","2133","2134","2135","2136","1212","2059","2061","2062","2063","2064","2066","2137","2138","2146","2147","2148","2149","2150","2151","2152","2154","2155","2156","2161","2162","2164","2165","2166","2167","2168","2169","2170","2171","2172","2173","2174","2175","2180","2181","2182","2183","2184","2185","2186","2187","2188","2189","2190","2191","2192","2194","2195","2196","2197","2198","2199","2200","2201","2202","2203","2204","2205","2206","2207","2211","2212","2213","2214","2215","4097","4098","4099","4102","4103","4105","4106","4107","4108","4109","4116","4117","4118","4119","4120","4121","4122","4123","4124","4125","4126","4127","4128","4129","4130","4132","4133","4134","4135","4146","4147","4148","4149","4154","4156","4157","4158","4159","4160","4161","4163","4164","4165","4166","4168","4170","4171","4174","4175","4176","4177","4187","4188","4189","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","2157","2163","2177","2240","2241","2242","2243","2244","2245","2246","2247","2248","2249","2250","2251","2262","29282","XLSRE","write_biff_rec","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_ws_biff8_cell","write_ws_biff8","write_biff8_global","b8","b5","blen","write_biff8_buf","unshift","html_to_sheet","mtch2","midx","hd","colspan","rowspan","html_to_book","make_html_row","nullcell","editable","contenteditable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","_C","elts","children","innerHTML","getAttribute","table_to_book","parse_content_xml","parse_text_p","number_formats","month","year","hours","minutes","seconds","am-pm","day-of-week","pcx","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","number_format_map","mrange","mR","mC","creator","creatoridx","rept","isstub","parse_ods","ods","write_styles_ods","wso","write_content_ods","null_cell_xml","covered_cell_xml","_Fref","write_automatic_styles_ods","wcx","xmlns:office","xmlns:table","xmlns:style","xmlns:text","xmlns:draw","xmlns:fo","xmlns:xlink","xmlns:meta","xmlns:number","xmlns:presentation","xmlns:svg","xmlns:chart","xmlns:dr3d","xmlns:math","xmlns:form","xmlns:script","xmlns:ooo","xmlns:ooow","xmlns:oooc","xmlns:dom","xmlns:xforms","xmlns:sheet","xmlns:rpt","xmlns:of","xmlns:xhtml","xmlns:grddl","xmlns:tableooo","xmlns:drawooo","xmlns:calcext","xmlns:loext","xmlns:field","xmlns:formx","xmlns:css3t","office:version","fods","xmlns:config","office:mimetype","write_ods","write_obj_str","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","fix_opts_func","fix_opts","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","nodirs","strip_front_slash","parse_zip","entries","binname","externbooks","link","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","bookVBA","vbaraw","bin","parse_xlsxcfb","dsm","seds","einfo","write_zip","vbafmt","General","wsrels","_type","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","write_zip_type","oopts","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","bstr","writeSync","resolve_book_type","writeFileAsync","_cb","Function","sheet_to_json","isempty","defval","outi","counter","CC","defineProperty","enumerable","__rowNum__","blankrows","qreg","make_csv_row","FS","txt","endregex","colInfos","skipHidden","rowInfos","strip","sheet_to_formulae","cmds","json_to_sheet","js","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","_read","write_html_stream","to_html","to_csv","readFile","XLS","ODS"],"mappings":"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","file":"dist/xlsx.full.min.js"} \ No newline at end of file +{"version":3,"sources":["misc/suppress_export.js","jszip.js","dist/cpexcel.js","dist/xlsx.js"],"names":["DO_NOT_EXPORT_CODEPAGE","DO_NOT_EXPORT_JSZIP","e","exports","module","define","amd","JSZip","f","window","global","$","self","t","n","r","s","o","u","a","require","i","Error","call","length","1","_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode","2","CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent","3","STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate","4","utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils","5","DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date","6","base64","binary","dir","createFolders","date","compression","comment","7","string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object","8","USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw","9","options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support","10","ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries","11","Buffer","encoding","test","isBuffer","undefined","12","Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","./dataReader","16","join","17","arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","18","sig0","sig1","sig2","sig3","subarray","19","20","_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min","21","identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method","22","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants","25","zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream","26","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js","27","TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common","29","adler32","adler","s1","s2","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","31","makeTable","crcTable","end","32","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees","33","GZheader","xflags","extra_len","done","34","BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane","35","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees","36","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index","37","0","-1","-2","-3","-4","-5","-6","38","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","39","ZStream","cptable","version","d","D","enc","split","factory","cpt","1200","1201","12000","12001","16969","20127","65000","65001","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","has_buf","mdl","mdb","make_EE","E","EE","keys","ee","sbcs_encode","make_sbcs_encode","cp","sbcs_e","ofmt","sbcs_decode","make_sbcs_decode","DD","sbcs_d","dbcs_encode","make_dbcs_encode","dbcs_e","jj","dbcs_decode","make_dbcs_decode","dbcs_d","utf8_d","map","ww","utf8_e","direct","encache","null_enc","cp_decache","decache","forEach","last_enc","last_cp","cache","sbcs","dbcs","BM","SetD","C","M","isstr","tt","F","dash","o64","c1","c3","e1","e2","e3","e4","hascp","XLSX","make_xlsx","current_codepage","reset_cp","set_cp","char_codes","utf16leread","utf16beread","debom","substr","_getchar","_gc1","_gc2","DENSE","DIF_XL","Base64","make_b64","b64_decode","process","versions","new_raw_buf","s2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","parse_date_code","b2","dow","dout","T","H","S","abs","date1904","setDate","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","_general_num","general_fmt","format","_general","write_date","fmt","ss0","ss","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","fmt_is_date","is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","load_entry","_table","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","datestr","timestr","DO_NOT_EXPORT_CFB","CFB","_CFB","namecmp","L","R","Z","dirname","parse","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","prep_blob","mv","check_get_mver","check_shifts","dir_cnt","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","pl","dad","cnt","sector","__readInt32LE","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","minifat_store","namelen","__utf16le","color","clsid","ctime","ct","read_date","mtime","mt","storage","MSSZ","__readUInt32LE","fs","read_file","readFileSync","read","init_cfb","cfb","CLSID","seed_cfb","nm","find","new_buf","rebuild_cfb","gc","_file","pop","now","sort","elt","_write","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","write_shift","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","a2s","write","cfb_new","cfb_add","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","isval","evert_key","key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","setFullYear","cc2str","arr","str2cc","dup","JSON","stringify","fuzzynum","Number","wt","fuzzydate","NaN","getYear","safe_split_regex","split_regex","re","def","getdatastr","getdatabin","getdata","safegetzipfile","g","getzipfile","getzipdata","safe","getzipstr","_fs","jszip","resolve_path","target","step","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","quot","strip_ns","encodings",""","'",">","<","&","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","xml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8reada","orig","utf8write","utf8readb","corpus","utf8readc","matchtag","mtcache","htmldecode","trim","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","XLMLNS","html","read_double_le","Infinity","write_double_le","bs","av","isFinite","LN2","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","lpstr_b","readUInt32LE","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","__readInt32BE","___unhexlify","__unhexlify","oI","oR","oo","loc","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","hexstr","fld","parsenoop","parsenooplog","console","writenoop","sz","recordhopper","cb","tmpbyte","cntbyte","RT","tgt","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","fix_cell","unfix_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","aoa_to_sheet","dense","ws","cellStubs","cellDates","cell_ref","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","write_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","42","43","255","RBErr","parse_BrtColor","fValidRGB","xColorType","nTS","bR","bG","bB","bAlpha","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_UI8","VT_LPSTR","VT_FILETIME","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties","2147483648","2147483651","1919054434","CountryEnum","41","44","45","46","47","48","49","52","55","61","64","66","81","82","84","86","90","105","213","216","218","351","354","358","420","886","961","962","963","964","965","966","971","972","974","981","65535","XLSFillPattern","rgbify","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-office.chartcolorstyle+xml","application/vnd.ms-office.chartstyle+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.openxmlformats-officedocument.themeOverride+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","image/png","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","CT_ODS","parse_manifest","xlml_normalize","Rn","FEtag","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","wmo","wb","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","_opts","Props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","dt:dt","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","parse_ClipboardData","Size","parse_VtVector","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","width","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","accel","parse_URLMoniker","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","parse_InterfaceHdr","parse_WriteAccess","UserName","write_WriteAccess","b8","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","miyRw","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Font","dyHeight","parse_LabelSst","isst","parse_Label","write_Label","parse_Format","fmtstr","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","cbPictFmla","colL","dxL","rwT","dyT","colR","dxR","rwB","dyB","cbMacro","parse_TxO","texts","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","100","101","102","103","104","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","77","78","79","80","87","88","89","dbf_to_aoa","memo","vfp","l7","filedate","nrow","fpos","rlen","current_cp","fields","field","hend","dbf_to_sheet","dbf_to_workbook","to_workbook","to_sheet","SYLK","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","aoa","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","from_sheet","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","PRN","set_text_arr","prn_to_aoa_str","lines","guess_seps","59","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","sep","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","message","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","40","50","51","56","60","62","63","65","67","68","69","70","71","72","73","74","CS2CP","128","129","130","134","136","161","162","163","177","178","186","204","222","238","parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","rc","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","px2char_","char2width_","cycle_width","collw","find_mdw_colw","delta","_MDW","find_mdw_wpx","guess","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_borders","Borders","border","sub_border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","codepage","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","ixfeP","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","write_cc_bin","parse_xlink_xml","parse_xlink_bin","xlink_parse","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","xmlns:v","xmlns:o","xmlns:x","xmlns:mv","v:ext","joinstyle","gradientshapeok","o:connecttype","o:spt","coordsize","fillcolor","strokecolor","color2","angle","obscured","CMNT","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","thisCell","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","sheetRows","textMatch","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","write_comments_bin","make_vba_xls","newcfb","newpath","DS","MS","parse_ds_bin","!type","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","$4","$5","fstr","crefregex","$0","off","shift_formula_str","shift_formula_xlsx","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","parse_PtgList","parse_PtgSxName","PtgTypes","57","58","PtgDupes","96","97","98","99","75","76","108","109","91","92","93","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","get_ixti","stringify_formula","_range","stack","nameidx","last_sp","sp","fflen","argc","args","lbl","names","XLSXFutureFunctions","bookidx","externbook","pnxname","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","parse_Formula","chn","cbf","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","PtgDataType","53","54","83","85","94","95","110","111","112","113","114","115","116","117","118","119","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","206","207","208","209","210","211","212","214","215","217","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","353","357","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_range_3D","_ssfopts","WS","get_sst_id","col_obj_w","default_margins","margins","defs","right","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","parse_ws_xml","data1","data2","mtch","ridx","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","mergecells","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","write_ws_xml_protection","deffalse","deftrue","Rel","tooltip","Tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","write_ws_xml_sheetviews","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","cellFormula","si","_tag","sheetStubs","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","xmlns:r","write_ws_xml","rdata","codeName","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","r:id","hfidx","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","write_BrtBeginWsView","write_BrtSheetProtection","parse_ws_bin","!id","ai","af","array_formulae","shared_formulae","Names","defwidth","defheight","ws_parse","aii","_d","write_ws_bin_cell","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_numCache","nf","parse_chart","csheet","nc","CS","CS_XML_ROOT","parse_cs_xml","!chart","!rel","write_cs_xml","parse_cs_bin","cs_parse","write_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","Workbook","badchars","check_ws_name","_good","check_wb_names","N","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","Sheet","Ref","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cc","parse_xlink","write_wb","write_ws","write_cs","write_sty","write_sst","write_cmnt","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","arr2str","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_ws_xlml_wsopts","x:Margin","x:Bottom","x:Left","x:Right","x:Top","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","ss:Author","write_ws_xlml_cell","mi","_v","write_ws_xlml_row","write_ws_xlml_table","ss:Index","write_ws_xlml","write_xlml","ss:Name","xmlns:ss","xmlns:dt","xmlns:html","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","XTI","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","RecordType","Date1904","WriteProtect","error","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","ExternCount","fakebs8","_f","_fr","_fc","_fe","_arraystart","_j","_ixfe","b2idx","TxO","ImData","noteobj","sheetnamesraw","Encryption","Metadata","Country","parse_props","props","DSI","DocSummary","SI","Summary","parse_xlscfb","CompObj","CompObjP","SummaryP","WorkbookP","bookVBA","vbaraw","bookFiles","write_xlscfb","wbpath","write_biff_buf","333","486","487","488","490","492","496","497","498","499","500","501","502","503","504","505","506","507","508","512","513","514","515","516","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","540","541","542","550","551","552","553","554","555","556","557","558","559","560","561","562","564","565","566","569","570","572","573","574","577","578","579","580","581","582","583","584","585","586","587","588","589","590","591","592","593","594","595","596","597","598","599","600","601","602","603","604","605","606","607","608","609","610","611","612","613","614","615","616","617","618","619","625","626","627","628","629","630","631","632","633","634","635","636","637","638","639","640","641","642","643","644","645","646","648","649","650","651","652","654","655","656","657","658","659","660","661","662","663","664","665","666","668","669","671","672","674","675","676","677","678","679","680","1024","1025","1026","1027","1028","1029","1030","1031","1032","1033","1034","1035","1036","1037","1038","1039","1040","1041","1042","1043","1044","1045","1046","1047","1048","1049","1050","1051","1052","1053","1054","1055","1056","1057","1058","1059","1061","1062","1063","1066","1067","1068","1069","1070","1071","1072","1073","1075","1076","1077","1078","1079","1080","1081","1082","1083","1084","1085","1086","1087","1088","1089","1090","1091","1092","1093","1094","1095","1096","1097","1098","1099","1100","1101","1102","1103","1104","1105","1111","1112","1113","1114","1115","1116","1117","1118","1119","1120","1121","1122","1123","1124","1125","1126","1128","1129","1130","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1141","1142","1143","1144","1145","1146","1147","1148","1149","1150","1152","1153","1154","1155","1156","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170","1171","1172","1173","1177","1178","1180","1181","1182","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2060","2067","2068","2069","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","2101","2102","2103","2104","2105","2106","2107","2108","2109","2110","2111","2112","2113","2114","2115","2116","2117","2118","2119","2120","2121","2122","2123","2124","2125","2126","2127","2128","2129","2130","2131","2132","2133","2134","2135","2136","1212","2059","2061","2062","2063","2064","2066","2137","2138","2146","2147","2148","2149","2150","2151","2152","2154","2155","2156","2161","2162","2164","2165","2166","2167","2168","2169","2170","2171","2172","2173","2174","2175","2180","2181","2182","2183","2184","2185","2186","2187","2188","2189","2190","2191","2192","2194","2195","2196","2197","2198","2199","2200","2201","2202","2203","2204","2205","2206","2207","2211","2212","2213","2214","2215","4097","4098","4099","4102","4103","4105","4106","4107","4108","4109","4116","4117","4118","4119","4120","4121","4122","4123","4124","4125","4126","4127","4128","4129","4130","4132","4133","4134","4135","4146","4147","4148","4149","4154","4156","4157","4158","4159","4160","4161","4163","4164","4165","4166","4168","4170","4171","4174","4175","4176","4177","4187","4188","4189","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","2157","2163","2177","2240","2241","2242","2243","2244","2245","2246","2247","2248","2249","2250","2251","2262","29282","XLSRE","write_biff_rec","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_ws_biff8_cell","write_ws_biff8","write_biff8_global","b5","blen","write_biff8_buf","unshift","html_to_sheet","mtch2","midx","hd","colspan","rowspan","html_to_book","make_html_row","nullcell","editable","contenteditable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","_C","elts","children","innerHTML","getAttribute","table_to_book","parse_content_xml","parse_text_p","number_formats","day","month","year","hours","minutes","seconds","am-pm","day-of-week","era","quarter","pcx","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","creator","creatoridx","isstub","rpt","parse_ods","ods","write_styles_ods","xmlns:office","xmlns:table","xmlns:style","xmlns:text","xmlns:draw","xmlns:fo","xmlns:xlink","xmlns:number","xmlns:svg","xmlns:of","office:version","wso","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","_Fref","write_automatic_styles_ods","wcx","xmlns:meta","xmlns:presentation","xmlns:chart","xmlns:dr3d","xmlns:math","xmlns:form","xmlns:script","xmlns:ooo","xmlns:ooow","xmlns:oooc","xmlns:dom","xmlns:xforms","xmlns:sheet","xmlns:rpt","xmlns:xhtml","xmlns:grddl","xmlns:tableooo","xmlns:drawooo","xmlns:calcext","xmlns:loext","xmlns:field","xmlns:formx","xmlns:css3t","fods","xmlns:config","office:mimetype","write_ods","write_obj_str","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","fix_opts_func","fix_opts","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","nodirs","strip_front_slash","parse_zip","entries","binname","externbooks","link","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","write_zip","vbafmt","General","wsrels","_type","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","write_zip_type","oopts","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","bstr","writeSync","resolve_book_type","writeFileAsync","_cb","Function","sheet_to_json","isempty","defval","outi","counter","CC","defineProperty","enumerable","__rowNum__","blankrows","qreg","make_csv_row","FS","txt","endregex","colInfos","skipHidden","rowInfos","strip","sheet_to_formulae","cmds","json_to_sheet","js","JS","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","_read","write_html_stream","to_html","to_csv","readFile","XLS","ODS"],"mappings":"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","file":"dist/xlsx.full.min.js"} \ No newline at end of file diff --git a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.js b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.js index e3f2419101..893b3f3d9d 100644 --- a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.js +++ b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.js @@ -1,12 +1,10 @@ /* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ /* vim: set ts=2: */ -/*jshint -W041 */ -/*jshint funcscope:true, eqnull:true, loopfunc:true */ /*exported XLSX */ /*global global, exports, module, require:false, process:false, Buffer:false */ var XLSX = {}; (function make_xlsx(XLSX){ -XLSX.version = '0.11.5'; +XLSX.version = '0.11.6'; var current_codepage = 1200; /*global cptable:true */ if(typeof module !== "undefined" && typeof require !== 'undefined') { @@ -2202,7 +2200,7 @@ function write_double_le(b, v, idx) { var __toBuffer = function(bufs) { var x = []; for(var i = 0; i < bufs[0].length; ++i) { x.push.apply(x, bufs[0][i]); } return x; }; var ___toBuffer = __toBuffer; -var __utf16le = function(b,s,e) { var ss=[]; for(var i=s; i 0 ? b.toString('utf8',i+4,i+4+len-1) : "";}; __lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);}; @@ -2236,7 +2234,7 @@ if(has_buf) { /* from js-xls */ if(typeof cptable !== 'undefined') { - __utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)); }; + __utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); }; __utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); }; __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : "";}; __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : "";}; @@ -2249,6 +2247,7 @@ var __readUInt16LE = function(b, idx) { return b[idx+1]*(1<<8)+b[idx]; }; var __readInt16LE = function(b, idx) { var u = b[idx+1]*(1<<8)+b[idx]; return (u < 0x8000) ? u : (0xffff - u + 1) * -1; }; var __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; }; var __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; }; +var __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; }; var ___unhexlify = function(s) { return (s.match(/../g)||[]).map(function(x) { return parseInt(x,16);}); }; var __unhexlify = typeof Buffer !== "undefined" ? function(s) { return Buffer.isBuffer(s) ? new Buffer(s, 'hex') : ___unhexlify(s); } : ___unhexlify; @@ -2316,10 +2315,15 @@ function ReadShift(size, t) { switch(size) { case 1: oI = __readUInt8(this, this.l); this.l++; return oI; case 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI; - case 4: - if(t === 'i' || (this[this.l+3] & 0x80)===0) { oI = __readInt32LE(this, this.l); this.l += 4; return oI; } + case 4: case -4: + if(t === 'i' || (this[this.l+3] & 0x80)===0) { oI = (size > 0 ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; } else { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR; - case 8: if(t === 'f') { oR = __double(this, this.l); this.l += 8; return oR; } + case 8: case -8: + if(t === 'f') { + if(size == 8) oR = __double(this, this.l); + else oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0); + this.l += 8; return oR; + } else size = 8; /* falls through */ case 16: o = __hexlify(this, this.l, size); break; }} @@ -2336,6 +2340,8 @@ function WriteShift(t, val, f) { for(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i); size = 2 * val.length; } else if(f === 'sbcs') { + /* TODO: codepage */ +val = val.replace(/[^\x00-\x7F]/g, "_"); for(i = 0; i != val.length; ++i) this[this.l + i] = val.charCodeAt(i) & 0xFF; size = val.length; } else if(f === 'hex') { @@ -2922,47 +2928,45 @@ function write_FontFlags(font, o) { } /* [MS-OLEPS] 2.2 PropertyType */ -{ - //var VT_EMPTY = 0x0000; - //var VT_NULL = 0x0001; - var VT_I2 = 0x0002; - var VT_I4 = 0x0003; - //var VT_R4 = 0x0004; - //var VT_R8 = 0x0005; - //var VT_CY = 0x0006; - //var VT_DATE = 0x0007; - //var VT_BSTR = 0x0008; - //var VT_ERROR = 0x000A; - var VT_BOOL = 0x000B; - var VT_VARIANT = 0x000C; - //var VT_DECIMAL = 0x000E; - //var VT_I1 = 0x0010; - //var VT_UI1 = 0x0011; - //var VT_UI2 = 0x0012; - var VT_UI4 = 0x0013; - //var VT_I8 = 0x0014; - var VT_UI8 = 0x0015; - //var VT_INT = 0x0016; - //var VT_UINT = 0x0017; - var VT_LPSTR = 0x001E; - //var VT_LPWSTR = 0x001F; - var VT_FILETIME = 0x0040; - //var VT_BLOB = 0x0041; - //var VT_STREAM = 0x0042; - //var VT_STORAGE = 0x0043; - //var VT_STREAMED_Object = 0x0044; - //var VT_STORED_Object = 0x0045; - //var VT_BLOB_Object = 0x0046; - var VT_CF = 0x0047; - //var VT_CLSID = 0x0048; - //var VT_VERSIONED_STREAM = 0x0049; - var VT_VECTOR = 0x1000; - //var VT_ARRAY = 0x2000; - - var VT_STRING = 0x0050; // 2.3.3.1.11 VtString - var VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString - var VT_CUSTOM = [VT_STRING, VT_USTR]; -} +//var VT_EMPTY = 0x0000; +//var VT_NULL = 0x0001; +var VT_I2 = 0x0002; +var VT_I4 = 0x0003; +//var VT_R4 = 0x0004; +//var VT_R8 = 0x0005; +//var VT_CY = 0x0006; +//var VT_DATE = 0x0007; +//var VT_BSTR = 0x0008; +//var VT_ERROR = 0x000A; +var VT_BOOL = 0x000B; +var VT_VARIANT = 0x000C; +//var VT_DECIMAL = 0x000E; +//var VT_I1 = 0x0010; +//var VT_UI1 = 0x0011; +//var VT_UI2 = 0x0012; +var VT_UI4 = 0x0013; +//var VT_I8 = 0x0014; +var VT_UI8 = 0x0015; +//var VT_INT = 0x0016; +//var VT_UINT = 0x0017; +var VT_LPSTR = 0x001E; +//var VT_LPWSTR = 0x001F; +var VT_FILETIME = 0x0040; +//var VT_BLOB = 0x0041; +//var VT_STREAM = 0x0042; +//var VT_STORAGE = 0x0043; +//var VT_STREAMED_Object = 0x0044; +//var VT_STORED_Object = 0x0045; +//var VT_BLOB_Object = 0x0046; +var VT_CF = 0x0047; +//var VT_CLSID = 0x0048; +//var VT_VERSIONED_STREAM = 0x0049; +var VT_VECTOR = 0x1000; +//var VT_ARRAY = 0x2000; + +var VT_STRING = 0x0050; // 2.3.3.1.11 VtString +var VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString +var VT_CUSTOM = [VT_STRING, VT_USTR]; /* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */ var DocSummaryPIDDSI = { @@ -4166,12 +4170,12 @@ function parse_PropertySet(blob, PIDSI) { case 1252: case 65000: case -536: case 65001: case -535: - set_cp(CodePage = PropH[piddsi.n]>>>0 & 0xFFFF); break; + set_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break; default: throw new Error("Unsupported CodePage: " + PropH[piddsi.n]); } } else { if(Props[i][0] === 0x1) { - CodePage = PropH.CodePage = parse_TypedPropertyValue(blob, VT_I2); + CodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)); set_cp(CodePage); if(Dictionary !== -1) { var oldpos = blob.l; @@ -4623,7 +4627,8 @@ function parse_WriteAccess(blob, length, opts) { return UserName; } function write_WriteAccess(s, opts) { - var o = new_buf(112); + var b8 = !opts || opts.biff == 8; + var o = new_buf(b8 ? 112 : 54); o.write_shift(opts.biff == 8 ? 2 : 1, 7); o.write_shift(1, 0); o.write_shift(4, 0x33336853); @@ -4648,14 +4653,15 @@ function parse_BoundSheet8(blob, length, opts) { return { pos:pos, hs:hidden, dt:dt, name:name }; } function write_BoundSheet8(data, opts) { - var o = new_buf(8 + 2 * data.name.length); + var w = (!opts || opts.biff >= 8 ? 2 : 1); + var o = new_buf(8 + w * data.name.length); o.write_shift(4, data.pos); o.write_shift(1, data.hs || 0); o.write_shift(1, data.dt); o.write_shift(1, data.name.length); - o.write_shift(1, 1); - o.write_shift(2 * data.name.length, data.name, 'utf16le'); - return o; + if(opts.biff >= 8) o.write_shift(1, 1); + o.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le'); + return o.slice(0, o.l); } /* 2.4.265 TODO */ @@ -4784,11 +4790,12 @@ function parse_Label(blob, length, opts) { return cell; } function write_Label(R, C, v, opts) { - var o = new_buf(6 + 3 + 2 * v.length); + var b8 = !opts || opts.biff == 8; + var o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length); write_XLSCell(R, C, 0, o); o.write_shift(2, v.length); - o.write_shift(1, 1); - o.write_shift(2 * v.length, v, 'utf16le'); + if(b8) o.write_shift(1, 1); + o.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs'); return o; } @@ -4811,9 +4818,10 @@ function parse_Dimensions(blob, length, opts) { return {s: {r:r, c:c}, e: {r:R, c:C}}; } function write_Dimensions(range, opts) { - var o = new_buf(14); - o.write_shift(4, range.s.r); - o.write_shift(4, range.e.r + 1); + var w = opts.biff == 8 || !opts.biff ? 4 : 2; + var o = new_buf(2*w + 6); + o.write_shift(w, range.s.r); + o.write_shift(w, range.e.r + 1); o.write_shift(2, range.s.c); o.write_shift(2, range.e.c + 1); o.write_shift(2, 0); @@ -5020,7 +5028,7 @@ function parse_Lbl(blob, length, opts) { var name = parse_XLUnicodeStringNoCch(blob, cch, opts); if(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)]; var npflen = target - blob.l; if(opts && opts.biff == 2) --npflen; - var rgce = target == blob.l || cce == 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce); + var rgce = target == blob.l || cce === 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce); return { chKey: chKey, Name: name, @@ -5433,13 +5441,14 @@ function dbf_to_aoa(buf, opts) { /* header */ var ft = d.read_shift(1); var memo = false; - var vfp = false; + var vfp = false, l7 = false; switch(ft) { case 0x02: case 0x03: break; case 0x30: vfp = true; memo = true; break; case 0x31: vfp = true; break; case 0x83: memo = true; break; case 0x8B: memo = true; break; + case 0x8C: memo = true; l7 = true; break; case 0xF5: memo = true; break; default: throw new Error("DBF Unsupported Version: " + ft.toString(16)); } @@ -5462,36 +5471,42 @@ function dbf_to_aoa(buf, opts) { d.l+=2; } + if(l7) d.l += 36; var fields = [], field = {}; - var hend = fpos - 10 - (vfp ? 264 : 0); + var hend = fpos - 10 - (vfp ? 264 : 0), ww = l7 ? 32 : 11; while(ft == 0x02 ? d.l < d.length && d[d.l] != 0x0d: d.l < hend) { field = {}; - field.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+10)).replace(/[\u0000\r\n].*$/g,""); - d.l += 11; + field.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\u0000\r\n].*$/g,""); + d.l += ww; field.type = String.fromCharCode(d.read_shift(1)); - if(ft != 0x02) field.offset = d.read_shift(4); + if(ft != 0x02 && !l7) field.offset = d.read_shift(4); field.len = d.read_shift(1); if(ft == 0x02) field.offset = d.read_shift(2); field.dec = d.read_shift(1); if(field.name.length) fields.push(field); - if(ft != 0x02) d.l += 14; + if(ft != 0x02) d.l += l7 ? 13 : 14; switch(field.type) { - // case 'B': break; // Binary - case 'C': break; // character - case 'D': break; // date - case 'F': break; // floating point - // case 'G': break; // General - case 'I': break; // long - case 'L': break; // boolean - case 'M': break; // memo - case 'N': break; // number - // case 'O': break; // double - // case 'P': break; // Picture - case 'T': break; // datetime - case 'Y': break; // currency - case '0': break; // null ? - case '+': break; // autoincrement - case '@': break; // timestamp + case 'B': // VFP Double + if((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type); + break; + case 'G': // General + case 'P': // Picture + if(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type); + break; + case 'C': // character + case 'D': // date + case 'F': // floating point + case 'I': // long + case 'L': // boolean + case 'M': // memo + case 'N': // number + case 'O': // double + case 'T': // datetime + case 'Y': // currency + case '0': // VFP _NullFlags + case '@': // timestamp + case '+': // autoincrement + break; default: throw new Error('Unknown Field Type: ' + field.type); } } @@ -5523,7 +5538,7 @@ function dbf_to_aoa(buf, opts) { else out[R][C] = s; break; case 'F': out[R][C] = parseFloat(s.trim()); break; - case 'I': out[R][C] = dd.read_shift(4, 'i'); break; + case '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break; case 'L': switch(s.toUpperCase()) { case 'Y': case 'T': out[R][C] = true; break; case 'N': case 'F': out[R][C] = false; break; @@ -5532,15 +5547,16 @@ function dbf_to_aoa(buf, opts) { } break; case 'M': /* TODO: handle memo files */ if(!memo) throw new Error("DBF Unexpected MEMO for type " + ft.toString(16)); - out[R][C] = "##MEMO##" + dd.read_shift(4); + out[R][C] = "##MEMO##" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4)); break; case 'N': out[R][C] = +s.replace(/\u0000/g,"").trim(); break; - case 'T': - var day = dd.read_shift(4), ms = dd.read_shift(4); - throw new Error(day + " | " + ms); - //out[R][C] = new Date(); // TODO - //break; - case 'Y': out[R][C] = dd.read(4,'i')/1e4; break; + case '@': out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break; + case 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break; + case 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break; + case 'O': out[R][C] = -dd.read_shift(-8, 'f'); break; + case 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; } + /* falls through */ + case 'G': case 'P': dd.l += fields[C].len; break; case '0': if(fields[C].name === '_NullFlags') break; /* falls through */ @@ -5647,7 +5663,7 @@ var SYLK = (function() { cw = record[rj].substr(1).split(" "); for(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) { Mval = parseInt(cw[2], 10); - colinfo[j-1] = Mval == 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]); + colinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]); } break; case 'C': /* default column format */ C = parseInt(record[rj].substr(1))-1; @@ -5657,7 +5673,7 @@ var SYLK = (function() { R = parseInt(record[rj].substr(1))-1; if(!rowinfo[R]) rowinfo[R] = {}; if(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); } - else if(Mval == 0) rowinfo[R].hidden = true; + else if(Mval === 0) rowinfo[R].hidden = true; break; default: if(opts && opts.WTF) throw new Error("SYLK bad record " + rstr); } @@ -5890,14 +5906,42 @@ var PRN = (function() { return arr; } + // List of accepted CSV separators + var guess_seps = { +0x2C: ',', +0x09: "\t", +0x3B: ';' + }; + + // CSV separator weights to be used in case of equal numbers + var guess_sep_weights = { +0x2C: 3, +0x09: 2, +0x3B: 1 + }; + function guess_sep(str) { - var cnt = [], instr = false, end = 0, cc = 0; + var cnt = {}, instr = false, end = 0, cc = 0; for(;end < str.length;++end) { if((cc=str.charCodeAt(end)) == 0x22) instr = !instr; - else if(!instr) cnt[cc] = (cnt[cc]||0)+1; + else if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1; } - if((cnt[0x2C]||0) >= (cnt[0x09]||0)) return ","; - return "\t"; + + cc = []; + for(end in cnt) if ( cnt.hasOwnProperty(end) ) { + cc.push([ cnt[end], end ]); + } + + if ( !cc.length ) { + cnt = guess_sep_weights; + for(end in cnt) if ( cnt.hasOwnProperty(end) ) { + cc.push([ cnt[end], end ]); + } + } + + cc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; }); + + return guess_seps[cc.pop()[1]]; } function dsv_to_sheet_str(str, opts) { @@ -5917,9 +5961,9 @@ var PRN = (function() { var s = str.slice(start, end); var cell = ({}); if(s.charAt(0) == '"' && s.charAt(s.length - 1) == '"') s = s.slice(1,-1).replace(/""/g,'"'); - if(s.length == 0) cell.t = 'z'; + if(s.length === 0) cell.t = 'z'; else if(o.raw) { cell.t = 's'; cell.v = s; } - else if(s.trim().length == 0) { cell.t = 's'; cell.v = s; } + else if(s.trim().length === 0) { cell.t = 's'; cell.v = s; } else if(s.charCodeAt(0) == 0x3D) { if(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/""/g,'"'); } else if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.substr(1); } @@ -5992,7 +6036,7 @@ var PRN = (function() { if(!cell || cell.v == null) { oo.push(" "); continue; } var w = (cell.w || (format_cell(cell), cell.w) || "").substr(0,10); while(w.length < 10) w += " "; - oo.push(w + (C == 0 ? " " : "")); + oo.push(w + (C === 0 ? " " : "")); } o.push(oo.join("")); } @@ -6759,9 +6803,9 @@ function parse_EncryptionVerifier(blob, length) { function parse_EncryptionInfo(blob, length) { var vers = parse_CRYPTOVersion(blob); switch(vers.Minor) { - case 0x02: return parse_EncInfoStd(blob, vers); - case 0x03: return parse_EncInfoExt(blob, vers); - case 0x04: return parse_EncInfoAgl(blob, vers); + case 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)]; + case 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)]; + case 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)]; } throw new Error("ECMA-376 Encrypted file unrecognized Version: " + vers.Minor); } @@ -6779,7 +6823,10 @@ function parse_EncInfoStd(blob, vers) { /* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */ function parse_EncInfoExt(blob, vers) { throw new Error("File is password-protected: ECMA-376 Extensible"); } /* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */ -function parse_EncInfoAgl(blob, vers) { throw new Error("File is password-protected: ECMA-376 Agile"); } +function parse_EncInfoAgl(blob, vers) { + blob.l+=4; + return blob.read_shift(blob.length - blob.l, 'utf8'); +} @@ -6914,7 +6961,7 @@ function parse_XORObfuscation(blob, length, opts, out) { var o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }); if(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password); out.valid = o.verificationBytes === o.verifier; - if(out.valid) out.insitu_decrypt = crypto_MakeXorDecryptor(opts.password); + if(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password); return o; } @@ -6945,11 +6992,39 @@ var RTF = (function() { } function rtf_to_sheet_str(str, opts) { - throw new Error("Unsupported RTF"); + var o = opts || {}; + var ws = ({}); + var range = ({s: {c:0, r:0}, e: {c:0, r:0}}); + + // TODO: parse + if(!str.match(/\\trowd/)) throw new Error("RTF missing table"); + + ws['!ref'] = encode_range(range); + return ws; } function rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); } - function sheet_to_rtf() { throw new Error("Unsupported"); } + + /* TODO: this is a stub */ + function sheet_to_rtf(ws, opts) { + var o = ["{\\rtf1\\ansi"]; + var r = safe_decode_range(ws['!ref']), cell; + var dense = Array.isArray(ws); + for(var R = r.s.r; R <= r.e.r; ++R) { + o.push("\\trowd\\trautofit1"); + for(var C = r.s.c; C <= r.e.c; ++C) o.push("\\cellx" + (C+1)); + o.push("\\pard\\intbl"); + for(C = r.s.c; C <= r.e.c; ++C) { + var coord = encode_cell({r:R,c:C}); + cell = dense ? (ws[R]||[])[C]: ws[coord]; + if(!cell || cell.v == null && (!cell.f || cell.F)) continue; + o.push(" " + (cell.w || (format_cell(cell), cell.w))); + o.push("\\cell"); + } + o.push("\\pard\\intbl\\row"); + } + return o.join("") + "}"; + } return { to_workbook: rtf_to_workbook, @@ -8586,6 +8661,15 @@ function write_comments_bin(data, opts) { write_record(ba, "BrtEndComments"); return ba.end(); } +function make_vba_xls(cfb) { + var newcfb = CFB.utils.cfb_new({root:"R"}); + cfb.FullPaths.forEach(function(p, i) { + if(p.slice(-1) === "/" || !p.match(/_VBA_PROJECT_CUR/)) return; + var newpath = p.replace(/^[^/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/, ""); + CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content); + }); + return CFB.write(newcfb); +} RELS.DS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet"; RELS.MS = "http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet"; @@ -8697,6 +8781,13 @@ function parse_RgceLoc_BIFF2(blob, length, opts) { return {r:r[0], c:c, cRel:r[1], rRel:r[2]}; } +/* 2.5.198.107 , 2.5.47 */ +function parse_RgceElfLoc(blob, length, opts) { + var r = blob.read_shift(2); + var c = blob.read_shift(2); + return {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 }; +} + /* [MS-XLS] 2.5.198.111 TODO */ /* [MS-XLSB] 2.5.97.92 TODO */ function parse_RgceLocRel(blob, length, opts) { @@ -9090,6 +9181,51 @@ var parse_PtgMemNoMem = parsenoop; /* 2.5.198.92 */ var parse_PtgTbl = parsenoop; +function parse_PtgElfLoc(blob, length, opts) { + blob.l += 2; + return [parse_RgceElfLoc(blob, 4, opts)]; +} +function parse_PtgElfNoop(blob, length, opts) { + blob.l += 6; + return []; +} +/* 2.5.198.46 */ +var parse_PtgElfCol = parse_PtgElfLoc; +/* 2.5.198.47 */ +var parse_PtgElfColS = parse_PtgElfNoop; +/* 2.5.198.48 */ +var parse_PtgElfColSV = parse_PtgElfNoop; +/* 2.5.198.49 */ +var parse_PtgElfColV = parse_PtgElfLoc; +/* 2.5.198.50 */ +function parse_PtgElfLel(blob, length, opts) { + blob.l += 2; + return [parseuint16(blob), blob.read_shift(2) & 0x01]; +} +/* 2.5.198.51 */ +var parse_PtgElfRadical = parse_PtgElfLoc; +/* 2.5.198.52 */ +var parse_PtgElfRadicalLel = parse_PtgElfLel; +/* 2.5.198.53 */ +var parse_PtgElfRadicalS = parse_PtgElfNoop; +/* 2.5.198.54 */ +var parse_PtgElfRw = parse_PtgElfLoc; +/* 2.5.198.55 */ +var parse_PtgElfRwV = parse_PtgElfLoc; + +/* [MS-XLSB] 2.5.97.52 */ +function parse_PtgList(blob, length, opts) { + blob.l += 2; + var ixti = blob.read_shift(2); + blob.l += 10; + return {}; +} +/* 2.5.198.91 */ +function parse_PtgSxName(blob, length, opts) { + blob.l += 2; + return [blob.read_shift(4)]; +} + /* 2.5.198.25 */ var PtgTypes = { 0x01: { n:'PtgExp', f:parse_PtgExp }, @@ -9165,8 +9301,19 @@ var PtgDupes = { (function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})(); var Ptg18 = { -// 0x19: { n:'PtgList', f:parse_PtgList }, // TODO -// 0x1D: { n:'PtgSxName', f:parse_PtgSxName }, // TODO +0x01: { n:'PtgElfLel', f:parse_PtgElfLel }, +0x02: { n:'PtgElfRw', f:parse_PtgElfRw }, +0x03: { n:'PtgElfCol', f:parse_PtgElfCol }, +0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV }, +0x07: { n:'PtgElfColV', f:parse_PtgElfColV }, +0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical }, +0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS }, +0x0D: { n:'PtgElfColS', f:parse_PtgElfColS }, +0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV }, +0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel }, +0x19: { n:'PtgList', f:parse_PtgList }, +0x1D: { n:'PtgSxName', f:parse_PtgSxName }, +0xFF: {} }; var Ptg19 = { 0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi }, @@ -9180,36 +9327,7 @@ var Ptg19 = { 0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError }, 0xFF: {} }; - -/* 2.4.127 TODO */ -function parse_Formula(blob, length, opts) { - var end = blob.l + length; - var cell = parse_XLSCell(blob, 6); - if(opts.biff == 2) ++blob.l; - var val = parse_FormulaValue(blob,8); - var flags = blob.read_shift(1); - if(opts.biff != 2) { - blob.read_shift(1); - if(opts.biff >= 5) { - var chn = blob.read_shift(4); - } - } - var cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts); - return {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]}; -} - -/* 2.5.133 TODO: how to emit empty strings? */ -function parse_FormulaValue(blob) { - var b; - if(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n']; - switch(blob[blob.l]) { - case 0x00: blob.l += 8; return ["String", 's']; - case 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b']; - case 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e']; - case 0x03: blob.l += 8; return ["",'s']; - } - return []; -} +Ptg19[0x21] = Ptg19[0x20]; /* 2.5.198.103 */ function parse_RgbExtra(blob, length, rgce, opts) { @@ -9231,6 +9349,11 @@ function parse_RgbExtra(blob, length, rgce, opts) { rgce[i][1][1] = blob.read_shift(4); o.push(rgce[i][1]); } break; + case 'PtgList': /* TODO: PtgList -> PtgExtraList */ + case 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */ + case 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */ + case 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */ + throw "Unsupported " + rgce[i][0]; default: break; } } @@ -9241,45 +9364,6 @@ function parse_RgbExtra(blob, length, rgce, opts) { return o; } -/* 2.5.198.21 */ -function parse_NameParsedFormula(blob, length, opts, cce) { - var target = blob.l + length; - var rgce = parse_Rgce(blob, cce, opts); - var rgcb; - if(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts); - return [rgce, rgcb]; -} - -/* 2.5.198.3 TODO */ -function parse_XLSCellParsedFormula(blob, length, opts) { - var target = blob.l + length, len = opts.biff == 2 ? 1 : 2; - var rgcb, cce = blob.read_shift(len); // length of rgce - if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; - var rgce = parse_Rgce(blob, cce, opts); - if(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts); - return [rgce, rgcb]; -} - -/* 2.5.198.118 TODO */ -function parse_SharedParsedFormula(blob, length, opts) { - var target = blob.l + length; - var rgcb, cce = blob.read_shift(2); // length of rgce - var rgce = parse_Rgce(blob, cce, opts); - if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; - if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); - return [rgce, rgcb]; -} - -/* 2.5.198.1 TODO */ -function parse_ArrayParsedFormula(blob, length, opts, ref) { - var target = blob.l + length, len = opts.biff == 2 ? 1 : 2; - var rgcb, cce = blob.read_shift(len); // length of rgce - if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; - var rgce = parse_Rgce(blob, cce, opts); - if(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts); - return [rgce, rgcb]; -} - /* 2.5.198.104 */ function parse_Rgce(blob, length, opts) { var target = blob.l + length; @@ -9345,15 +9429,12 @@ function get_ixti(supbooks, ixti, opts) { return formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts)); } function stringify_formula(formula/*Array*/, range, cell, supbooks, opts) { - //console.log(formula); var _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}}; var stack = [], e1, e2, type, c, ixti=0, nameidx=0, r, sname=""; if(!formula[0] || !formula[0][0]) return ""; var last_sp = -1, sp = ""; - //console.log("--",cell,formula[0]) for(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) { var f = formula[0][ff]; - //console.log("++",f, stack) switch(f[0]) { case 'PtgUminus': /* 2.5.198.93 */ stack.push("-" + stack.pop()); break; @@ -9434,7 +9515,6 @@ function stringify_formula(formula/*Array*/, range, cell, supbooks, opts) { case 'PtgFunc': /* 2.5.198.62 */ case 'PtgFuncVar': /* 2.5.198.63 */ - //console.log(f[1]); /* f[1] = [argc, func, type] */ var argc = (f[1][0]), func = (f[1][1]); if(!argc) argc = 0; @@ -9488,7 +9568,6 @@ function stringify_formula(formula/*Array*/, range, cell, supbooks, opts) { /* f[1] = type, ixti, nameindex */ var bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook; /* TODO: Properly handle missing values */ - //console.log(bookidx, supbooks); if(opts.biff <= 5) { if(bookidx < 0) bookidx = -bookidx; if(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx]; @@ -9592,6 +9671,27 @@ function stringify_formula(formula/*Array*/, range, cell, supbooks, opts) { case 'PtgMemFunc': /* 2.5.198.72 TODO */ break; + case 'PtgMemNoMem': /* 2.5.198.73 TODO -- find a test case */ + throw new Error('Unrecognized Formula Token: ' + String(f)); + + case 'PtgElfCol': /* 2.5.198.46 */ + case 'PtgElfColS': /* 2.5.198.47 */ + case 'PtgElfColSV': /* 2.5.198.48 */ + case 'PtgElfColV': /* 2.5.198.49 */ + case 'PtgElfLel': /* 2.5.198.50 */ + case 'PtgElfRadical': /* 2.5.198.51 */ + case 'PtgElfRadicalLel': /* 2.5.198.52 */ + case 'PtgElfRadicalS': /* 2.5.198.53 */ + case 'PtgElfRw': /* 2.5.198.54 */ + case 'PtgElfRwV': /* 2.5.198.55 */ + throw new Error("Unsupported ELFs"); + + case 'PtgAttrBaxcel': /* 2.5.198.33 TODO -- find a test case*/ + throw new Error('Unrecognized Formula Token: ' + String(f)); + case 'PtgSxName': /* 2.5.198.91 TODO -- find a test case */ + throw new Error('Unrecognized Formula Token: ' + String(f)); + case 'PtgList': /* [MS-XLSB] 2.5.97.52 TODO -- find a test case */ + throw new Error('Unrecognized Formula Token: ' + String(f)); default: throw new Error('Unrecognized Formula Token: ' + String(f)); } @@ -9619,13 +9719,80 @@ function stringify_formula(formula/*Array*/, range, cell, supbooks, opts) { stack.push((_left ? sp : "") + stack.pop() + (_left ? "" : sp)); last_sp = -1; } - //console.log("::",f, stack) } - //console.log("--",stack); if(stack.length > 1 && opts.WTF) throw new Error("bad formula stack"); return stack[0]; } +/* [MS-XLS] 2.5.198.1 TODO */ +function parse_ArrayParsedFormula(blob, length, opts, ref) { + var target = blob.l + length, len = opts.biff == 2 ? 1 : 2; + var rgcb, cce = blob.read_shift(len); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce, opts); + if(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts); + return [rgce, rgcb]; +} + +/* [MS-XLS] 2.5.198.3 TODO */ +function parse_XLSCellParsedFormula(blob, length, opts) { + var target = blob.l + length, len = opts.biff == 2 ? 1 : 2; + var rgcb, cce = blob.read_shift(len); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce, opts); + if(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts); + return [rgce, rgcb]; +} + +/* [MS-XLS] 2.5.198.21 */ +function parse_NameParsedFormula(blob, length, opts, cce) { + var target = blob.l + length; + var rgce = parse_Rgce(blob, cce, opts); + var rgcb; + if(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts); + return [rgce, rgcb]; +} + +/* [MS-XLS] 2.5.198.118 TODO */ +function parse_SharedParsedFormula(blob, length, opts) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + var rgce = parse_Rgce(blob, cce, opts); + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */ +function parse_FormulaValue(blob) { + var b; + if(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n']; + switch(blob[blob.l]) { + case 0x00: blob.l += 8; return ["String", 's']; + case 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b']; + case 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e']; + case 0x03: blob.l += 8; return ["",'s']; + } + return []; +} + +/* [MS-XLS] 2.4.127 TODO */ +function parse_Formula(blob, length, opts) { + var end = blob.l + length; + var cell = parse_XLSCell(blob, 6); + if(opts.biff == 2) ++blob.l; + var val = parse_FormulaValue(blob,8); + var flags = blob.read_shift(1); + if(opts.biff != 2) { + blob.read_shift(1); + if(opts.biff >= 5) { + var chn = blob.read_shift(4); + } + } + var cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts); + return {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]}; +} + /* XLSB Parsed Formula records have the same shape */ function parse_XLSBParsedFormula(data, length, opts) { var end = data.l + length; @@ -11108,7 +11275,7 @@ function parse_ws_xml(data, opts, rels, wb, themes, styles) { } function write_ws_xml_merges(merges) { - if(merges.length == 0) return ""; + if(merges.length === 0) return ""; var o = ''; for(var i = 0; i != merges.length; ++i) o += ''; return o + ''; @@ -11223,6 +11390,7 @@ function write_ws_xml_cell(cell, ref, ws, opts, idx, wb) { case 'd': if(opts.cellDates) vv = parseDate(cell.v, -1).toISOString(); else { + cell = dup(cell); cell.t = 'n'; vv = ''+(cell.v = datenum(parseDate(cell.v))); } @@ -11411,6 +11579,7 @@ return function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) { function write_ws_xml_data(ws, opts, idx, wb, rels) { var o = [], r = [], range = safe_decode_range(ws['!ref']), cell, ref, rr = "", cols = [], R=0, C=0, rows = ws['!rows']; var dense = Array.isArray(ws); + var params = ({r:rr}), row, height = -1; for(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C); for(R = range.s.r; R <= range.e.r; ++R) { r = []; @@ -11422,11 +11591,11 @@ function write_ws_xml_data(ws, opts, idx, wb, rels) { if((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell); } if(r.length > 0 || rows && rows[R]) { - var params = ({r:rr}); + params = ({r:rr}); if(rows && rows[R]) { - var row = rows[R]; + row = rows[R]; if(row.hidden) params.hidden = 1; - var height = -1; + height = -1; if (row.hpx) height = px2pt(row.hpx); else if (row.hpt) height = row.hpt; if (height > -1) { params.ht = height; params.customHeight = 1; } @@ -11823,7 +11992,9 @@ function parse_BrtHLink(data, length, opts) { var tooltip = parse_XLWideString(data); var display = parse_XLWideString(data); data.l = end; - return {rfx:rfx, relId:relId, loc:loc, Tooltip:tooltip, display:display}; + var o = ({rfx:rfx, relId:relId, loc:loc, display:display}); + if(tooltip) o.Tooltip = tooltip; + return o; } function write_BrtHLink(l, rId, o) { if(o == null) o = new_buf(50+4*l[1].Target.length); @@ -11881,25 +12052,16 @@ function write_BrtColInfo(C, col, o) { } /* [MS-XLSB] 2.4.672 BrtMargins */ +var BrtMarginKeys = ["left","right","top","bottom","header","footer"]; function parse_BrtMargins(data, length, opts) { - return { - left: parse_Xnum(data, 8), - right: parse_Xnum(data, 8), - top: parse_Xnum(data, 8), - bottom: parse_Xnum(data, 8), - header: parse_Xnum(data, 8), - footer: parse_Xnum(data, 8) - }; + var margins = ({}); + BrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); }); + return margins; } function write_BrtMargins(margins, o) { if(o == null) o = new_buf(6*8); default_margins(margins); - write_Xnum(margins.left, o); - write_Xnum(margins.right, o); - write_Xnum(margins.top, o); - write_Xnum(margins.bottom, o); - write_Xnum(margins.header, o); - write_Xnum(margins.footer, o); + BrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); }); return o; } @@ -12202,13 +12364,13 @@ function parse_ws_bin(data, _opts, rels, wb, themes, styles) { /* TODO: something useful -- this is a stub */ function write_ws_bin_cell(ba, cell, R, C, opts, ws) { if(cell.v === undefined) return ""; - var vv = ""; var olddate = null; + var vv = ""; switch(cell.t) { case 'b': vv = cell.v ? "1" : "0"; break; case 'd': // no BrtCellDate :( + cell = dup(cell); cell.z = cell.z || SSF._table[14]; - olddate = cell.v; - cell.v = datenum((cell.v)); cell.t = 'n'; + cell.v = datenum(parseDate(cell.v)); cell.t = 'n'; break; /* falls through */ case 'n': case 'e': vv = ''+cell.v; break; @@ -12234,7 +12396,6 @@ function write_ws_bin_cell(ba, cell, R, C, opts, ws) { /* TODO: determine threshold for Real vs RK */ if(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, "BrtCellRk", write_BrtCellRk(cell, o)); else write_record(ba, "BrtCellReal", write_BrtCellReal(cell, o)); - if(olddate) { cell.t = 'd'; cell.v = olddate; } return; case 'b': o.t = "b"; @@ -12792,7 +12953,8 @@ function parse_wb_xml(data, opts) { /* Others */ case '': pass=true; break; case '': pass=false; break; /* TODO */ @@ -13438,7 +13600,7 @@ function parse_xlml_xml(d, _opts) { var comments = [], comment = {}; var cstys = [], csty, seencol = false; var arrayf = []; - var rowinfo = [], rowobj = {}; + var rowinfo = [], rowobj = {}, cc = 0, rr = 0; var Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {}; xlmlregex.lastIndex = 0; str = str.replace(//mg,""); @@ -13462,8 +13624,8 @@ function parse_xlml_xml(d, _opts) { delete cell.HRef; delete cell.HRefScreenTip; } if(cell.MergeAcross || cell.MergeDown) { - var cc = c + (parseInt(cell.MergeAcross,10)|0); - var rr = r + (parseInt(cell.MergeDown,10)|0); + cc = c + (parseInt(cell.MergeAcross,10)|0); + rr = r + (parseInt(cell.MergeDown,10)|0); mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}}); } if(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; } @@ -14184,9 +14346,9 @@ function write_ws_xlml_wsopts(ws, opts, idx, wb) { if(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag("EnableSelection", "NoSelection")); else if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag("EnableSelection", "UnlockedCells")); [ - [ "formatColumns", "AllowFormatCells" ], - [ "formatRows", "AllowSizeCols" ], - [ "formatCells", "AllowSizeRows" ], + [ "formatCells", "AllowFormatCells" ], + [ "formatColumns", "AllowSizeCols" ], + [ "formatRows", "AllowSizeRows" ], [ "insertColumns", "AllowInsertCols" ], [ "insertRows", "AllowInsertRows" ], [ "insertHyperlinks", "AllowInsertHyperlinks" ], @@ -14364,11 +14526,11 @@ function slurp(R, blob, length, opts) { var l = length; var bufs = []; var d = blob.slice(blob.l,blob.l+l); - if(opts && opts.enc && opts.enc.insitu_decrypt) switch(R.n) { + if(opts && opts.enc && opts.enc.insitu) switch(R.n) { case 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break; default: if(d.length === 0) break; - opts.enc.insitu_decrypt(d); + opts.enc.insitu(d); } bufs.push(d); blob.l += l; @@ -15193,6 +15355,7 @@ else { /* Quattro Pro 9 */ else if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options)); else throw new Error("Cannot find Workbook stream"); + if(options.bookVBA && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb); } var props = {}; @@ -16514,7 +16677,7 @@ function write_BIFF2LABEL(r, c, val) { function write_ws_biff2_cell(ba, cell, R, C, opts) { if(cell.v != null) switch(cell.t) { case 'd': case 'n': - var v = cell.t == 'd' ? datenum(cell.v) : cell.v; + var v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v; if((v == (v|0)) && (v >= 0) && (v < 65536)) write_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v)); else @@ -16564,7 +16727,7 @@ function write_biff2_buf(wb, opts) { function write_ws_biff8_cell(ba, cell, R, C, opts) { if(cell.v != null) switch(cell.t) { case 'd': case 'n': - var v = cell.t == 'd' ? datenum(cell.v) : cell.v; + var v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v; /* TODO: emit RK as appropriate */ write_biff_rec(ba, "Number", write_Number(R, C, v, opts)); return; @@ -16624,16 +16787,16 @@ function write_biff8_global(wb, bufs, opts) { var A = buf_array(); var b8 = opts.biff == 8, b5 = opts.biff == 5; write_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts)); - write_biff_rec(A, "InterfaceHdr", writeuint16(0x04b0)); + write_biff_rec(A, "InterfaceHdr", b8 ? writeuint16(0x04b0) : null); write_biff_rec(A, "Mms", writezeroes(2)); if(b5) write_biff_rec(A, "ToolbarHdr"); if(b5) write_biff_rec(A, "ToolbarEnd"); write_biff_rec(A, "InterfaceEnd"); write_biff_rec(A, "WriteAccess", write_WriteAccess("SheetJS", opts)); - write_biff_rec(A, "CodePage", writeuint16(0x04b0)); + write_biff_rec(A, "CodePage", writeuint16(b8 ? 0x04b0 : 0x04E4)); if(b8) write_biff_rec(A, "DSF", writeuint16(0)); - if(b8) write_biff_rec(A, "RRTabId", write_RRTabId(wb.SheetNames.length)); - if(b8) write_biff_rec(A, "BuiltInFnGroupCount", writeuint16(0x11)); + write_biff_rec(A, "RRTabId", write_RRTabId(wb.SheetNames.length)); + write_biff_rec(A, "BuiltInFnGroupCount", writeuint16(0x11)); write_biff_rec(A, "WinProtect", writebool(false)); write_biff_rec(A, "Protect", writebool(false)); write_biff_rec(A, "Password", writeuint16(0)); @@ -16644,21 +16807,21 @@ function write_biff8_global(wb, bufs, opts) { write_biff_rec(A, "HideObj", writeuint16(0)); write_biff_rec(A, "Date1904", writebool(safe1904(wb)=="true")); write_biff_rec(A, "CalcPrecision", writebool(true)); - write_biff_rec(A, "RefreshAll", writebool(false)); + if(b8) write_biff_rec(A, "RefreshAll", writebool(false)); write_biff_rec(A, "BookBool", writeuint16(0)); /* ... */ - write_biff_rec(A, "UsesELFs", writebool(false)); + if(b8) write_biff_rec(A, "UsesELFs", writebool(false)); var a = A.end(); var C = buf_array(); - write_biff_rec(C, "Country", write_Country()); + if(b8) write_biff_rec(C, "Country", write_Country()); /* BIFF8: [SST *Continue] ExtSST */ write_biff_rec(C, "EOF"); var c = C.end(); var B = buf_array(); var blen = 0, j = 0; - for(j = 0; j < wb.SheetNames.length; ++j) blen += 12 + (b8 ? 2 : 1) * wb.SheetNames[j].length; + for(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length; var start = a.length + blen + c.length; for(j = 0; j < wb.SheetNames.length; ++j) { write_biff_rec(B, "BoundSheet8", write_BoundSheet8({pos:start, hs:0, dt:0, name:wb.SheetNames[j]}, opts)); @@ -16866,20 +17029,31 @@ function table_to_book(table, opts) { /* OpenDocument */ var parse_content_xml = (function() { + /* 6.1.2 White Space Characters */ var parse_text_p = function(text, tag) { - return unescapexml(text.replace(//g," ").replace(/<[^>]*>/g,"")); + return unescapexml(text + .replace(/[\t\r\n]/g, " ").trim().replace(/ +/g, " ") + .replace(//g," ") + .replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(" "); }) + .replace(/]*\/>/g,"\t") + .replace(//g,"\n") + .replace(/<[^>]*>/g,"") + ); }; var number_formats = { /* ods name: [short ssf fmt, long ssf fmt] */ - day: ["d", "dd"], - month: ["m", "mm"], - year: ["y", "yy"], - hours: ["h", "hh"], - minutes: ["m", "mm"], - seconds: ["s", "ss"], - "am-pm": ["A/P", "AM/PM"], - "day-of-week": ["ddd", "dddd"] + day: ["d", "dd"], + month: ["m", "mm"], + year: ["y", "yy"], + hours: ["h", "hh"], + minutes: ["m", "mm"], + seconds: ["s", "ss"], + "am-pm": ["A/P", "AM/PM"], + "day-of-week": ["ddd", "dddd"], + era: ["e", "ee"], + /* there is no native representation of LO "Q" format */ + quarter: ["\\Qm", "m\\\"th quarter\""] }; return function pcx(d, _opts) { @@ -16894,15 +17068,17 @@ var parse_content_xml = (function() { var Sheets = {}, SheetNames = []; var ws = opts.dense ? ([]) : ({}); var Rn, q; - var ctag = {value:""}; + var ctag = ({value:""}); var textp = "", textpidx = 0, textptag; var R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}}; + var row_ol = 0; var number_format_map = {}; var merges = [], mrange = {}, mR = 0, mC = 0; + var rowinfo = [], rowpeat = 1, colpeat = 1; var arrayf = []; var comments = [], comment = {}; var creator = "", creatoridx = 0; - var rept = 1, isstub = false; + var isstub = false; var i = 0; xlmlregex.lastIndex = 0; str = str.replace(//mg,"").replace(//gm,""); @@ -16912,6 +17088,7 @@ var parse_content_xml = (function() { if(Rn[1]==='/') { if(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range); if(merges.length) ws['!merges'] = merges; + if(rowinfo.length) ws["!rows"] = rowinfo; sheetag.name = utf8read(sheetag['名称'] || sheetag.name); SheetNames.push(sheetag.name); Sheets[sheetag.name] = ws; @@ -16921,13 +17098,20 @@ var parse_content_xml = (function() { R = C = -1; range.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0; ws = opts.dense ? ([]) : ({}); merges = []; + rowinfo = []; } break; + case 'table-row-group': // 9.1.9 + if(Rn[1] === "/") --row_ol; else ++row_ol; + break; case 'table-row': case '行': // 9.1.3 - if(Rn[1] === '/') break; + if(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; } rowtag = parsexmltag(Rn[0], false); - if(rowtag['行号']) R = rowtag['行号'] - 1; else ++R; + if(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0; + rowpeat = +rowtag['number-rows-repeated'] || 1; + /* TODO: remove magic */ + if(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol}; C = -1; break; case 'covered-table-cell': // 9.1.5 ++C; @@ -16938,13 +17122,24 @@ var parse_content_xml = (function() { break; /* stub */ case 'table-cell': case '数据': if(Rn[0].charAt(Rn[0].length-2) === '/') { + ++C; ctag = parsexmltag(Rn[0], false); - if(ctag['number-columns-repeated']) C+= parseInt(ctag['number-columns-repeated'], 10); - else ++C; - } - else if(Rn[1]!=='/') { + colpeat = parseInt(ctag['number-columns-repeated']||"1", 10); + q = ({t:'z', v:null}); + if(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula)); + if((ctag['数据类型'] || ctag['value-type']) == "string") { + q.t = "s"; q.v = unescapexml(ctag['string-value'] || ""); + if(opts.dense) { + if(!ws[R]) ws[R] = []; + ws[R][C] = q; + } else { + ws[encode_cell({r:R,c:C})] = q; + } + } + C+= colpeat-1; + } else if(Rn[1]!=='/') { ++C; - rept = 1; + colpeat = 1; if(C > range.e.c) range.e.c = C; if(R > range.e.r) range.e.r = R; if(C < range.s.c) range.s.c = C; @@ -16975,7 +17170,7 @@ var parse_content_xml = (function() { } /* 19.675.2 table:number-columns-repeated */ - if(ctag['number-columns-repeated']) rept = parseInt(ctag['number-columns-repeated'], 10); + if(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10); /* 19.385 office:value-type */ switch(q.t) { @@ -17004,17 +17199,22 @@ var parse_content_xml = (function() { if(textp && opts.cellText !== false) q.w = textp; if(!isstub || opts.sheetStubs) { if(!(opts.sheetRows && opts.sheetRows < R)) { - if(opts.dense) { - if(!ws[R]) ws[R] = []; - ws[R][C] = q; - while(--rept > 0) ws[R][++C] = dup(q); - } else { - ws[encode_cell({r:R,c:C})] = q; - while(--rept > 0) ws[encode_cell({r:R,c:++C})] = dup(q); + for(var rpt = 0; rpt < rowpeat; ++rpt) { + colpeat = parseInt(ctag['number-columns-repeated']||"1", 10); + if(opts.dense) { + if(!ws[R + rpt]) ws[R + rpt] = []; + ws[R + rpt][C] = rpt == 0 ? q : dup(q); + while(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q); + } else { + ws[encode_cell({r:R + rpt,c:C})] = q; + while(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q); + } + if(range.e.c <= C) range.e.c = C; } - if(range.e.c <= C) range.e.c = C; } - } else { C += rept; rept = 0; } + } + colpeat = parseInt(ctag['number-columns-repeated']||"1", 10); + C += colpeat-1; colpeat = 0; q = {}; textp = ""; } @@ -17064,6 +17264,7 @@ var parse_content_xml = (function() { case 'form': // 13.13 case 'dde-links': // 9.8 case 'event-listeners': // TODO + case 'chart': // TODO if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} else if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]); textp = ""; textpidx = 0; @@ -17091,7 +17292,7 @@ var parse_content_xml = (function() { case 'script': break; // 3.13 case 'libraries': break; // TODO: case 'automatic-styles': break; // 3.15.3 - case 'master-styles': break; // TODO: + case 'master-styles': break; // TODO: case 'default-style': // TODO: case 'page-layout': break; // TODO: @@ -17149,16 +17350,18 @@ var parse_content_xml = (function() { break; case 'text-content': break; // 16.27.27 case 'text-properties': break; // 16.27.27 + case 'embedded-text': break; // 16.27.4 case 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3 case 'forms': break; // 12.25.2 13.2 case 'table-column': break; // 9.1.6 case 'table-header-rows': break; // 9.1.7 + case 'table-rows': break; // 9.1.12 /* TODO: outline levels */ - case 'table-row-group': break; // 9.1.9 case 'table-column-group': break; // 9.1.10 case 'table-header-columns': break; // 9.1.11 + case 'table-columns': break; // 9.1.12 case 'null-date': break; // 9.4.2 TODO: date1904 @@ -17177,9 +17380,10 @@ var parse_content_xml = (function() { case 'line-break': break; // 6.1.5 case 'span': break; // 6.1.7 case 'p': case '文本串': // 5.1.3 - if(Rn[1]==='/') textp = (textp.length > 0 ? textp + "\n" : "") + parse_text_p(str.slice(textpidx,Rn.index), textptag); + if(Rn[1]==='/' && (!ctag || !ctag['string-value'])) textp = (textp.length > 0 ? textp + "\n" : "") + parse_text_p(str.slice(textpidx,Rn.index), textptag); else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; } break; // + case 's': break; // case 'database-range': // 9.4.15 if(Rn[1]==='/') break; @@ -17189,12 +17393,12 @@ var parse_content_xml = (function() { } catch(e) {/* empty */} break; - case 's': break; // case 'date': break; // <*:date> case 'object': break; // 10.4.6.2 case 'title': case '标题': break; // <*:title> OR case 'desc': break; // <*:desc> + case 'binary-data': break; // 10.4.5 TODO: b64 blob /* 9.2 Advanced Tables */ case 'table-source': break; // 9.2.6 @@ -17244,9 +17448,12 @@ var parse_content_xml = (function() { /* TODO: FODS Properties */ case 'initial-creator': case 'creation-date': + case 'print-date': case 'generator': case 'document-statistic': case 'user-defined': + case 'editing-duration': + case 'editing-cycles': break; /* TODO: FODS Config */ @@ -17303,22 +17510,28 @@ var parse_content_xml = (function() { case 'table-protection': break; case 'data-pilot-grand-total': break; // '; return function wso(wb, opts) { - return payload; + return XML_HEADER + payload; }; })(); var write_content_ods = (function() { + /* 6.1.2 White Space Characters */ + var write_text_p = function(text) { + return escapexml(text) + .replace(/ +/g, function($$){return '';}) + .replace(/\t/g, "") + .replace(/\n/g, "") + .replace(/^ /, "").replace(/ $/, ""); + }; + var null_cell_xml = ' \n'; var covered_cell_xml = ' \n'; var write_ws = function(ws, wb, i, opts) { @@ -17395,7 +17630,7 @@ var write_content_ods = (function() { ct['office:value'] = (cell.v||0); break; case 's': case 'str': - textp = escapexml(cell.v); + textp = cell.v; ct['office:value-type'] = "string"; break; case 'd': @@ -17407,7 +17642,7 @@ var write_content_ods = (function() { //case 'e': default: o.push(null_cell_xml); continue; } - o.push(' ' + writextag('table:table-cell', writextag('text:p', textp, {}), ct) + '\n'); + o.push(' ' + writextag('table:table-cell', writextag('text:p', write_text_p(textp), {}), ct) + '\n'); } o.push(' \n'); } @@ -17472,8 +17707,8 @@ var write_content_ods = (function() { }); var fods = wxt_helper({ - 'xmlns:config':"urn:oasis:names:tc:opendocument:xmlns:config:1.0", - 'office:mimetype':"application/vnd.oasis.opendocument.spreadsheet" + 'xmlns:config': "urn:oasis:names:tc:opendocument:xmlns:config:1.0", + 'office:mimetype': "application/vnd.oasis.opendocument.spreadsheet" }); if(opts.bookType == "fods") o.push('\n'); @@ -17499,7 +17734,7 @@ var zip = new jszip(); var manifest = []; var rdf = []; - /* 3:3.3 and 2:2.2.4 */ + /* Part 3 Section 3.3 MIME Media Type */ f = "mimetype"; zip.file(f, "application/vnd.oasis.opendocument.spreadsheet"); @@ -17515,17 +17750,17 @@ var zip = new jszip(); manifest.push([f, "text/xml"]); rdf.push([f, "StylesFile"]); - /* Part 3 Section 6 Metadata Manifest File */ - f = "manifest.rdf"; - zip.file(f, write_rdf(rdf, opts)); - manifest.push([f, "application/rdf+xml"]); - /* TODO: this is hard-coded to satiate excel */ f = "meta.xml"; zip.file(f, write_meta_ods(wb, opts)); manifest.push([f, "text/xml"]); rdf.push([f, "MetadataFile"]); + /* Part 3 Section 6 Metadata Manifest File */ + f = "manifest.rdf"; + zip.file(f, write_rdf(rdf, opts)); + manifest.push([f, "application/rdf+xml"]); + /* Part 3 Section 4 Manifest File */ f = "META-INF/manifest.xml"; zip.file(f, write_manifest(manifest, opts)); @@ -17644,6 +17879,8 @@ function parse_zip(zip, opts) { if(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts); /* UOC */ if(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts); + /* Numbers */ + if(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file'); var entries = keys(zip.files).filter(nodirs).sort(); var dir = parse_ct((getzipstr(zip, '[Content_Types].xml')), opts); @@ -17781,7 +18018,7 @@ function parse_xlsxcfb(cfb, opts) { data = CFB.find(cfb, f); if(!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f); var dsm = parse_DataSpaceMap(data.content); - if(dsm.length != 1 || dsm[0].comps.length != 1 || dsm[0].comps[0].t != 0 || dsm[0].name != "StrongEncryptionDataSpace" || dsm[0].comps[0].v != "EncryptedPackage") + if(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== "StrongEncryptionDataSpace" || dsm[0].comps[0].v !== "EncryptedPackage") throw new Error("ECMA-376 Encrypted file bad " + f); f = 'StrongEncryptionDataSpace'; @@ -17802,6 +18039,7 @@ function parse_xlsxcfb(cfb, opts) { if(!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f); var einfo = parse_EncryptionInfo(data.content); + if(einfo[0] == 0x04) throw new Error("File is password-protected: ECMA-376 Agile"); throw new Error("File is password-protected"); } @@ -18001,7 +18239,7 @@ function read_prn(data, d, o, str) { } function readSync(data, opts) { - var zip, d = data, n=[0], str = false; + var zip, d = data, n = [0,0,0,0], str = false; var o = opts||{}; _ssfopts = {}; if(o.dateNF) _ssfopts.dateNF = o.dateNF; @@ -18012,14 +18250,14 @@ function readSync(data, opts) { case 0xD0: return read_cfb(CFB.read(d, o), o); case 0x09: return parse_xlscfb(d, o); case 0x3C: return parse_xlml(d, o); - case 0x49: if(n[1] == 0x44) return read_wb_ID(d, o); break; - case 0x54: if(n[1] == 0x41 && n[2] == 0x42 && n[3] == 0x4C) return DIF.to_workbook(d, o); break; - case 0x50: if(n[1] == 0x4B && n[2] < 0x20 && n[3] < 0x20) return read_zip(d, o); break; - case 0xEF: return n[3] == 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str); - case 0xFF: if(n[1] == 0xFE){ return read_utf16(d, o); } break; - case 0x00: if(n[1] == 0x00 && n[2] >= 0x02 && n[3] == 0x00) return WK_.to_workbook(d, o); break; - case 0x03: case 0x83: case 0x8B: return DBF.to_workbook(d, o); - case 0x7B: if(n[1] == 0x5C && n[2] == 0x72 && n[3] == 0x74) return RTF.to_workbook(d, o); break; + case 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break; + case 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break; + case 0x50: if(n[1] === 0x4B && n[2] < 0x20 && n[3] < 0x20) return read_zip(d, o); break; + case 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str); + case 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break; + case 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break; + case 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o); + case 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break; case 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o); } if(n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o); @@ -18351,10 +18589,10 @@ function json_to_sheet(js, opts) { var range = ({s: {c:0, r:0}, e: {c:0, r:js.length}}); var hdr = o.header || [], C = 0; - for(var R = 0; R != js.length; ++R) { - Object.keys(js[R]).filter(function(x) { return js[R].hasOwnProperty(x); }).forEach(function(k) { + js.forEach(function (JS, R) { + keys(JS).filter(function(x) { return JS.hasOwnProperty(x); }).forEach(function(k) { if((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k; - var v = js[R][k]; + var v = JS[k]; var t = 'z'; var z = ""; if(typeof v == 'number') t = 'n'; @@ -18368,7 +18606,7 @@ function json_to_sheet(js, opts) { ws[encode_cell({c:C,r:R+1})] = cell = ({t:t, v:v}); if(z) cell.z = z; }); - } + }); range.e.c = hdr.length - 1; for(C = 0; C < hdr.length; ++C) ws[encode_col(C) + "1"] = {t:'s', v:hdr[C]}; ws['!ref'] = encode_range(range); diff --git a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.js b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.js index 602e84d378..6362483ad9 100644 --- a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.js +++ b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.js @@ -1,13 +1,13 @@ /* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ -var DO_NOT_EXPORT_CODEPAGE=true;var DO_NOT_EXPORT_JSZIP=true;var XLSX={};(function e(r){r.version="0.11.5";var t=1200;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")global.cptable=undefined}function a(){n(1200)}var n=function(e){t=e};function i(e){var r=[];for(var t=0,a=e.length;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return r.join("")}function l(e){var r=[];for(var t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join("")}var c=function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);if(r==255&&t==254)return s(e.substr(2));if(r==254&&t==255)return l(e.substr(2));if(r==65279)return e.substr(1);return e};var f=function Pb(e){return String.fromCharCode(e)};if(typeof cptable!=="undefined"){n=function(e){t=e};c=function(e){if(e.charCodeAt(0)===255&&e.charCodeAt(1)===254){return cptable.utils.decode(1200,i(e.substr(2)))}return e};f=function _b(e){if(t===1200)return String.fromCharCode(e);return cptable.utils.decode(t,[e&255,e>>8])[0]}}var o=null;var u=true;var h=function yb(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(r){var t="";var a,n,i,s,l,c,f;for(var o=0;o>2;l=(a&3)<<4|n>>4;c=(n&15)<<2|i>>6;f=i&63;if(isNaN(n)){c=f=64}else if(isNaN(i)){f=64}t+=e.charAt(s)+e.charAt(l)+e.charAt(c)+e.charAt(f)}return t},decode:function r(t){var a="";var n,i,s;var l,c,f,o;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var u=0;u>4;i=(c&15)<<4|f>>2;s=(f&3)<<6|o;a+=String.fromCharCode(n);if(f!=64){a+=String.fromCharCode(i)}if(o!=64){a+=String.fromCharCode(s)}}return a}}}();var d=typeof Buffer!=="undefined"&&typeof process!=="undefined"&&typeof process.versions!=="undefined"&&process.versions.node;function v(e){return new(d?Buffer:Array)(e)}function b(e){if(d)return new Buffer(e,"binary");return e.split("").map(function(e){return e.charCodeAt(0)&255})}var p=function(e){return[].concat.apply([],e)};var m=/\u0000/g,g=/[\u0001-\u0006]/;var E={};var k=function Nb(e){e.version="0.10.0";function r(e){var r="",t=e.length-1;while(t>=0)r+=e.charAt(t--);return r}function t(e,r){var t="";while(t.length=r?a:t("0",r-a.length)+a}function n(e,r){var a=""+e;return a.length>=r?a:t(" ",r-a.length)+a}function i(e,r){var a=""+e;return a.length>=r?a:a+t(" ",r-a.length)}function s(e,r){var a=""+Math.round(e);return a.length>=r?a:t("0",r-a.length)+a}function l(e,r){var a=""+e;return a.length>=r?a:t("0",r-a.length)+a}var c=Math.pow(2,32);function f(e,r){if(e>c||e<-c)return s(e,r);var t=Math.round(e);return l(t,r)}function o(e,r){r=r||0;return e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var h=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function d(e){e[0]="General";e[1]="0";e[2]="0.00";e[3]="#,##0";e[4]="#,##0.00";e[9]="0%";e[10]="0.00%";e[11]="0.00E+00";e[12]="# ?/?";e[13]="# ??/??";e[14]="m/d/yy";e[15]="d-mmm-yy";e[16]="d-mmm";e[17]="mmm-yy";e[18]="h:mm AM/PM";e[19]="h:mm:ss AM/PM";e[20]="h:mm";e[21]="h:mm:ss";e[22]="m/d/yy h:mm";e[37]="#,##0 ;(#,##0)";e[38]="#,##0 ;[Red](#,##0)";e[39]="#,##0.00;(#,##0.00)";e[40]="#,##0.00;[Red](#,##0.00)";e[45]="mm:ss";e[46]="[h]:mm:ss";e[47]="mmss.0";e[48]="##0.0E+0";e[49]="@";e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "';e[65535]="General"}var v={};d(v);function b(e,r,t){var a=e<0?-1:1;var n=e*a;var i=0,s=1,l=0;var c=1,f=0,o=0;var u=Math.floor(n);while(fr){if(f>r){o=c;l=i}else{o=f;l=s}}if(!t)return[0,a*l,o];var h=Math.floor(a*l/o);return[h,a*l-h*o,o]}function p(e,r,t){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),i=0;var s=[];var l={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(l.u)<1e-6)l.u=0;if(r&&r.date1904)a+=1462;if(l.u>.9999){l.u=0;if(++n==86400){l.T=n=0;++a;++l.D}}if(a===60){s=t?[1317,10,29]:[1900,2,29];i=3}else if(a===0){s=t?[1317,8,29]:[1900,1,0];i=6}else{if(a>60)--a;var c=new Date(1900,0,1);c.setDate(c.getDate()+a-1);s=[c.getFullYear(),c.getMonth()+1,c.getDate()];i=c.getDay();if(a<60)i=(i+6)%7;if(t)i=w(c,s)}l.y=s[0];l.m=s[1];l.d=s[2];l.S=n%60;n=Math.floor(n/60);l.M=n%60;n=Math.floor(n/60);l.H=n;l.q=i;return l}e.parse_date_code=p;var m=new Date(1899,11,31,0,0,0);var g=m.getTime();var E=new Date(1900,2,1,0,0,0);function k(e,r){var t=e.getTime();if(r)t-=1461*24*60*60*1e3;else if(e>=E)t+=24*60*60*1e3;return(t-(g+(e.getTimezoneOffset()-m.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function S(e){return e.toString(10)}e._general_int=S;var B=function L(){var e=/\.(\d*[1-9])0+$/,r=/\.0*$/,t=/\.(\d*[1-9])0+/,a=/\.0*[Ee]/,n=/(E[+-])(\d)$/;function i(e){var r=e<0?12:11;var t=c(e.toFixed(12));if(t.length<=r)return t;t=e.toPrecision(10);if(t.length<=r)return t;return e.toExponential(5)}function s(r){var t=r.toFixed(11).replace(e,".$1");if(t.length>(r<0?12:11))t=r.toPrecision(6);return t}function l(e){for(var r=0;r!=e.length;++r)if((e.charCodeAt(r)|32)===101)return e.replace(t,".$1").replace(a,"E").replace("e","E").replace(n,"$10$2");return e}function c(t){return t.indexOf(".")>-1?t.replace(r,"").replace(e,".$1"):t}return function f(e){var r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),t;if(r>=-4&&r<=-1)t=e.toPrecision(10+r);else if(Math.abs(r)<=9)t=i(e);else if(r===10)t=e.toFixed(10).substr(0,12);else t=s(e);return c(l(t))}}();e._general_num=B;function C(e,r){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?S(e):B(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return N(14,k(e,r&&r.date1904),r);}throw new Error("unsupported value in General format: "+e)}e._general=C;function w(){return 0}function T(e,r,t,n){var i="",s=0,l=0,c=t.y,f,o=0;switch(e){case 98:c=t.y+543;case 121:switch(r.length){case 1:;case 2:f=c%100;o=2;break;default:f=c%1e4;o=4;break;}break;case 109:switch(r.length){case 1:;case 2:f=t.m;o=r.length;break;case 3:return h[t.m-1][1];case 5:return h[t.m-1][0];default:return h[t.m-1][2];}break;case 100:switch(r.length){case 1:;case 2:f=t.d;o=r.length;break;case 3:return u[t.q][0];default:return u[t.q][1];}break;case 104:switch(r.length){case 1:;case 2:f=1+(t.H+11)%12;o=r.length;break;default:throw"bad hour format: "+r;}break;case 72:switch(r.length){case 1:;case 2:f=t.H;o=r.length;break;default:throw"bad hour format: "+r;}break;case 77:switch(r.length){case 1:;case 2:f=t.M;o=r.length;break;default:throw"bad minute format: "+r;}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;if(t.u===0&&(r=="s"||r=="ss"))return a(t.S,r.length);if(n>=2)l=n===3?1e3:100;else l=n===1?10:1;s=Math.round(l*(t.S+t.u));if(s>=60*l)s=0;if(r==="s")return s===0?"0":""+s/l;i=a(s,2+n);if(r==="ss")return i.substr(0,2);return"."+i.substr(2,r.length-1);case 90:switch(r){case"[h]":;case"[hh]":f=t.D*24+t.H;break;case"[m]":;case"[mm]":f=(t.D*24+t.H)*60+t.M;break;case"[s]":;case"[ss]":f=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+r;}o=r.length===3?1:2;break;case 101:f=c;o=1;}if(o>0)return a(f,o);else return""}function I(e){var r=3;if(e.length<=r)return e;var t=e.length%r,a=e.substr(0,t);for(;t!=e.length;t+=r)a+=(a.length>0?",":"")+e.substr(t,r);return a}var x=function U(){var e=/%/g;function s(r,a,n){var i=a.replace(e,""),s=a.length-i.length;return x(r,i,n*Math.pow(10,2*s))+t("%",s)}function l(e,r,t){var a=r.length-1;while(r.charCodeAt(a-1)===44)--a;return x(e,r.substr(0,a),t/Math.pow(10,3*(r.length-a)))}function c(e,r){var t;var a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";else if(r<0)return"-"+c(e,-r);var n=e.indexOf(".");if(n===-1)n=e.indexOf("E");var i=Math.floor(Math.log(r)*Math.LOG10E)%n;if(i<0)i+=n;t=(r/Math.pow(10,i)).toPrecision(a+1+(n+i)%n);if(t.indexOf("e")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);if(t.indexOf(".")===-1)t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+i);else t+="E+"+(s-i);while(t.substr(0,2)==="0."){t=t.charAt(0)+t.substr(2,n)+"."+t.substr(2+n);t=t.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(e,r,t,a){return r+t+a.substr(0,(n+i)%n)+"."+a.substr(i)+"E"})}else t=r.toExponential(a);if(e.match(/E\+00$/)&&t.match(/e[+-]\d$/))t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1);if(e.match(/E\-/)&&t.match(/e\+/))t=t.replace(/e\+/,"e");return t.replace("e","E")}var o=/# (\?+)( ?)\/( ?)(\d+)/;function u(e,r,i){var s=parseInt(e[4],10),l=Math.round(r*s),c=Math.floor(l/s);var f=l-c*s,o=s;return i+(c===0?"":""+c)+" "+(f===0?t(" ",e[1].length+1+e[4].length):n(f,e[1].length)+e[2]+"/"+e[3]+a(o,e[4].length))}function h(e,r,a){return a+(r===0?"":""+r)+t(" ",e[1].length+2+e[4].length)}var d=/^#*0*\.([0#]+)/;var v=/\).*[0#]/;var p=/\(###\) ###\\?-####/;function m(e){var r="",t;for(var a=0;a!=e.length;++a)switch(t=e.charCodeAt(a)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t);}return r}function g(e,r){var t=Math.pow(10,r);return""+Math.round(e*t)/t}function E(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 0}return Math.round((e-Math.floor(e))*Math.pow(10,r))}function k(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 1}return 0}function S(e){if(e<2147483647&&e>-2147483648)return""+(e>=0?e|0:e-1|0);return""+Math.floor(e)}function B(e,h,C){if(e.charCodeAt(0)===40&&!h.match(v)){var w=h.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(C>=0)return B("n",w,C);return"("+B("n",w,-C)+")"}if(h.charCodeAt(h.length-1)===44)return l(e,h,C);if(h.indexOf("%")!==-1)return s(e,h,C);if(h.indexOf("E")!==-1)return c(h,C);if(h.charCodeAt(0)===36)return"$"+B(e,h.substr(h.charAt(1)==" "?2:1),C);var T;var A,R,D,F=Math.abs(C),O=C<0?"-":"";if(h.match(/^00+$/))return O+f(F,h.length);if(h.match(/^[#?]+$/)){T=f(C,0);if(T==="0")T="";return T.length>h.length?T:m(h.substr(0,h.length-T.length))+T}if(A=h.match(o))return u(A,F,O);if(h.match(/^#+0+$/))return O+f(F,h.length-h.indexOf("0"));if(A=h.match(d)){T=g(C,A[1].length).replace(/^([^\.]+)$/,"$1."+m(A[1])).replace(/\.$/,"."+m(A[1])).replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(A[1]).length-r.length)});return h.indexOf("0.")!==-1?T:T.replace(/^0\./,".")}h=h.replace(/^#+([0.])/,"$1");if(A=h.match(/^(0*)\.(#*)$/)){return O+g(F,A[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,A[1].length?"0.":".")}if(A=h.match(/^#{1,3},##0(\.?)$/))return O+I(f(F,0));if(A=h.match(/^#,##0\.([#0]*0)$/)){return C<0?"-"+B(e,h,-C):I(""+(Math.floor(C)+k(C,A[1].length)))+"."+a(E(C,A[1].length),A[1].length)}if(A=h.match(/^#,#*,#0/))return B(e,h.replace(/^#,#*,/,""),C);if(A=h.match(/^([0#]+)(\\?-([0#]+))+$/)){T=r(B(e,h.replace(/[\\-]/g,""),C));R=0;return r(r(h.replace(/\\/g,"")).replace(/[0#]/g,function(e){return R=0)return A("n",c,l);return"("+A("n",c,-l)+")"}if(s.charCodeAt(s.length-1)===44)return C(e,s,l);if(s.indexOf("%")!==-1)return w(e,s,l);if(s.indexOf("E")!==-1)return T(s,l);if(s.charCodeAt(0)===36)return"$"+A(e,s.substr(s.charAt(1)==" "?2:1),l);var f;var u,g,E,k=Math.abs(l),S=l<0?"-":"";if(s.match(/^00+$/))return S+a(k,s.length);if(s.match(/^[#?]+$/)){f=""+l;if(l===0)f="";return f.length>s.length?f:m(s.substr(0,s.length-f.length))+f}if(u=s.match(o))return h(u,k,S);if(s.match(/^#+0+$/))return S+a(k,s.length-s.indexOf("0"));if(u=s.match(d)){f=(""+l).replace(/^([^\.]+)$/,"$1."+m(u[1])).replace(/\.$/,"."+m(u[1]));f=f.replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(u[1]).length-r.length)});return s.indexOf("0.")!==-1?f:f.replace(/^0\./,".")}s=s.replace(/^#+([0.])/,"$1");if(u=s.match(/^(0*)\.(#*)$/)){return S+(""+k).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,u[1].length?"0.":".")}if(u=s.match(/^#{1,3},##0(\.?)$/))return S+I(""+k);if(u=s.match(/^#,##0\.([#0]*0)$/)){return l<0?"-"+A(e,s,-l):I(""+l)+"."+t("0",u[1].length)}if(u=s.match(/^#,#*,#0/))return A(e,s.replace(/^#,#*,/,""),l);if(u=s.match(/^([0#]+)(\\?-([0#]+))+$/)){f=r(A(e,s.replace(/[\\-]/g,""),l));g=0;return r(r(s.replace(/\\/g,"")).replace(/[0#]/g,function(e){return g-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r-1){}break;case" ":++r;break;default:++r;break;}}return false}e.is_date=D;function F(e,r,t,a){var n=[],i="",s=0,l="",c="t",f,u,h;var d="H";while(s=12?"P":"A";m.t="T";d="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(f!=null)m.v=f.H>=12?"PM":"AM";m.t="T";s+=5;d="h"}else{m.t="t";++s}if(f==null&&m.t==="T")return"";n[n.length]=m;c=l;break;case"[":i=l;while(e.charAt(s++)!=="]"&&s-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!D(e))n[n.length]={t:"t",v:i}}break;case".":if(f!=null){i=l;while(++s-1||l=="\\"&&e.charAt(s+1)=="-"&&s-1)i+=l;n[n.length]={t:"n",v:i};break;case"?":i=l;while(e.charAt(++s)===l)i+=l;n[n.length]={t:l,v:i};c=l;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":l,v:l};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=l;while(s-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:l,v:l};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(l)===-1)throw new Error("unrecognized character "+l+" in "+e);n[n.length]={t:"t",v:l};++s;break;}}var g=0,E=0,k;for(s=n.length-1,c="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=d;c="h";if(g<1)g=1;break;case"s":if(k=n[s].v.match(/\.0+$/))E=Math.max(E,k[0].length-1);if(g<3)g=3;case"d":;case"y":;case"M":;case"e":c=n[s].t;break;case"m":if(c==="s"){n[s].t="M";if(g<2)g=2}break;case"X":break;case"Z":if(g<1&&n[s].v.match(/[Hh]/))g=1;if(g<2&&n[s].v.match(/[Mm]/))g=2;if(g<3&&n[s].v.match(/[Ss]/))g=3;}}switch(g){case 0:break;case 1:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}if(f.M>=60){f.M=0;++f.H}break;case 2:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}break;}var S="",B;for(s=0;s0){if(S.charCodeAt(0)==40){I=r<0&&S.charCodeAt(0)===45?-r:r;A=x("(",S,I)}else{I=r<0&&a>1?-r:r;A=x("n",S,I);if(I<0&&n[0]&&n[0].t=="t"){A=A.substr(1);n[0].v="-"+n[0].v}}B=A.length-1;var F=n.length;for(s=0;s-1){F=s;break}var O=n.length;if(F===n.length&&A.indexOf("E")===-1){for(s=n.length-1;s>=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;if(B>=n[s].v.length-1){B-=n[s].v.length;n[s].v=A.substr(B+1,n[s].v.length)}else if(B<0)n[s].v="";else{n[s].v=A.substr(0,B+1);B=-1}n[s].t="t";O=s}if(B>=0&&O=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;u=n[s].v.indexOf(".")>-1&&s===F?n[s].v.indexOf(".")-1:n[s].v.length-1;w=n[s].v.substr(u+1);for(;u>=0;--u){if(B>=0&&(n[s].v.charAt(u)==="0"||n[s].v.charAt(u)==="#"))w=A.charAt(B--)+w}n[s].v=w;n[s].t="t";O=s}if(B>=0&&O-1&&s===F?n[s].v.indexOf(".")+1:0;w=n[s].v.substr(0,u);for(;u-1){I=a>1&&r<0&&s>0&&n[s-1].v==="-"?-r:r;n[s].v=x(n[s].t,n[s].v,I);n[s].t="t"}var P="";for(s=0;s!==n.length;++s)if(n[s]!=null)P+=n[s].v;return P}e._eval=F;var O=/\[[=<>]/;var P=/\[([=<>]*)(-?\d+\.?\d*)\]/;function _(e,r){if(r==null)return false;var t=parseFloat(r[2]);switch(r[1]){case"=":if(e==t)return true;break;case">":if(e>t)return true;break;case"<":if(e":if(e!=t)return true;break;case">=":if(e>=t)return true;break;case"<=":if(e<=t)return true;break;}return false}function y(e,r){var t=A(e);var a=t.length,n=t[a-1].indexOf("@");if(a<4&&n>-1)--a;if(t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if(typeof r!=="number")return[4,t.length===4||n>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=n>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=n>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=n>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"];break;case 4:break;}var i=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf("[")===-1&&t[1].indexOf("[")===-1)return[a,i];if(t[0].match(O)!=null||t[1].match(O)!=null){var s=t[0].match(P);var l=t[1].match(P);return _(r,s)?[a,t[0]]:_(r,l)?[a,t[1]]:[a,t[s!=null&&l!=null?2:1]]}return[a,i]}function N(e,r,t){if(t==null)t={};var a="";switch(typeof e){case"string":if(e=="m/d/yy"&&t.dateNF)a=t.dateNF;else a=e;break;case"number":if(e==14&&t.dateNF)a=t.dateNF;else a=(t.table!=null?t.table:v)[e];break;}if(o(a,0))return C(r,t);if(r instanceof Date)r=k(r,t.date1904);var n=y(a,r);if(o(n[1]))return C(r,t);if(r===true)r="TRUE";else if(r===false)r="FALSE";else if(r===""||r==null)return"";return F(n[1],r,t,n[0])}function M(e,r){if(typeof r!="number"){r=+r||-1;for(var t=0;t<392;++t){if(v[t]==undefined){if(r<0)r=t;continue}if(v[t]==e){r=t;break}}if(r<0)r=391}v[r]=e;return r}e.load=M;e._table=v;e.get_table=function W(){return v};e.load_table=function H(e){for(var r=0;r!=392;++r)if(e[r]!==undefined)M(e[r],r)};e.init_table=d;e.format=N};k(E);var S={"General Number":"General","General Date":E._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":E._table[15],"Short Date":E._table[14],"Long Time":E._table[19],"Medium Time":E._table[18],"Short Time":E._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:E._table[2],Standard:E._table[4],Percent:E._table[10],Scientific:E._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var B=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function C(e){var r=typeof e=="number"?E._table[e]:e;r=r.replace(B,"(\\d+)");return new RegExp("^"+r+"$")}function w(e,r,t){var a=-1,n=-1,i=-1,s=-1,l=-1,c=-1;(r.match(B)||[]).forEach(function(e,r){var f=parseInt(t[r+1],10);switch(e.toLowerCase().charAt(0)){case"y":a=f;break;case"d":i=f;break;case"h":s=f;break;case"s":c=f;break;case"m":if(s>=0)l=f;else n=f;break;}});if(c>=0&&l==-1&&n>=0){l=n;n=-1}var f=(""+(a>=0?a:(new Date).getFullYear())).slice(-4)+"-"+("00"+(n>=1?n:1)).slice(-2)+"-"+("00"+(i>=1?i:1)).slice(-2);if(f.length==7)f="0"+f;if(f.length==8)f="20"+f;var o=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2)+":"+("00"+(c>=0?c:0)).slice(-2);if(s==-1&&l==-1&&c==-1)return f;if(a==-1&&n==-1&&i==-1)return o;return f+"T"+o}var T=true;var I=function Mb(){var e={};e.version="0.13.1";function r(e,r){var t=e.split("/"),a=r.split("/");for(var n=0,i=0,s=Math.min(t.length,a.length);n0&&v!==R)w[v].name="!MiniFAT";w[p[0]].name="!FAT";w.fat_addrs=p;w.ssz=a;var T={},I=[],x=[],A=[],D={};d(h,w,C,I,n,T,x);c(x,D,A,I);I.shift();var F={FileIndex:x,FullPaths:A,FullPathDir:D};if(r&&r.raw)F.raw={header:E,sectors:C};return F}function i(e){e.chk(D,"Header Signature: ");e.chk(O,"CLSID: ");var r=e._R(2,"u");return[e._R(2,"u"),r]}function s(e,r){var t=9;e.l+=2;switch(t=e._R(2)){case 9:if(r!=3)throw new Error("Sector Shift: Expected 9 saw "+t);break;case 12:if(r!=4)throw new Error("Sector Shift: Expected 12 saw "+t);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+t);}e.chk("0600","Mini Sector Shift: ");e.chk("000000000000","Reserved: ")}function l(e,r){var t=Math.ceil(e.length/r)-1;var a=[];for(var n=1;n>>2)-1;if(!s)return;for(var c=0;c=0;){n[c]=true;i[i.length]=c;s.push(e[c]);var o=t[Math.floor(c*4/a)];f=c*4&l;if(a<4+f)throw new Error("FAT boundary crossed: "+c+" 4 "+a);if(!e[o])break;c=br(e[o],f)}return{nodes:i,data:je([s])}}function u(e,r,t,a){var n=e.length,i=[];var s=[],l=[],c=[];var f=a-1,o=0,u=0,h=0,d=0;for(o=0;o=n)h-=n;if(s[h])continue;c=[];for(u=h;u>=0;){s[u]=true;l[l.length]=u;c.push(e[u]);var v=t[Math.floor(u*4/a)];d=u*4&f;if(a<4+d)throw new Error("FAT boundary crossed: "+u+" 4 "+a);if(!e[v])break;u=br(e[v],d)}i[h]={nodes:l,data:je([c])}}return i}function d(e,r,t,a,n,i,s){var l=0,c=a.length?2:0;var f=r[e].data;var u=0,h=0,d;for(;u0&&l!==R)r[l].name="!StreamData"}else if(p.size>=4096){p.storage="fat";if(r[p.start]===undefined)r[p.start]=o(t,p.start,r.fat_addrs,r.ssz);r[p.start].name=p.name;p.content=r[p.start].data.slice(0,p.size);wr(p.content,0)}else{p.storage="minifat";if(l!==R&&p.start!==R&&r[l]){p.content=r[l].data.slice(p.start*A,p.start*A+p.size);wr(p.content,0)}}i[d]=p;s.push(p)}}function v(e,r){return new Date((vr(e,r+4)/1e7*Math.pow(2,32)+vr(e,r)/1e7-11644473600)*1e3)}var E;function k(e,r){if(E==null)E=require("fs");return n(E.readFileSync(e),r)}function S(e,r){switch(r&&r.type||"base64"){case"file":return k(e,r);case"base64":return n(b(h.decode(e)),r);case"binary":return n(b(e),r);}return n(e,r)}function B(e,r){var t=r||{},a=t.root||"Root Entry";if(!e.FullPaths)e.FullPaths=[];if(!e.FileIndex)e.FileIndex=[];if(e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure"); -if(e.FullPaths.length===0){e.FullPaths[0]=a+"/";e.FileIndex[0]={name:a,type:5}}if(t.CLSID)e.FileIndex[0].clsid=t.CLSID;C(e)}function C(e){var r="Sh33tJ5";if(I.find(e,"/"+r))return;var t=Ar(4);t[0]=55;t[1]=t[3]=50;t[2]=54;e.FileIndex.push({name:r,type:2,content:t,size:4,L:69,R:69,C:69});e.FullPaths.push(e.FullPaths[0]+r);w(e)}function w(e,n){B(e);var i=false,s=false;for(var l=e.FullPaths.length-1;l>=0;--l){var c=e.FileIndex[l];switch(c.type){case 0:if(s)i=true;else{e.FileIndex.pop();e.FullPaths.pop()}break;case 1:;case 2:;case 5:s=true;if(isNaN(c.R*c.L*c.C))i=true;if(c.R>-1&&c.L>-1&&c.R==c.L)i=true;break;default:i=true;break;}}if(!i&&!n)return;var f=new Date(1987,1,19),o=0;var u=[];for(l=0;l1?1:-1;d.size=0;d.type=5}else if(v.slice(-1)=="/"){for(o=l+1;o=u.length?-1:o;for(o=l+1;o=u.length?-1:o;d.type=1}else{if(t(e.FullPaths[l+1]||"")==t(v))d.R=l+1;d.type=2}}}function T(e,r){w(e);var t=function(e){var r=0,t=0;for(var a=0;a>6;else t+=i+511>>9}var s=e.FullPaths.length+3>>2;var l=r+7>>3;var c=r+127>>7;var f=l+t+s+c;var o=f+127>>7;var u=o<=109?0:Math.ceil((o-109)/127);while(f+o+u+127>>7>o)u=++o<=109?0:Math.ceil((o-109)/127);var h=[1,u,o,c,s,t,r,0];e.FileIndex[0].size=r<<6;h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3);return h}(e);var a=Ar(t[7]<<9);var n=0,i=0;{for(n=0;n<8;++n)a._W(1,F[n]);for(n=0;n<8;++n)a._W(2,0);a._W(2,62);a._W(2,3);a._W(2,65534);a._W(2,9);a._W(2,6);for(n=0;n<3;++n)a._W(2,0);a._W(4,0);a._W(4,t[2]);a._W(4,t[0]+t[1]+t[2]+t[3]-1);a._W(4,0);a._W(4,1<<12);a._W(4,t[3]?t[0]+t[1]+t[2]-1:R);a._W(4,t[3]);a._W(-4,t[1]?t[0]-1:R);a._W(4,t[1]);for(n=0;n<109;++n)a._W(-4,n>9)}s(t[6]+7>>3);while(a.l&511)a._W(-4,P.ENDOFCHAIN);i=n=0;for(l=0;l=4096)continue;f.start=i;s(c+63>>6)}while(a.l&511)a._W(-4,P.ENDOFCHAIN);for(n=0;n=4096){a.l=f.start+1<<9;for(l=0;l0&&f.size<4096){for(l=0;l3)a=true;switch(n[i].substr(n[i].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+n[i].substr(n[i].length-1));case"D":t*=24;case"H":t*=60;case"M":if(!a)throw new Error("Unsupported ISO Duration Field: M");else t*=60;case"S":break;}r+=t*parseInt(n[i],10)}return r}var L=new Date("2017-02-19T19:06:09.000Z");if(isNaN(L.getFullYear()))L=new Date("2/19/17");var U=L.getFullYear()==2017;function W(e,r){var t=new Date(e);if(U){if(r>0)t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3);else if(r<0)t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3);return t}if(e instanceof Date)return e;if(L.getFullYear()==1917&&!isNaN(t.getFullYear())){var a=t.getFullYear();if(e.indexOf(""+a)>-1)return t;t.setFullYear(t.getFullYear()+100);return t}var n=e.match(/\d+/g)||["2017","2","19","0","0","0"];var i=new Date(+n[0],+n[1]-1,+n[2],+n[3]||0,+n[4]||0,+n[5]||0);if(e.indexOf("Z")>-1)i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3);return i}function H(e){var r="";for(var t=0;t!=e.length;++t)r+=String.fromCharCode(e[t]);return r}function V(e){var r=[];for(var t=0;t!=e.length;++t)r.push(e.charCodeAt(t));return r}function X(e){if(typeof JSON!="undefined"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;var r={};for(var t in e)if(e.hasOwnProperty(t))r[t]=X(e[t]);return r}function G(e,r){var t="";while(t.length8099)return t;if((n>0||i>1)&&a!=101)return r;if(e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/))return r;if(e.match(/[^-0-9:,\/\\]/))return t;return r}var K="abacaba".split(/(:?b)/i).length==5;function Y(e,r,t){if(K||typeof r=="string")return e.split(r);var a=e.split(r),n=[a[0]];for(var i=1;i\/]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;var ce=/<[\/\?]?[a-zA-Z0-9:]+(?:\s+[^"\s?>\/]+=(?:"[^"]*"|'[^']*'|[^'">\s]+))*\s?[\/\?]?>/g;if(!se.match(ce))ce=/<[^>]*>/g;var fe=/<\w*:/,oe=/<(\/?)\w+:/;function ue(e,r){var t={};var a=0,n=0;for(;a!==e.length;++a)if((n=e.charCodeAt(a))===32||n===10||n===13)break;if(!r)t[0]=e.substr(0,a);if(a===e.length)return t;var i=e.match(le),s=0,l="",c=0,f="",o="",u=1;if(i)for(c=0;c!=i.length;++c){o=i[c];for(n=0;n!=o.length;++n)if(o.charCodeAt(n)===61)break;f=o.substr(0,n);u=(a=o.charCodeAt(n+1))==34||a==39?1:0;l=o.substring(n+1+u,o.length-u);for(s=0;s!=f.length;++s)if(f.charCodeAt(s)===58)break;if(s===f.length){if(f.indexOf("_")>0)f=f.substr(0,f.indexOf("_"));t[f]=l}else{var h=(s===5&&f.substr(0,5)==="xmlns"?"xmlns":"")+f.substr(s+1);if(t[h]&&f.substr(s-3,3)=="ext")continue;t[h]=l}}return t}function he(e){return e.replace(oe,"<$1")}var de={""":'"',"'":"'",">":">","<":"<","&":"&"};var ve=D(de);var be=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/g,r=/_x([\da-fA-F]{4})_/g;return function t(a){var n=a+"",i=n.indexOf("-1?16:10))||e}).replace(r,function(e,r){return String.fromCharCode(parseInt(r,16))});var s=n.indexOf("]]>");return t(n.slice(0,i))+n.slice(i+9,s)+t(n.slice(s+3))}}();var pe=/[&<>'"]/g,me=/[\u0000-\u0008\u000b-\u001f]/g;function ge(e,r){var t=e+"";return t.replace(pe,function(e){return ve[e]}).replace(me,function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"})}function Ee(e){return ge(e).replace(/ /g,"_x0020_")}var ke=/[\u0000-\u001f]/g;function Se(e){var r=e+"";return r.replace(pe,function(e){return ve[e]}).replace(ke,function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"})}var Be=function(){var e=/&#(\d+);/g;function r(e,r){return String.fromCharCode(parseInt(r,10))}return function t(a){return a.replace(e,r)}}();var Ce=function(){return function e(r){return r.replace(/(\r\n|[\r\n])/g," ")}}();function we(e,r){switch(e){case 1:;case true:;case"1":;case"true":;case"TRUE":return true;default:return false;}}var Te=function Lb(e){var r="",t=0,a=0,n=0,i=0,s=0,l=0;while(t191&&a<224){s=(a&31)<<6;s|=n&63;r+=String.fromCharCode(s);continue}i=e.charCodeAt(t++);if(a<240){r+=String.fromCharCode((a&15)<<12|(n&63)<<6|i&63);continue}s=e.charCodeAt(t++);l=((a&7)<<18|(n&63)<<12|(i&63)<<6|s&63)-65536;r+=String.fromCharCode(55296+(l>>>10&1023));r+=String.fromCharCode(56320+(l&1023))}return r};var Ie=function(e){var r=[],t=0,a=0,n=0;while(t>6)));r.push(String.fromCharCode(128+(a&63)));break;case a>=55296&&a<57344:a-=55296;n=e.charCodeAt(t++)-56320+(a<<10);r.push(String.fromCharCode(240+(n>>18&7)));r.push(String.fromCharCode(144+(n>>12&63)));r.push(String.fromCharCode(128+(n>>6&63)));r.push(String.fromCharCode(128+(n&63)));break;default:r.push(String.fromCharCode(224+(a>>12)));r.push(String.fromCharCode(128+(a>>6&63)));r.push(String.fromCharCode(128+(a&63)));}}return r.join("")};if(d){var xe=function Ub(e){var r=new Buffer(2*e.length),t,a,n=1,i=0,s=0,l;for(a=0;a>>10&1023);t=56320+(t&1023)}if(s!==0){r[i++]=s&255;r[i++]=s>>>8;s=0}r[i++]=t%256;r[i++]=t>>>8}return r.slice(0,i).toString("ucs2")};var Ae="foo bar baz☃🍣";if(Te(Ae)==xe(Ae))Te=xe;var Re=function Wb(e){return Buffer(e,"binary").toString("utf8")};if(Te(Ae)==Re(Ae))Te=Re;Ie=function(e){return new Buffer(e,"utf8").toString("binary")}}var De=function(){var e={};return function r(t,a){var n=t+"|"+(a||"");if(e[n])return e[n];return e[n]=new RegExp("<(?:\\w+:)?"+t+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",a||"")}}();function Fe(e){return e.trim().replace(/\s+/g," ").replace(/<\s*[bB][rR]\s*\/?/g,"\n").replace(/<[^>]*>/g,"").replace(/ /g," ")}var Oe=function(){var e={};return function r(t){if(e[t]!==undefined)return e[t];return e[t]=new RegExp("<(?:vt:)?"+t+">([\\s\\S]*?)","g")}}();var Pe=/<\/?(?:vt:)?variant>/g,_e=/<(?:vt:)([^>]*)>([\s\S]*)"+r+""}function Le(e){return A(e).map(function(r){return" "+r+'="'+e[r]+'"'}).join("")}function Ue(e,r,t){return"<"+e+(x(t)?Le(t):"")+(x(r)?(r.match(Ne)?' xml:space="preserve"':"")+">"+r+""}function We(e,r){try{return e.toISOString().replace(/\.\d*/,"")}catch(t){if(r)throw t}return""}function He(e){switch(typeof e){case"string":return Ue("vt:lpwstr",e);case"number":return Ue((e|0)==e?"vt:i4":"vt:r8",String(e));case"boolean":return Ue("vt:bool",e?"true":"false");}if(e instanceof Date)return Ue("vt:filetime",We(e));throw new Error("Unable to serialize "+e)}var Ve={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};Ve.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];var Xe={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function Ge(e,r){var t=1-2*(e[r+7]>>>7);var a=((e[r+7]&127)<<4)+(e[r+6]>>>4&15);var n=e[r+6]&15;for(var i=5;i>=0;--i)n=n*256+e[r+i];if(a==2047)return n==0?t*Infinity:NaN;if(a==0)a=-1022;else{a-=1023;n+=Math.pow(2,52)}return t*Math.pow(2,a-52)*n}function ze(e,r,t){var a=(r<0||1/r==-Infinity?1:0)<<7,n=0,i=0;var s=a?-r:r;if(!isFinite(s)){n=2047;i=isNaN(r)?26985:0}else if(s==0)n=i=0;else{n=Math.floor(Math.log(s)/Math.LN2);i=s*Math.pow(2,52-n);if(n<=-1023&&(!isFinite(i)||i>4|a}var je=function(e){var r=[];for(var t=0;t0?Je(e,r+4,r+4+t-1):""};var rr=er;var tr=function(e,r){var t=2*vr(e,r);return t>0?Je(e,r+4,r+4+t-1):""};var ar=tr;var nr,ir;nr=ir=function Hb(e,r){var t=vr(e,r);return t>0?Ye(e,r+4,r+4+t):""};var sr=function(e,r){var t=vr(e,r);return t>0?Je(e,r+4,r+4+t):""};var lr=sr;var cr,fr;cr=fr=function(e,r){return Ge(e,r)};var or=function Vb(e){return Array.isArray(e)};if(d){Ye=function(e,r,t){if(!Buffer.isBuffer(e))return $e(e,r,t);return e.toString("utf16le",r,t)};Qe=function(e,r,t){return Buffer.isBuffer(e)?e.toString("hex",r,r+t):Ze(e,r,t)};er=function Xb(e,r){if(!Buffer.isBuffer(e))return rr(e,r);var t=e.readUInt32LE(r);return t>0?e.toString("utf8",r+4,r+4+t-1):""};tr=function Gb(e,r){if(!Buffer.isBuffer(e))return ar(e,r);var t=2*e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t-1)};nr=function zb(e,r){if(!Buffer.isBuffer(e))return ir(e,r);var t=e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t)};sr=function jb(e,r){if(!Buffer.isBuffer(e))return lr(e,r);var t=e.readUInt32LE(r);return e.toString("utf8",r+4,r+4+t)};Je=function Kb(e,r,t){return Buffer.isBuffer(e)?e.toString("utf8",r,t):Je(e,r,t)};je=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):Ke(e)};p=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)};cr=function Yb(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return fr(e,r)};or=function $b(e){return Buffer.isBuffer(e)||Array.isArray(e)}}if(typeof cptable!=="undefined"){Ye=function(e,r,t){return cptable.utils.decode(1200,e.slice(r,t))};Je=function(e,r,t){return cptable.utils.decode(65001,e.slice(r,t))};er=function(e,r){var a=vr(e,r);return a>0?cptable.utils.decode(t,e.slice(r+4,r+4+a-1)):""};tr=function(e,r){var t=2*vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};nr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t)):""};sr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(65001,e.slice(r+4,r+4+t)):""}}var ur=function(e,r){return e[r]};var hr=function(e,r){return e[r+1]*(1<<8)+e[r]};var dr=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var vr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var br=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var pr=function(e){return(e.match(/../g)||[]).map(function(e){return parseInt(e,16)})};var mr=typeof Buffer!=="undefined"?function(e){return Buffer.isBuffer(e)?new Buffer(e,"hex"):pr(e)}:pr;function gr(e,r){var a="",n,i,s=[],l,c,o,u;switch(r){case"dbcs":u=this.l;if(d&&Buffer.isBuffer(this))a=this.slice(this.l,this.l+2*e).toString("utf16le");else for(o=0;o!=e;++o){a+=String.fromCharCode(hr(this,u));u+=2}e*=2;break;case"utf8":a=Je(this,this.l,this.l+e);break;case"utf16le":e*=2;a=Ye(this,this.l,this.l+e);break;case"wstr":if(typeof cptable!=="undefined")a=cptable.utils.decode(t,this.slice(this.l,this.l+2*e));else return gr.call(this,e,"dbcs");e=2*e;break;case"lpstr":a=er(this,this.l);e=5+a.length;break;case"lpwstr":a=tr(this,this.l);e=5+a.length;if(a[a.length-1]=="\0")e+=2;break;case"lpp4":e=4+vr(this,this.l);a=nr(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+vr(this,this.l);a=sr(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;a="";while((l=ur(this,this.l+e++))!==0)s.push(f(l));a=s.join("");break;case"_wstr":e=0;a="";while((l=hr(this,this.l+e))!==0){s.push(f(l));e+=2}e+=2;a=s.join("");break;case"dbcs-cont":a="";u=this.l;for(o=0;o!=e;++o){if(this.lens&&this.lens.indexOf(u)!==-1){l=ur(this,u);this.l=u+1;c=gr.call(this,e-o,l?"dbcs-cont":"sbcs-cont");return s.join("")+c}s.push(f(hr(this,u)));u+=2}a=s.join("");e*=2;break;case"sbcs-cont":a="";u=this.l;for(o=0;o!=e;++o){if(this.lens&&this.lens.indexOf(u)!==-1){l=ur(this,u);this.l=u+1;c=gr.call(this,e-o,l?"dbcs-cont":"sbcs-cont");return s.join("")+c}s.push(f(ur(this,u)));u+=1}a=s.join("");break;default:switch(e){case 1:n=ur(this,this.l);this.l++;return n;case 2:n=(r==="i"?dr:hr)(this,this.l);this.l+=2;return n;case 4:if(r==="i"||(this[this.l+3]&128)===0){n=br(this,this.l);this.l+=4;return n}else{i=vr(this,this.l);this.l+=4}return i;case 8:if(r==="f"){i=cr(this,this.l);this.l+=8;return i};case 16:a=Qe(this,this.l,e);break;};}this.l+=e;return a}var Er=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var kr=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var Sr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function Br(e,r,t){var a=0,n=0;if(t==="dbcs"){for(n=0;n!=r.length;++n)Sr(this,r.charCodeAt(n),this.l+2*n);a=2*r.length}else if(t==="sbcs"){for(n=0;n!=r.length;++n)this[this.l+n]=r.charCodeAt(n)&255;a=r.length}else if(t==="hex"){for(;n>8}while(this.l>>=8;this[this.l+1]=r&255;break;case 3:a=3;this[this.l]=r&255;r>>>=8;this[this.l+1]=r&255;r>>>=8;this[this.l+2]=r&255;break;case 4:a=4;Er(this,r,this.l);break;case 8:a=8;if(t==="f"){ze(this,r,this.l);break};case 16:break;case-4:a=4;kr(this,r,this.l);break;}this.l+=a;return this}function Cr(e,r){var t=Qe(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function wr(e,r){e.l=r;e._R=gr;e.chk=Cr;e._W=Br}function Tr(e,r){e.l+=r}function Ir(e,r){if(typeof console!="undefined")console.log(e.slice(e.l,e.l+r));e.l+=r}function xr(e,r){e.l+=r}function Ar(e){var r=v(e);wr(r,0);return r}function Rr(e,r,t){if(!e)return;var a,n,i;wr(e,e.l||0);var s=e.length,l=0,c=0;while(e.la.l)a=a.slice(0,a.l);if(a.length>0)e.push(a);a=null};var i=function o(e){if(a&&e=128?1:0)+1+a;if(a>=128)++i;if(a>=16384)++i;if(a>=2097152)++i;var s=e.next(i);if(n<=127)s._W(1,n);else{s._W(1,(n&127)+128);s._W(1,n>>7)}for(var l=0;l!=4;++l){if(a>=128){s._W(1,(a&127)+128);a>>=7}else{s._W(1,a);break}}if(a>0&&or(t))e.push(t)}function Or(e,r,t){var a=X(e);if(r.s){if(a.cRel)a.c+=r.s.c;if(a.rRel)a.r+=r.s.r}else{a.c+=r.c;a.r+=r.r}if(!t||t.biff<12){while(a.c>=256)a.c-=256;while(a.r>=65536)a.r-=65536}return a}function Pr(e,r,t){var a=X(e);a.s=Or(a.s,r.s,t);a.e=Or(a.e,r.s,t);return a}function _r(e){var r=Yr(e);if(e.cRel===0)r=Gr(r);if(e.rRel===0)r=Wr(r);return r}function yr(e,r){if(e.s.r==0&&!e.s.rRel){if(e.e.r==(r.biff>=12?1048575:65535)&&!e.e.rRel){return(e.s.cRel?"":"$")+Xr(e.s.c)+":"+(e.e.cRel?"":"$")+Xr(e.e.c)}}if(e.s.c==0&&!e.s.cRel){if(e.e.c==(r.biff>=12?65535:255)&&!e.e.cRel){return(e.s.rRel?"":"$")+Ur(e.s.r)+":"+(e.e.rRel?"":"$")+Ur(e.e.r)}}return _r(e.s)+":"+_r(e.e)}var Nr={};var Mr=function(e,r){var t;if(typeof r!=="undefined")t=r;else if(typeof require!=="undefined"){try{t=undefined}catch(a){t=null}}e.rc4=function(e,r){var t=new Array(256);var a=0,n=0,i=0,s=0;for(n=0;n!=256;++n)t[n]=n;for(n=0;n!=256;++n){i=i+t[n]+e[n%e.length].charCodeAt(0)&255;s=t[n];t[n]=t[i];t[i]=s}n=i=0;var l=Buffer(r.length);for(a=0;a!=r.length;++a){n=n+1&255;i=(i+t[n])%256;s=t[n];t[n]=t[i];t[i]=s;l[a]=r[a]^t[t[n]+t[i]&255]}return l};e.md5=function(e){if(!t)throw new Error("Unsupported crypto");return t.createHash("md5").update(e).digest("hex")}};Mr(Nr,typeof crypto!=="undefined"?crypto:undefined);function Lr(e){return parseInt(Hr(e),10)-1}function Ur(e){return""+(e+1)}function Wr(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function Hr(e){return e.replace(/\$(\d+)$/,"$1")}function Vr(e){var r=zr(e),t=0,a=0;for(;a!==r.length;++a)t=26*t+r.charCodeAt(a)-64;return t-1}function Xr(e){var r="";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function Gr(e){return e.replace(/^([A-Z])/,"$$$1")}function zr(e){return e.replace(/^\$([A-Z])/,"$1")}function jr(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Kr(e){var r=jr(e);return{c:Vr(r[0]),r:Lr(r[1])}}function Yr(e){return Xr(e.c)+Ur(e.r)}function $r(e){return Gr(Wr(e))}function Qr(e){return zr(Hr(e))}function Zr(e){var r=e.split(":").map(Kr);return{s:r[0],e:r[r.length-1]}}function Jr(e,r){if(typeof r==="undefined"||typeof r==="number"){return Jr(e.s,e.e)}if(typeof e!=="string")e=Yr(e);if(typeof r!=="string")r=Yr(r);return e==r?e:e+":"+r}function qr(e){var r={s:{c:0,r:0},e:{c:0,r:0}};var t=0,a=0,n=0;var i=e.length;for(t=0;a26)break;t=26*t+n}r.s.c=--t;for(t=0;a9)break;t=10*t+n}r.s.r=--t;if(a===i||e.charCodeAt(++a)===58){r.e.c=r.s.c;r.e.r=r.s.r;return r}for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-64)<1||n>26)break;t=26*t+n}r.e.c=--t;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-48)<0||n>9)break;t=10*t+n}r.e.r=--t;return r}function et(e,r){var t=e.t=="d"&&r instanceof Date;if(e.z!=null)try{return e.w=E.format(e.z,t?y(r):r)}catch(a){}try{return e.w=E.format((e.XF||{}).numFmtId||(t?14:0),t?y(r):r)}catch(a){return""+r}}function rt(e,r,t){if(e==null||e.t==null||e.t=="z")return"";if(e.w!==undefined)return e.w;if(e.t=="d"&&!e.z&&t&&t.dateNF)e.z=t.dateNF;if(r==undefined)return et(e,e.v);return et(e,r)}function tt(e,r){var t=r&&r.sheet?r.sheet:"Sheet1";var a={};a[t]=e;return{SheetNames:[t],Sheets:a}}function at(e,r){var t=r||{};if(o!=null&&t.dense==null)t.dense=o;var a=t.dense?[]:{};var n={s:{c:1e7,r:1e7},e:{c:0,r:0}};for(var i=0;i!=e.length;++i){for(var s=0;s!=e[i].length;++s){if(typeof e[i][s]==="undefined")continue;var l={v:e[i][s]};if(Array.isArray(l.v)){l.f=e[i][s][1];l.v=l.v[0]}if(n.s.r>i)n.s.r=i;if(n.s.c>s)n.s.c=s;if(n.e.r0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}function lt(e,r){return{ich:e._R(2),ifnt:e._R(2)}}function ct(e,r){if(!r)r=Ar(4);r._W(2,e.ich||0);r._W(2,e.ifnt||0);return r}function ft(e,r){var t=e.l;var a=e._R(1);var n=it(e);var i=[];var s={t:n,h:n};if((a&1)!==0){var l=e._R(4);for(var c=0;c!=l;++c)i.push(lt(e));s.r=i}else s.r=[{ich:0,ifnt:0}];e.l=t+r;return s}function ot(e,r){var t=false;if(r==null){t=true;r=Ar(15+4*e.t.length)}r._W(1,0);st(e.t,r);return t?r.slice(0,r.l):r}var ut=ft;function ht(e,r){var t=false;if(r==null){t=true;r=Ar(23+4*e.t.length)}r._W(1,1);st(e.t,r);r._W(4,1);ct({ich:0,ifnt:0},r);return t?r.slice(0,r.l):r}function dt(e){var r=e._R(4);var t=e._R(2);t+=e._R(1)<<16;var a=e._R(1);return{c:r,iStyleRef:t}}function vt(e,r){if(r==null)r=Ar(8);r._W(-4,e.c);r._W(3,e.iStyleRef||e.s);r._W(1,0);return r}var bt=it;var pt=st;function mt(e){var r=e._R(4);return r===0||r===4294967295?"":e._R(r,"dbcs")}function gt(e,r){var t=false;if(r==null){t=true;r=Ar(127)}r._W(4,e.length>0?e.length:4294967295);if(e.length>0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}var Et=it;var kt=st;var St=mt;var Bt=gt;function Ct(e){var r=e.slice(e.l,e.l+4);var t=r[0]&1,a=r[0]&2;e.l+=4;r[0]&=252;var n=a===0?cr([0,0,0,0,r[0],r[1],r[2],r[3]],0):br(r,0)>>2;return t?n/100:n}function wt(e,r){if(r==null)r=Ar(4);var t=0,a=0,n=e*100;if(e==(e|0)&&e>=-(1<<29)&&e<1<<29){a=1}else if(n==(n|0)&&n>=-(1<<29)&&n<1<<29){a=1;t=1}if(a)r._W(-4,((t?n:e)<<2)+(t+2));else throw new Error("unsupported RkNumber "+e)}function Tt(e){var r={s:{},e:{}};r.s.r=e._R(4);r.e.r=e._R(4);r.s.c=e._R(4);r.e.c=e._R(4);return r}function It(e,r){if(!r)r=Ar(16);r._W(4,e.s.r);r._W(4,e.e.r);r._W(4,e.s.c);r._W(4,e.e.c);return r}var xt=Tt;var At=It;function Rt(e,r){return e._R(8,"f")}function Dt(e,r){return(r||Ar(8))._W(8,e,"f"); -}var Ft={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var Ot=F(Ft);function Pt(e,r){var t={};var a=e._R(1);var n=a&1;var i=a>>>1;var s=e._R(1);var l=e._R(2,"i");var c=e._R(1);var f=e._R(1);var o=e._R(1);var u=e._R(1);switch(i){case 0:t.auto=1;break;case 1:t.index=s;var h=ta[s];if(h)t.rgb=ul(h);break;case 2:t.rgb=ul([c,f,o]);break;case 3:t.theme=s;break;}if(l!=0)t.tint=l>0?l/32767:l/32768;return t}function _t(e,r){if(!r)r=Ar(8);if(!e||e.auto){r._W(4,0);r._W(4,0);return r}if(e.index){r._W(1,2);r._W(1,e.index)}else if(e.theme){r._W(1,6);r._W(1,e.theme)}else{r._W(1,5);r._W(1,0)}var t=e.tint||0;if(t>0)t*=32767;else if(t<0)t*=32768;r._W(2,t);if(!e.rgb){r._W(2,0);r._W(1,0);r._W(1,0)}else{var a=e.rgb||"FFFFFF";r._W(1,parseInt(a.substr(0,2),16));r._W(1,parseInt(a.substr(2,2),16));r._W(1,parseInt(a.substr(4,2),16));r._W(1,255)}return r}function yt(e,r,t){var a=e._R(1);e.l++;var n={fItalic:a&2,fStrikeout:a&8,fOutline:a&16,fShadow:a&32,fCondense:a&64,fExtend:a&128};return n}function Nt(e,r){if(!r)r=Ar(2);var t=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);r._W(1,t);r._W(1,0);return r}{var Mt=2;var Lt=3;var Ut=11;var Wt=12;var Ht=19;var Vt=21;var Xt=30;var Gt=64;var zt=71;var jt=4096;var Kt=80;var Yt=81;var $t=[Kt,Yt]}var Qt={1:{n:"CodePage",t:Mt},2:{n:"Category",t:Kt},3:{n:"PresentationFormat",t:Kt},4:{n:"ByteCount",t:Lt},5:{n:"LineCount",t:Lt},6:{n:"ParagraphCount",t:Lt},7:{n:"SlideCount",t:Lt},8:{n:"NoteCount",t:Lt},9:{n:"HiddenCount",t:Lt},10:{n:"MultimediaClipCount",t:Lt},11:{n:"Scale",t:Ut},12:{n:"HeadingPair",t:jt|Wt},13:{n:"DocParts",t:jt|Xt},14:{n:"Manager",t:Kt},15:{n:"Company",t:Kt},16:{n:"LinksDirty",t:Ut},17:{n:"CharacterCount",t:Lt},19:{n:"SharedDoc",t:Ut},22:{n:"HLinksChanged",t:Ut},23:{n:"AppVersion",t:Lt,p:"version"},26:{n:"ContentType",t:Kt},27:{n:"ContentStatus",t:Kt},28:{n:"Language",t:Kt},29:{n:"Version",t:Kt},255:{}};var Zt={1:{n:"CodePage",t:Mt},2:{n:"Title",t:Kt},3:{n:"Subject",t:Kt},4:{n:"Author",t:Kt},5:{n:"Keywords",t:Kt},6:{n:"Comments",t:Kt},7:{n:"Template",t:Kt},8:{n:"LastAuthor",t:Kt},9:{n:"RevNumber",t:Kt},10:{n:"EditTime",t:Gt},11:{n:"LastPrinted",t:Gt},12:{n:"CreatedDate",t:Gt},13:{n:"ModifiedDate",t:Gt},14:{n:"PageCount",t:Lt},15:{n:"WordCount",t:Lt},16:{n:"CharCount",t:Lt},17:{n:"Thumbnail",t:zt},18:{n:"ApplicationName",t:Xt},19:{n:"DocumentSecurity",t:Lt},255:{}};var Jt={2147483648:{n:"Locale",t:Ht},2147483651:{n:"Behavior",t:Ht},1919054434:{}};(function(){for(var e in Jt)if(Jt.hasOwnProperty(e))Qt[e]=Zt[e]=Jt[e]})();var qt={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var ea=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function ra(e){return e.map(function(e){return[e>>16&255,e>>8&255,e&255]})}var ta=ra([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var aa={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"};var na=function(){var e={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};A(e).forEach(function(r){if(!e[r].xlsm)e[r].xlsm=e[r].xlsx});A(e).forEach(function(r){A(e[r]).forEach(function(t){aa[e[r][t]]=r})});return e}();var ia=O(aa);Ve.CT="http://schemas.openxmlformats.org/package/2006/content-types";function sa(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""}}function la(e,r){var t=sa();if(!e||!e.match)return t;var a={};(e.match(ce)||[]).forEach(function(e){var r=ue(e);switch(r[0].replace(fe,"<")){case"0?t.calcchains[0]:"";t.sst=t.strs.length>0?t.strs[0]:"";t.style=t.styles.length>0?t.styles[0]:"";t.defaults=a;delete t.calcchains;return t}var ca=Ue("Types",null,{xmlns:Ve.CT,"xmlns:xsd":Ve.xsd,"xmlns:xsi":Ve.xsi});var fa=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",ia.rels[0]]].map(function(e){return Ue("Default",null,{Extension:e[0],ContentType:e[1]})});function oa(e,r){var t=[],a;t[t.length]=se;t[t.length]=ca;t=t.concat(fa);var n=function(n){if(e[n]&&e[n].length>0){a=e[n][0];t[t.length]=Ue("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:na[n][r.bookType||"xlsx"]})}};var i=function(a){(e[a]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:na[a][r.bookType||"xlsx"]})})};var s=function(r){(e[r]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:ia[r][0]})})};n("workbooks");i("sheets");i("charts");s("themes");["strs","styles"].forEach(n);["coreprops","extprops","custprops"].forEach(s);s("vba");s("comments");s("drawings");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var ua={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function ha(e){var r=e.lastIndexOf("/");return e.substr(0,r+1)+"_rels/"+e.substr(r+1)+".rels"}function da(e,r){if(!e)return e;if(r.charAt(0)!=="/"){r="/"+r}var t={};var a={};(e.match(ce)||[]).forEach(function(e){var n=ue(e);if(n[0]==="2){r[r.length]="";r[1]=r[1].replace("/>",">")}return r.join("")}function pa(e,r,t,a,n){if(!n)n={};if(!e["!id"])e["!id"]={};if(r<0)for(r=1;e["!id"]["rId"+r];++r){}n.Id="rId"+r;n.Type=a;n.Target=t;if(n.Type==ua.HLINK)n.TargetMode="External";if(e["!id"][n.Id])throw new Error("Cannot rewrite rId "+r);e["!id"][n.Id]=n;e[("/"+n.Target).replace("//","/")]=n;return r}var ma="application/vnd.oasis.opendocument.spreadsheet";function ga(e,r){var t=Kd(e);var a;var n;while(a=Yd.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=ue(a[0],false);if(n.path=="/"&&n.type!==ma)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function Ea(e,r){var t=[se];t.push('\n');t.push(' \n');for(var a=0;a\n');t.push("");return t.join("")}function ka(e,r,t){return[' \n',' \n'," \n"].join("")}function Sa(e,r){return[' \n',' \n'," \n"].join("")}function Ba(e,r){var t=[se];t.push('\n');for(var a=0;a!=e.length;++a){t.push(ka(e[a][0],e[a][1]));t.push(Sa("",e[a][0]))}t.push(ka("","Document","pkg"));t.push("");return t.join("")}var Ca=function(){var e='Sheet'+"JS "+r.version+"";return function t(r,a){return e}}();var wa=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];Ve.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";ua.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var Ta=function(){var e=new Array(wa.length);for(var r=0;r]*>([\\s\\S]*?)")}return e}();function Ia(e){var r={};e=Te(e);for(var t=0;t0)r[a[1]]=n[1];if(a[2]==="date"&&r[a[1]])r[a[1]]=W(r[a[1]])}return r}var xa=Ue("cp:coreProperties",null,{"xmlns:cp":Ve.CORE_PROPS,"xmlns:dc":Ve.dc,"xmlns:dcterms":Ve.dcterms,"xmlns:dcmitype":Ve.dcmitype,"xmlns:xsi":Ve.xsi});function Aa(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;a[a.length]=t?Ue(e,r,t):Me(e,r)}function Ra(e,r){var t=r||{};var a=[se,xa],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)Aa("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:We(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)Aa("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:We(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=wa.length;++i){var s=wa[i];var l=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(l===true)l="1";else if(l===false)l="0";else if(typeof l=="number")l=String(l);if(l!=null)Aa(s[0],l,null,a,n)}if(a.length>2){a[a.length]="";a[1]=a[1].replace("/>",">")}return a.join("")}var Da=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];Ve.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";ua.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function Fa(e,r,t){var a={};if(!r)r={};e=Te(e);Da.forEach(function(t){switch(t[2]){case"string":r[t[1]]=(e.match(De(t[0]))||[])[1];break;case"bool":r[t[1]]=(e.match(De(t[0]))||[])[1]==="true";break;case"raw":var n=e.match(new RegExp("<"+t[0]+"[^>]*>([\\s\\S]*?)"));if(n&&n.length>0)a[t[1]]=n[1];break;}});if(a.HeadingPairs&&a.TitlesOfParts){var n=ye(a.HeadingPairs,t);var i=ye(a.TitlesOfParts,t).map(function(e){return e.v});var s=0,l=0;if(i.length>0)for(var c=0;c!==n.length;c+=2){l=+n[c+1].v;switch(n[c].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Werkbladen":r.Worksheets=l;r.SheetNames=i.slice(s,s+l);break;case"Named Ranges":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":r.NamedRanges=l;r.DefinedNames=i.slice(s,s+l);break;case"Charts":;case"Diagramme":r.Chartsheets=l;r.ChartNames=i.slice(s,s+l);break;}s+=l}}return r}var Oa=Ue("Properties",null,{xmlns:Ve.EXT_PROPS,"xmlns:vt":Ve.vt});function Pa(e,r){var t=[],a={},n=Ue;if(!e)e={};e.Application="SheetJS";t[t.length]=se;t[t.length]=Oa;Da.forEach(function(r){if(e[r[1]]===undefined)return;var a;switch(r[2]){case"string":a=String(e[r[1]]);break;case"bool":a=e[r[1]]?"true":"false";break;}if(a!==undefined)t[t.length]=n(r[0],a)});t[t.length]=n("HeadingPairs",n("vt:vector",n("vt:variant","Worksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"}));t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map(function(e){return""+ge(e)+""}).join(""),{size:e.Worksheets,baseType:"lpstr"}));if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}Ve.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";ua.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var _a=/<[^>]+>[^<]*/g;function ya(e,r){var t={},a="";var n=e.match(_a);if(n)for(var i=0;i!=n.length;++i){var s=n[i],l=ue(s);switch(l[0]){case"":a=null;break;default:if(s.indexOf("");var f=c[0].substring(4),o=c[1];switch(f){case"lpstr":;case"bstr":;case"lpwstr":t[a]=be(o);break;case"bool":t[a]=we(o,"");break;case"i1":;case"i2":;case"i4":;case"i8":;case"int":;case"uint":t[a]=parseInt(o,10);break;case"r4":;case"r8":;case"decimal":t[a]=parseFloat(o);break;case"filetime":;case"date":t[a]=W(o);break;case"cy":;case"error":t[a]=be(o);break;default:if(f.slice(-1)=="/")break;if(r.WTF&&typeof console!=="undefined")console.warn("Unexpected",s,f,c);}}else if(s.substr(0,2)==="2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var La={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};var Ua=D(La);function Wa(e,r,t){r=Ua[r]||r;e[r]=t}function Ha(e,r){var t=[];A(La).map(function(e){for(var r=0;r'+i.join("")+""}function Xa(e){var r=e._R(4),t=e._R(4);return new Date((t/1e7*Math.pow(2,32)+r/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function Ga(e,r,t){var a=e._R(0,"lpstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function za(e,r,t){var a=e._R(0,"lpwstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function ja(e,r,t){if(r===31)return za(e);return Ga(e,r,t)}function Ka(e,r,t){return ja(e,r,t===false?0:4)}function Ya(e,r){if(!r)throw new Error("VtUnalignedString must have positive length");return ja(e,r,0)}function $a(e){var r=e._R(4);var t=[];for(var a=0;a!=r;++a)t[a]=e._R(0,"lpstr");return t}function Qa(e){return $a(e)}function Za(e){var r=nn(e,Yt);var t=nn(e,Lt);return[r,t]}function Ja(e){var r=e._R(4);var t=[];for(var a=0;a!=r/2;++a)t.push(Za(e));return t}function qa(e){return Ja(e)}function en(e,r){var t=e._R(4);var a={};for(var n=0;n!=t;++n){var i=e._R(4);var s=e._R(4);a[i]=e._R(s,r===1200?"utf16le":"utf8").replace(m,"").replace(g,"!")}if(e.l&3)e.l=e.l>>2+1<<2;return a}function rn(e){var r=e._R(4);var t=e.slice(e.l,e.l+r);if((r&3)>0)e.l+=4-(r&3)&3;return t}function tn(e){var r={};r.Size=e._R(4);e.l+=r.Size;return r}function an(e,r){}function nn(e,r,t){var a=e._R(2),n,i=t||{};e.l+=2;if(r!==Wt)if(a!==r&&$t.indexOf(r)===-1)throw new Error("Expected type "+r+" saw "+a);switch(r===Wt?a:r){case 2:n=e._R(2,"i");if(!i.raw)e.l+=2;return n;case 3:n=e._R(4,"i");return n;case 11:return e._R(4)!==0;case 19:n=e._R(4);return n;case 30:return Ga(e,a,4).replace(m,"");case 31:return za(e);case 64:return Xa(e);case 65:return rn(e);case 71:return tn(e);case 80:return Ka(e,a,!i.raw).replace(m,"");case 81:return Ya(e,a).replace(m,"");case 4108:return qa(e);case 4126:return Qa(e);default:throw new Error("TypedPropertyValue unrecognized type "+r+" "+a);}}function sn(e,r){var t=e.l;var a=e._R(4);var i=e._R(4);var s=[],l=0;var c=0;var f=-1,o={};for(l=0;l!=i;++l){var u=e._R(4);var h=e._R(4);s[l]=[u,h+t]}var d={};for(l=0;l!=i;++l){if(e.l!==s[l][1]){var v=true;if(l>0&&r)switch(r[s[l-1][0]].t){case 2:if(e.l+2===s[l][1]){e.l+=2;v=false}break;case 80:if(e.l<=s[l][1]){e.l=s[l][1];v=false}break;case 4108:if(e.l<=s[l][1]){e.l=s[l][1];v=false}break;}if(!r&&e.l<=s[l][1]){v=false;e.l=s[l][1]}if(v)throw new Error("Read Error: Expected address "+s[l][1]+" at "+e.l+" :"+l)}if(r){var b=r[s[l][0]];d[b.n]=nn(e,b.t,{raw:true});if(b.p==="version")d[b.n]=String(d[b.n]>>16)+"."+String(d[b.n]&65535);if(b.n=="CodePage")switch(d[b.n]){case 0:d[b.n]=1252;case 874:;case 932:;case 936:;case 949:;case 950:;case 1250:;case 1251:;case 1253:;case 1254:;case 1255:;case 1256:;case 1257:;case 1258:;case 1e4:;case 1200:;case 1201:;case 1252:;case 65e3:;case-536:;case 65001:;case-535:n(c=d[b.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[b.n]);}}else{if(s[l][0]===1){c=d.CodePage=nn(e,Mt);n(c);if(f!==-1){var p=e.l;e.l=s[f][1];o=en(e,c);e.l=p}}else if(s[l][0]===0){if(c===0){f=l;e.l=s[l+1][1];continue}o=en(e,c)}else{var m=o[s[l][0]];var g;switch(e[e.l]){case 65:e.l+=4;g=rn(e);break;case 30:e.l+=4;g=Ka(e,e[e.l-4]);break;case 31:e.l+=4;g=Ka(e,e[e.l-4]);break;case 3:e.l+=4;g=e._R(4,"i");break;case 19:e.l+=4;g=e._R(4);break;case 5:e.l+=4;g=e._R(8,"f");break;case 11:e.l+=4;g=un(e,4);break;case 64:e.l+=4;g=W(Xa(e));break;default:throw new Error("unparsed value: "+e[e.l]);}d[m]=g}}}e.l=t+a;return d}function ln(e,r){var t=e.content;if(!t)return{};wr(t,0);var a,n,i,s,l=0;t.chk("feff","Byte Order: ");var c=t._R(2);var f=t._R(4);t.chk(I.utils.consts.HEADER_CLSID,"CLSID: ");a=t._R(4);if(a!==1&&a!==2)throw new Error("Unrecognized #Sets: "+a);n=t._R(16);s=t._R(4);if(a===1&&s!==t.l)throw new Error("Length mismatch: "+s+" !== "+t.l);else if(a===2){i=t._R(16);l=t._R(4)}var o=sn(t,r);var u={SystemIdentifier:f};for(var h in o)u[h]=o[h];u.FMTID=n;if(a===1)return u;if(t.l!==l)throw new Error("Length mismatch 2: "+t.l+" !== "+l);var d;try{d=sn(t,null)}catch(v){}for(h in d)u[h]=d[h];u.FMTID=[n,i];return u}function cn(e,r){e._R(r);return null}function fn(e,r){if(!r)r=Ar(e);for(var t=0;t=12?2:1);var i=1,s="sbcs-cont";var l=t;if(a&&a.biff>=8)t=1200;if(!a||a.biff==8){var c=e._R(1);if(c){i=2;s="dbcs-cont"}}else if(a.biff==12){i=2;s="wstr"}var f=n?e._R(n,s):"";t=l;return f}function En(e){var r=t;t=1200;var a=e._R(2),n=e._R(1);var i=n&1,s=n&4,l=n&8;var c=1+(n&1);var f=0,o;var u={};if(l)f=e._R(2);if(s)o=e._R(4);var h=n&1?"dbcs-cont":"sbcs-cont";var d=a===0?"":e._R(a,h);if(l)e.l+=4*f;if(s)e.l+=o;u.t=d;if(!l){u.raw=""+u.t+"";u.r=u.t}t=r;return u}function kn(e,r,t){var a;if(t){if(t.biff>=2&&t.biff<=5)return e._R(r,"sbcs-cont");if(t.biff>=12)return e._R(r,"dbcs-cont")}var n=e._R(1);if(n===0){a=e._R(r,"sbcs-cont")}else{a=e._R(r,"dbcs-cont")}return a}function Sn(e,r,t){var a=e._R(t&&t.biff==2?1:2);if(a===0){e.l++;return""}return kn(e,a,t)}function Bn(e,r,t){if(t.biff>5)return Sn(e,r,t);var a=e._R(1);if(a===0){e.l++;return""}return e._R(a,"sbcs-cont")}function Cn(e,r,t){var a=e._R(1);e.l++;var n=e._R(2);e.l+=2;return[a,n]}function wn(e){var r=e._R(4),t=e.l;var a=false;if(r>24){e.l+=r-24;if(e._R(16)==="795881f43b1d7f48af2c825dc4852763")a=true;e.l=t}var n=e._R((a?r-24:r)>>1,"utf16le").replace(m,"");if(a)e.l+=24;return n}function Tn(e,r){var t=e._R(2);var a=e._R(4);var n=e._R(a,"cstr");var i=e._R(2);var s=e._R(2);var l=e._R(4);if(l===0)return n.replace(/\\/g,"/");var c=e._R(4);var f=e._R(2);var o=e._R(c>>1,"utf16le").replace(m,"");return o}function In(e,r){var t=e._R(16);r-=16;switch(t){case"e0c9ea79f9bace118c8200aa004ba90b":return wn(e,r);case"0303000000000000c000000000000046":return Tn(e,r);default:throw new Error("Unsupported Moniker "+t);}}function xn(e,r){var t=e._R(4);var a=e._R(t,"utf16le").replace(m,"");return a}function An(e,r){var t=e.l+r;var a=e._R(4);if(a!==2)throw new Error("Unrecognized streamVersion: "+a);var n=e._R(2);e.l+=2;var i,s,l,c,f,o,u;if(n&16)i=xn(e,t-e.l);if(n&128)s=xn(e,t-e.l);if((n&257)===257)l=xn(e,t-e.l);if((n&257)===1)c=In(e,t-e.l);if(n&8)f=xn(e,t-e.l);if(n&32)o=e._R(16);if(n&64)u=Xa(e);e.l=t;var h=s||l||c;if(f)h+="#"+f;return{Target:h}}function Rn(e,r){var t=e._R(1),a=e._R(1),n=e._R(1),i=e._R(1);return[t,a,n,i]}function Dn(e,r){var t=Rn(e,r);t[3]=0;return t}function Fn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);return{r:t,c:a,ixfe:n}}function On(e,r,t,a){if(!a)a=Ar(6);a._W(2,e);a._W(2,r);a._W(2,t||0);return a}function Pn(e){var r=e._R(2);var t=e._R(2);e.l+=8;return{type:r,flags:t}}function _n(e,r,t){return r===0?"":Bn(e,r,t)}function yn(e,r,t){var a=t.biff>8?4:2;var n=e._R(a),i=e._R(a,"i"),s=e._R(a,"i");return[n,i,s]}function Nn(e,r){var t=e._R(2);var a=Ct(e);return[t,a]}function Mn(e,r,t){e.l+=4;r-=4;var a=e.l+r;var n=gn(e,r,t);var i=e._R(2);a-=e.l;if(i!==a)throw new Error("Malformed AddinUdf: padding = "+a+" != "+i);e.l+=i;return n}function Ln(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);var i=e._R(2);return{s:{c:n,r:t},e:{c:i,r:a}}}function Un(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(1);var i=e._R(1);return{s:{c:n,r:t},e:{c:i,r:a}}}var Wn=Un;function Hn(e,r){e.l+=4;var t=e._R(2);var a=e._R(2);var n=e._R(2);e.l+=12;return[a,t,n]}function Vn(e,r){var t={};e.l+=4;e.l+=16;t.fSharedNote=e._R(2);e.l+=4;return t}function Xn(e,r){var t={};e.l+=4;e.cf=e._R(2);return t}function Gn(e,r){e.l+=2;e.l+=e._R(2)}var zn={0:Gn,4:Gn,5:Gn, -6:Gn,7:Xn,8:Gn,9:Gn,10:Gn,11:Gn,12:Gn,13:Vn,14:Gn,15:Gn,16:Gn,17:Gn,18:Gn,19:Gn,20:Gn,21:Hn};function jn(e,r,t){var a=e.l+r;var n=[];while(e.l=2){t.dt=e._R(2);e.l-=2}switch(t.BIFFVer){case 1536:;case 1280:;case 2:;case 7:break;default:if(r>6)throw new Error("Unexpected BIFF Ver "+t.BIFFVer);}e._R(r);return t}function Yn(e,r,t){var a=1536,n=16;switch(t.bookType){case"biff8":break;case"biff5":a=1280;n=8;break;case"biff4":a=4;n=6;break;case"biff3":a=3;n=6;break;case"biff2":a=2;n=4;break;default:throw new Error("unsupported BIFF version");}var i=Ar(n);i._W(2,a);i._W(2,r);if(n>4)i._W(2,29282);if(n>6)i._W(2,1997);if(n>8){i._W(2,49161);i._W(2,1);i._W(2,1798);i._W(2,0)}return i}function $n(e,r){if(r===0)return 1200;var t;if((t=e._R(2))!==1200){}return 1200}function Qn(e,r,t){if(t.enc){e.l+=r;return""}var a=e.l;var n=Sn(e,0,t);e._R(r+a-e.l);return n}function Zn(e,r){var t=Ar(112);t._W(r.biff==8?2:1,7);t._W(1,0);t._W(4,859007059);t._W(4,5458548);while(t.l>15);n&=32767}var i={Unsynced:a&1,DyZero:(a&2)>>1,ExAsc:(a&4)>>2,ExDsc:(a&8)>>3};return[i,n]}function si(e,r){var t=e._R(2),a=e._R(2),n=e._R(2),i=e._R(2);var s=e._R(2),l=e._R(2),c=e._R(2);var f=e._R(2),o=e._R(2);return{Pos:[t,a],Dim:[n,i],Flags:s,CurTab:l,FirstTab:c,Selected:f,TabRatio:o}}function li(e){var r=Ar(18);r._W(2,0);r._W(2,0);r._W(2,29280);r._W(2,17600);r._W(2,56);r._W(2,0);r._W(2,0);r._W(2,1);r._W(2,500);return r}function ci(e,r,t){var a={dyHeight:e._R(2),fl:e._R(2)};switch(t&&t.biff||8){case 2:break;case 3:;case 4:e.l+=2;break;default:e.l+=10;break;}a.name=gn(e,0,t);return a}function fi(e,r){var t=Fn(e);t.isst=e._R(4);return t}function oi(e,r,t){var a=e.l+r;var n=Fn(e,6);if(t.biff==2)e.l++;var i=Sn(e,a-e.l,t);n.val=i;return n}function ui(e,r,t,a){var n=Ar(6+3+2*t.length);On(e,r,0,n);n._W(2,t.length);n._W(1,1);n._W(2*t.length,t,"utf16le");return n}function hi(e,r,t){var a=e._R(2);var n=Bn(e,0,t);return[a,n]}var di=Bn;function vi(e,r,t){var a=e.l+r;var n=t.biff==8||!t.biff?4:2;var i=e._R(n),s=e._R(n);var l=e._R(2),c=e._R(2);e.l=a;return{s:{r:i,c:l},e:{r:s,c:c}}}function bi(e,r){var t=Ar(14);t._W(4,e.s.r);t._W(4,e.e.r+1);t._W(2,e.s.c);t._W(2,e.e.c+1);t._W(2,0);return t}function pi(e,r){var t=e._R(2),a=e._R(2);var n=Nn(e);return{r:t,c:a,ixfe:n[0],rknum:n[1]}}function mi(e,r){var t=e.l+r-2;var a=e._R(2),n=e._R(2);var i=[];while(e.l>26];if(!a.cellStyles)return n;n.alc=i&7;n.fWrap=i>>3&1;n.alcV=i>>4&7;n.fJustLast=i>>7&1;n.trot=i>>8&255;n.cIndent=i>>16&15;n.fShrinkToFit=i>>20&1;n.iReadOrder=i>>22&2;n.fAtrNum=i>>26&1;n.fAtrFnt=i>>27&1;n.fAtrAlc=i>>28&1;n.fAtrBdr=i>>29&1;n.fAtrPat=i>>30&1;n.fAtrProt=i>>31&1;n.dgLeft=s&15;n.dgRight=s>>4&15;n.dgTop=s>>8&15;n.dgBottom=s>>12&15;n.icvLeft=s>>16&127;n.icvRight=s>>23&127;n.grbitDiag=s>>30&3;n.icvTop=l&127;n.icvBottom=l>>7&127;n.icvDiag=l>>14&127;n.dgDiag=l>>21&15;n.icvFore=c&127;n.icvBack=c>>7&127;n.fsxButton=c>>14&1;return n}function ki(e,r,t){return Ei(e,r,0,t)}function Si(e,r,t){return Ei(e,r,1,t)}function Bi(e,r,t){var a={};a.ifnt=e._R(2);a.numFmtId=e._R(2);a.flags=e._R(2);a.fStyle=a.flags>>2&1;r-=6;a.data=Ei(e,r,a.fStyle,t);return a}function Ci(e,r){e.l+=4;var t=[e._R(2),e._R(2)];if(t[0]!==0)t[0]--;if(t[1]!==0)t[1]--;if(t[0]>7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}function wi(e){var r=Ar(8);r._W(4,0);r._W(2,e[0]?e[0]+1:0);r._W(2,e[1]?e[1]+1:0);return r}function Ti(e,r,t){var a=Fn(e,6);if(t.biff==2)++e.l;var n=pn(e,2);a.val=n;a.t=n===true||n===false?"b":"e";return a}function Ii(e,r,t,a,n){var i=Ar(8);On(e,r,0,i);mn(t,n,i);return i}function xi(e,r){var t=Fn(e,6);var a=Rt(e,8);t.val=a;return t}function Ai(e,r,t,a){var n=Ar(14);On(e,r,0,n);Dt(t,n);return n}var Ri=_n;function Di(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(2);t.sbcch=i;if(i==1025||i==14849)return[i,n];if(i<1||i>255)throw new Error("Unexpected SupBook type: "+i);var s=kn(e,i);var l=[];while(a>e.l)l.push(Sn(e));return[i,n,s,l]}function Fi(e,r,t){var a=e._R(2);var n;var i={fBuiltIn:a&1,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=Mn(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}var Oi=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function Pi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var l=e._R(t&&t.biff==2?1:2);var c=0;if(!t||t.biff>=5){e.l+=2;c=e._R(2);e.l+=4}var f=kn(e,s,t);if(n&32)f=Oi[f.charCodeAt(0)];var o=a-e.l;if(t&&t.biff==2)--o;var u=a==e.l||l==0?[]:Uo(e,o,t,l);return{chKey:i,Name:f,itab:c,rgce:u}}function _i(e,r,t){if(t.biff<8)return yi(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(yn(e,t.biff>8?12:6,t));var s=[];return a}function yi(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=gn(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function Ni(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=kn(e,a,t);var s=kn(e,n,t);return[i,s]}function Mi(e,r,t){var a=Un(e,6);e.l++;var n=e._R(1);r-=8;return[Ho(e,r,t),n]}function Li(e,r,t){var a=Wn(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,Vo(e,r,t,a)]}function Ui(e,r){var t=e._R(4)!==0;var a=e._R(4)!==0;var n=e._R(4);return[t,a,n]}function Wi(e,r,t){if(t.biff<8)return;var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var l=Bn(e,0,t);if(t.biff<8)e._R(1);return[{r:a,c:n},l,s,i]}function Hi(e,r,t){return Wi(e,r,t)}function Vi(e,r){var t=[];var a=e._R(2);while(a--)t.push(Ln(e,r));return t}function Xi(e,r,t){if(t&&t.biff<8)return zi(e,r,t);var a=Hn(e,22);var n=jn(e,r-22,a[1]);return{cmo:a,ft:n}}var Gi=[];Gi[8]=function(e,r,t){var a=e.l+r;e.l+=10;var n=e._R(2);e.l+=4;var i=e._R(2);e.l+=2;var s=e._R(2);e.l+=4;var l=e._R(1);e.l+=l;e.l=a;return{fmt:n}};function zi(e,r,t){var a=e._R(4);var n=e._R(2);var i=e._R(2);var s=e._R(2);var l=e._R(2);var c=e._R(2);var f=e._R(2);var o=e._R(2);var u=e._R(2);var h=e._R(2);var d=e._R(2);var v=e._R(2);var b=e._R(2);e.l+=6;r-=36;var p=[];p.push((Gi[n]||Tr)(e,r,t));return{cmo:[i,n,s],ft:p}}function ji(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=Cn(e,6,t);var l=e._R(2);var c=e._R(2);var f=dn(e,2);var o=e._R(2);e.l+=o;for(var u=1;u=(h?l:2*l))break}if(n.length!==l&&n.length!==l*2){throw new Error("cchText: "+l+" != "+n.length)}e.l=a+r;return{t:n}}catch(v){e.l=a+r;return{t:n}}}function Ki(e,r){var t=Ln(e,8);e.l+=16;var a=An(e,r-24);return[t,a]}function Yi(e,r){var t=e.l+r;e._R(2);var a=Ln(e,8);var n=e._R((r-10)/2,"dbcs-cont");n=n.replace(m,"");return[a,n]}function $i(e,r){var t=[],a;a=e._R(2);t[0]=qt[a]||a;a=e._R(2);t[1]=qt[a]||a;return t}function Qi(e){if(!e)e=Ar(4);e._W(2,1);e._W(2,1);return e}function Zi(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Dn(e,8));return a}function Ji(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Dn(e,8));return a}function qi(e,r){e.l+=2;var t={cxfs:0,crc:0};t.cxfs=e._R(2);t.crc=e._R(4);return t}function es(e,r,t){if(!t.cellStyles)return Tr(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var l=e._R(a);var c=e._R(2);if(a==2)e.l+=2;return{s:n,e:i,w:s,ixfe:l,flags:c}}function rs(e,r,t){var a={};e.l+=16;a.header=Rt(e,8);a.footer=Rt(e,8);e.l+=2;return a}function ts(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function as(e){var r=Ar(2*e);for(var t=0;t0){if(n[n.l]===42){n.l+=u;continue}++n.l;a[++k]=[];S=0;for(S=0;S!=m.length;++S){var B=n.slice(n.l,n.l+m[S].len);n.l+=m[S].len;wr(B,0);var C=cptable.utils.decode(p,B);switch(m[S].type){case"C":a[k][S]=cptable.utils.decode(p,B);a[k][S]=a[k][S].trim();break;case"D":if(C.length===8)a[k][S]=new Date(+C.substr(0,4),+C.substr(4,2)-1,+C.substr(6,2));else a[k][S]=C;break;case"F":a[k][S]=parseFloat(C.trim());break;case"I":a[k][S]=B._R(4,"i");break;case"L":switch(C.toUpperCase()){case"Y":;case"T":a[k][S]=true;break;case"N":;case"F":a[k][S]=false;break;case" ":;case"?":a[k][S]=false;break;default:throw new Error("DBF Unrecognized L:|"+C+"|");}break;case"M":if(!s)throw new Error("DBF Unexpected MEMO for type "+i.toString(16));a[k][S]="##MEMO##"+B._R(4);break;case"N":a[k][S]=+C.replace(/\u0000/g,"").trim();break;case"T":var w=B._R(4),T=B._R(4);throw new Error(w+" | "+T);case"Y":a[k][S]=B.read(4,"i")/1e4;break;case"0":if(m[S].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+m[S].type);}}}if(i!=2)if(n.l0)switch(g){case"ID":break;case"E":break;case"B":break;case"O":break;case"P":if(m[1].charAt(0)=="P")c.push(p.substr(3).replace(/;;/g,";"));break;case"C":for(s=1;s0){u[a].hpt=v;u[a].hpx=Fl(v)}else if(v==0)u[a].hidden=true;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+p);}if(B<1)f=null;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+p);}}if(u.length>0)o["!rows"]=u;if(h.length>0)o["!cols"]=h;return[l,o]}function t(r,t){var a=e(r,t);var n=a[0],i=a[1];var s=at(n,t);A(i).forEach(function(e){s[e]=i[e]});return s}function a(e,r){return tt(t(e,r),r)}function n(e,r,t,a,n){var i="C;Y"+(t+1)+";X"+(a+1)+";K";switch(e.t){case"n":i+=e.v||0;if(e.f&&!e.F)i+=";E"+of(e.f,{r:t,c:a});break;case"b":i+=e.v?"TRUE":"FALSE";break;case"e":i+=e.w||e.v;break;case"d":i+='"'+(e.w||e.v)+'"';break;case"s":i+='"'+e.v.replace(/"/g,"")+'"';break;}return i}function i(e,r){r.forEach(function(r,t){var a="F;W"+(t+1)+" "+(t+1)+" ";if(r.hidden)a+="0";else{if(typeof r.width=="number")r.wpx=El(r.width);if(typeof r.wpx=="number")r.wch=kl(r.wpx);if(typeof r.wch=="number")a+=Math.round(r.wch)}if(a.charAt(a.length-1)!=" ")e.push(a)})}function s(e,r){r.forEach(function(r,t){var a="F;";if(r.hidden)a+="M0;";else if(r.hpt)a+="M"+20*r.hpt+";";else if(r.hpx)a+="M"+20*Dl(r.hpx)+";";if(a.length>2)e.push(a+"R"+(t+1))})}function l(e,r){var t=["ID;PWXL;N;E"],a=[];var l=qr(e["!ref"]),c;var f=Array.isArray(e);var o="\r\n";t.push("P;PGeneral");t.push("F;P0;DG0G8;M255");if(e["!cols"])i(t,e["!cols"]);if(e["!rows"])s(t,e["!rows"]);t.push("B;Y"+(l.e.r-l.s.r+1)+";X"+(l.e.c-l.s.c+1)+";D"+[l.s.c,l.s.r,l.e.c,l.e.r].join(" "));for(var u=l.s.r;u<=l.e.r;++u){for(var h=l.s.c;h<=l.e.c;++h){var d=Yr({r:u,c:h});c=f?(e[u]||[])[h]:e[d];if(!c||c.v==null&&(!c.f||c.F))continue;a.push(n(c,e,u,h,r))}}return t.join(o)+o+a.join(o)+o+"E"+o}return{to_workbook:a,to_sheet:t,from_sheet:l}}();var Es=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(H(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=e.split("\n"),a=-1,n=-1,i=0,s=[];for(;i!==t.length;++i){if(t[i].trim()==="BOT"){s[++a]=[];n=0;continue}if(a<0)continue;var l=t[i].trim().split(",");var c=l[0],f=l[1];++i;var o=t[i].trim();switch(+c){case-1:if(o==="BOT"){s[++a]=[];n=0;continue}else if(o!=="EOD")throw new Error("Unrecognized DIF special command "+o);break;case 0:if(o==="TRUE")s[a][n]=true;else if(o==="FALSE")s[a][n]=false;else if(!isNaN(z(f)))s[a][n]=z(f);else if(!isNaN(j(f).getDate()))s[a][n]=W(f);else s[a][n]=f;++n;break;case 1:o=o.substr(1,o.length-2);s[a][n++]=o!==""?o:null;break;}if(o==="EOD")break}return s}function t(r,t){return at(e(r,t),t)}function a(e,r){return tt(t(e,r),r)}var n=function(){var e=function t(e,r,a,n,i){e.push(r);e.push(a+","+n);e.push('"'+i.replace(/"/g,'""')+'"')};var r=function a(e,r,t,n){e.push(r+","+t);e.push(r==1?'"'+n.replace(/"/g,'""')+'"':n)};return function n(t,a){var n=[];var i=qr(t["!ref"]),s;var l=Array.isArray(t);e(n,"TABLE",0,1,"sheetjs");e(n,"VECTORS",0,i.e.r-i.s.r+1,"");e(n,"TUPLES",0,i.e.c-i.s.c+1,"");e(n,"DATA",0,0,"");for(var c=i.s.r;c<=i.e.r;++c){r(n,-1,0,"BOT");for(var f=i.s.c;f<=i.e.c;++f){var o=Yr({r:c,c:f});s=l?(t[c]||[])[f]:t[o];if(!s){r(n,1,0,"");continue}switch(s.t){case"n":var h=u?s.w:s.v;if(!h&&s.v!=null)h=s.v;if(h==null){if(u&&s.f&&!s.F)r(n,1,0,"="+s.f);else r(n,1,0,"")}else r(n,0,h,"V");break;case"b":r(n,0,s.v?1:0,s.v?"TRUE":"FALSE");break;case"s":r(n,1,0,!u||isNaN(s.v)?s.v:'="'+s.v+'"');break;case"d":if(!s.w)s.w=E.format(s.z||E._table[14],y(W(s.v)));if(u)r(n,0,s.w,"V");else r(n,1,0,s.w);break;default:r(n,1,0,"");}}}r(n,-1,0,"EOD");var d="\r\n";var v=n.join(d);return v}}();return{to_workbook:a,to_sheet:t,from_sheet:n}}();var ks=function(){function e(e,r,t,a,n){if(n.raw)r[t][a]=e;else if(e==="TRUE")r[t][a]=true;else if(e==="FALSE")r[t][a]=false;else if(e===""){}else if(!isNaN(z(e)))r[t][a]=z(e);else if(!isNaN(j(e).getDate()))r[t][a]=W(e);else r[t][a]=e}function r(r,t){var a=t||{};var n=[];if(!r||r.length===0)return n;var i=r.split(/[\r\n]/);var s=i.length-1;while(s>=0&&i[s].length===0)--s;var l=10,c=0;var f=0;for(;f<=s;++f){c=i[f].indexOf(" ");if(c==-1)c=i[f].length;else c++;l=Math.max(l,c)}for(f=0;f<=s;++f){n[f]=[];var o=0;e(i[f].slice(0,l).trim(),n,f,o,a);for(o=1;o<=(i[f].length-l)/10+1;++o)e(i[f].slice(l+(o-1)*10,l+o*10).trim(),n,f,o,a)}return n}function t(e){var r=[],t=false,a=0,n=0;for(;a=(r[9]||0))return",";return"\t"}function a(e,r){var a=r||{};var n="";if(o!=null&&a.dense==null)a.dense=o;var i=a.dense?[]:{};var s={s:{c:0,r:0},e:{c:0,r:0}};if(e.substr(0,4)=="sep="&&e.charCodeAt(5)==10){n=e.charAt(4);e=e.substr(6)}else n=t(e.substr(0,1024));var l=0,c=0,f=0;var u=0,h=0,d=n.charCodeAt(0),v=false,b=0;e=e.replace(/\r\n/gm,"\n");var p=a.dateNF!=null?C(a.dateNF):null;function m(){var r=e.slice(u,h);var t={};if(r.charAt(0)=='"'&&r.charAt(r.length-1)=='"')r=r.slice(1,-1).replace(/""/g,'"');if(r.length==0)t.t="z";else if(a.raw){t.t="s";t.v=r}else if(r.trim().length==0){t.t="s";t.v=r}else if(r.charCodeAt(0)==61){if(r.charCodeAt(1)==34&&r.charCodeAt(r.length-1)==34){t.t="s";t.v=r.slice(2,-1).replace(/""/g,'"')}else if(df(r)){t.t="n";t.f=r.substr(1)}else{t.t="s";t.v=r}}else if(r=="TRUE"){t.t="b";t.v=true}else if(r=="FALSE"){t.t="b";t.v=false}else if(!isNaN(f=z(r))){t.t="n";if(a.cellText!==false)t.w=r;t.v=f}else if(!isNaN(j(r).getDate())||p&&r.match(p)){t.z=a.dateNF||E._table[14];var n=0;if(p&&r.match(p)){r=w(r,a.dateNF,r.match(p)||[]);n=1}if(a.cellDates){t.t="d";t.v=W(r,n)}else{t.t="n";t.v=y(W(r,n))}if(a.cellText!==false)t.w=E.format(t.z,t.v instanceof Date?y(t.v):t.v);if(!a.cellNF)delete t.z}else{t.t="s";t.v=r}if(t.t=="z"){}else if(a.dense){if(!i[l])i[l]=[];i[l][c]=t}else i[Yr({c:c,r:l})]=t;u=h+1;if(s.e.c0)m();i["!ref"]=Jr(s);return i}function n(e,t){if(e.substr(0,4)=="sep=")return a(e,t);if(e.indexOf("\t")>=0||e.indexOf(",")>=0)return a(e,t);return at(r(e,t),t)}function i(e,r){var t="",a=r.type=="string"?[0,0,0,0]:sb(e,r);switch(r.type){case"base64":t=h.decode(e);break;case"binary":t=e;break;case"buffer":t=e.toString("binary");break;case"array":t=H(e);break;case"string":t=e;break;default:throw new Error("Unrecognized type "+r.type);}if(a[0]==239&&a[1]==187&&a[2]==191)t=Te(t.slice(3));return n(t,r)}function s(e,r){return tt(i(e,r),r)}function l(e,r){var t=[];var a=qr(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){var l=[];for(var c=a.s.c;c<=a.e.c;++c){var f=Yr({r:s,c:c});n=i?(e[s]||[])[c]:e[f];if(!n||n.v==null){l.push(" ");continue}var o=(n.w||(rt(n),n.w)||"").substr(0,10);while(o.length<10)o+=" ";l.push(o+(c==0?" ":""))}t.push(l.join(""))}return t.join("\n")}return{to_workbook:s,to_sheet:i,from_sheet:l}}();function Ss(e,r){var t=r||{},a=!!t.WTF;t.WTF=true;try{var n=gs.to_workbook(e,t);t.WTF=a;return n}catch(i){t.WTF=a;if(!i.message.match(/SYLK bad record ID/)&&a)throw i;return ks.to_workbook(e,r)}}var Bs=function(){function e(e,r,t){if(!e)return;wr(e,e.l||0);var a=t.Enum||S;while(e.l=4096)a.qpro=true;break;case 6:f=e;break;case 15:if(!a.qpro)e[1].v=e[1].v.substr(1);case 13:;case 14:;case 16:;case 51:if(o==14&&(e[2]&112)==112&&(e[2]&15)>1&&(e[2]&15)<15){e[1].z=a.dateNF||E._table[14];if(a.cellDates){e[1].t="d";e[1].v=N(e[1].v)}}if(a.dense){if(!n[e[0].r])n[e[0].r]=[];n[e[0].r][e[0].c]=e[1]}else n[Yr(e[0])]=e[1];break;}else switch(o){case 22:e[1].v=e[1].v.substr(1);case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>s){n["!ref"]=Jr(f);l[i]=n;n=a.dense?[]:{};f={s:{r:0,c:0},e:{r:0,c:0}};s=e[3];i="Sheet"+(s+1);c.push(i)}n[Yr(e[0])]=e[1];if(f.e.c>1;if(t[1].v&1){switch(a&7){case 1:a=(a>>3)*500;break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(a&7);}}t[1].v=a;return t}function v(e,r){var t=f(e,r);var a=e._R(4);var n=e._R(4);var i=e._R(2);if(i==65535){t[1].v=0;return t}var s=i&32768;i=(i&32767)-16446;t[1].v=(i>0?n<>>-i)+(i>-32?a<>>-(i+32));return t}function p(e,r){var t=v(e,14);e.l+=r-14;return t}function m(e,r){var t=f(e,r);var a=e._R(4);t[1].v=a>>6;return t}function g(e,r){var t=f(e,r);var a=e._R(8,"f");t[1].v=a;return t}function k(e,r){var t=g(e,14);e.l+=r-10;return t}var S={0:{n:"BOF",f:dn},1:{n:"EOF",f:Tr},2:{n:"CALCMODE",f:Tr},3:{n:"CALCORDER",f:Tr},4:{n:"SPLIT",f:Tr},5:{n:"SYNC",f:Tr},6:{n:"RANGE",f:a},7:{n:"WINDOW1",f:Tr},8:{n:"COLW1",f:Tr},9:{n:"WINTWO",f:Tr},10:{n:"COLW2",f:Tr},11:{n:"NAME",f:Tr},12:{n:"BLANK",f:Tr},13:{n:"INTEGER",f:s},14:{n:"NUMBER",f:l},15:{n:"LABEL",f:i},16:{n:"FORMULA",f:c},24:{n:"TABLE",f:Tr},25:{n:"ORANGE",f:Tr},26:{n:"PRANGE",f:Tr},27:{n:"SRANGE",f:Tr},28:{n:"FRANGE",f:Tr},29:{n:"KRANGE1",f:Tr},32:{n:"HRANGE",f:Tr},35:{n:"KRANGE2",f:Tr},36:{n:"PROTEC",f:Tr},37:{n:"FOOTER",f:Tr},38:{n:"HEADER",f:Tr},39:{n:"SETUP",f:Tr},40:{n:"MARGINS",f:Tr},41:{n:"LABELFMT",f:Tr},42:{n:"TITLES",f:Tr},43:{n:"SHEETJS",f:Tr},45:{n:"GRAPH",f:Tr},46:{n:"NGRAPH",f:Tr},47:{n:"CALCCOUNT",f:Tr},48:{n:"UNFORMATTED",f:Tr},49:{n:"CURSORW12",f:Tr},50:{n:"WINDOW",f:Tr},51:{n:"STRING",f:i},55:{n:"PASSWORD",f:Tr},56:{n:"LOCKED",f:Tr},60:{n:"QUERY",f:Tr},61:{n:"QUERYNAME",f:Tr},62:{n:"PRINT",f:Tr},63:{n:"PRINTNAME",f:Tr},64:{n:"GRAPH2",f:Tr},65:{n:"GRAPHNAME",f:Tr},66:{n:"ZOOM",f:Tr},67:{n:"SYMSPLIT",f:Tr},68:{n:"NSROWS",f:Tr},69:{n:"NSCOLS",f:Tr},70:{n:"RULER",f:Tr},71:{n:"NNAME",f:Tr},72:{n:"ACOMM",f:Tr},73:{n:"AMACRO",f:Tr},74:{n:"PARSE",f:Tr},255:{n:"",f:Tr}};var B={0:{n:"BOF",f:Tr},1:{n:"EOF",f:Tr},3:{n:"??",f:Tr},4:{n:"??",f:Tr},5:{n:"??",f:Tr},6:{n:"??",f:Tr},7:{n:"??",f:Tr},9:{n:"??",f:Tr},10:{n:"??",f:Tr},11:{n:"??",f:Tr},12:{n:"??",f:Tr},14:{n:"??",f:Tr},15:{n:"??",f:Tr},16:{n:"??",f:Tr},17:{n:"??",f:Tr},18:{n:"??",f:Tr},19:{n:"??",f:Tr},21:{n:"??",f:Tr},22:{n:"LABEL16",f:u},23:{n:"NUMBER17",f:v},24:{n:"NUMBER18",f:d},25:{n:"FORMULA19",f:p},26:{n:"??",f:Tr},27:{n:"??",f:Tr},28:{n:"??",f:Tr},29:{n:"??",f:Tr},30:{n:"??",f:Tr},31:{n:"??",f:Tr},33:{n:"??",f:Tr},37:{n:"NUMBER25",f:m},39:{n:"NUMBER27",f:g},40:{n:"FORMULA28",f:k},255:{n:"",f:Tr}};return{to_workbook:r}}();var Cs={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var ws=function Qb(){var e=De("t"),r=De("rPr"),t=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/,n=/\r\n/g;var i=function l(e,r,t){var a={},n=65001,i="";var s=e.match(ce),l=0;if(s)for(;l!=s.length;++l){var c=ue(s[l]);switch(c[0].replace(/\w*:/g,"")){case"":;case"":a.shadow=1;break;case"":break;case"":;case"":a.outline=1;break;case"":break;case"":;case"":a.strike=1;break;case"":break;case"":;case"":a.u=1;break;case"":break;case"":;case"":a.b=1;break;case"":break;case"":;case"":a.i=1;break;case"":break;case"');if(a.b){r.push("");t.push("")}if(a.i){r.push("");t.push("")}if(a.strike){r.push("");t.push("")}if(i=="superscript")i="sup";else if(i=="subscript")i="sub";if(i!=""){r.push("<"+i+">");t.push("")}t.push("");return n};function s(t){var a=[[],"",[]];var s=t.match(e),l=65001;if(!x(s))return"";a[1]=s[1];var c=t.match(r);if(x(c))l=i(c[1],a[0],a[2]);return a[0].join("")+a[1].replace(n,"
    ")+a[2].join("")}return function c(e){return e.replace(t,"").split(a).map(s).join("")}}();var Ts=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Is=/<(?:\w+:)?r>/;var xs=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function As(e,r){var t=r?r.cellHTML:true;var a={};if(!e)return null;var n;if(e.match(/^\s*<(?:\w+:)?t[^>]*>/)){a.t=be(Te(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||""));a.r=Te(e);if(t)a.h=Se(a.t)}else if(n=e.match(Is)){a.r=Te(e);a.t=be(Te((e.replace(xs,"").match(Ts)||[]).join("").replace(ce,"")));if(t)a.h=ws(a.r)}return a}var Rs=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/;var Ds=/<(?:\w+:)?(?:si|sstItem)>/g;var Fs=/<\/(?:\w+:)?(?:si|sstItem)>/; -function Os(e,r){var t=[],a="";if(!e)return t;var n=e.match(Rs);if(x(n)){a=n[2].replace(Ds,"").split(Fs);for(var i=0;i!=a.length;++i){var s=As(a[i].trim(),r);if(s!=null)t[t.length]=s}n=ue(n[1]);t.Count=n.count;t.Unique=n.uniqueCount}return t}ua.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Ps=/^\s|\s$|[\t\n\r]/;function _s(e,r){if(!r.bookSST)return"";var t=[se];t[t.length]=Ue("sst",null,{xmlns:Ve.main[0],count:e.Count,uniqueCount:e.Unique});for(var a=0;a!=e.length;++a){if(e[a]==null)continue;var n=e[a];var i="";if(n.r)i+=n.r;else{i+=""}i+="";t[t.length]=i}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function ys(e,r){return[e._R(4),e._R(4)]}function Ns(e,r){var t=[];var a=false;Rr(e,function n(e,i,s){switch(s){case 159:t.Count=e[0];t.Unique=e[1];break;case 19:t.push(e);break;case 160:return true;case 35:a=true;break;case 36:a=false;break;default:if(i.indexOf("Begin")>0){}else if(i.indexOf("End")>0){}if(!a||r.WTF)throw new Error("Unexpected record "+s+" "+i);}});return t}function Ms(e,r){if(!r)r=Ar(8);r._W(4,e.Count);r._W(4,e.Unique);return r}var Ls=ot;function Us(e,r){var t=Dr();Fr(t,"BrtBeginSst",Ms(e));for(var a=0;a=4)e.l+=r-4;return t}function Vs(e,r){var t={};t.id=e._R(0,"lpp4");t.R=Hs(e,4);t.U=Hs(e,4);t.W=Hs(e,4);return t}function Xs(e){var r=e._R(4);var t=e.l+r-4;var a={};var n=e._R(4);var i=[];while(n-- >0){var s={};s.t=e._R(4);s.v=e._R(0,"lpp4");i.push(s)}a.name=e._R(0,"lpp4");a.comps=i;return a}function Gs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(Xs(e));return t}function zs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(e._R(0,"lpp4"));return t}function js(e,r){var t={};var a=e._R(4);var n=e.l+a-4;e.l+=4;t.id=e._R(0,"lpp4");t.name=e._R(0,"lpp4");t.R=Hs(e,4);t.U=Hs(e,4);t.W=Hs(e,4);return t}function Ks(e,r){var t=js(e);t.ename=e._R(0,"8lpp4");t.blksz=e._R(4);t.cmode=e._R(4);if(e._R(4)!=4)throw new Error("Bad !Primary record");return t}function Ys(e,r){var t=e.l+r;var a={};a.Flags=e._R(4)&63;e.l+=4;a.AlgID=e._R(4);var n=false;switch(a.AlgID){case 26126:;case 26127:;case 26128:n=a.Flags==36;break;case 26625:n=a.Flags==4;break;case 0:n=a.Flags==16||a.Flags==4||a.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+a.AlgID;}if(!n)throw new Error("Encryption Flags/AlgID mismatch");a.AlgIDHash=e._R(4);a.KeySize=e._R(4);a.ProviderType=e._R(4);e.l+=8;a.CSPName=e._R(t-e.l>>1,"utf16le").slice(0,-1);e.l=t;return a}function $s(e,r){var t={};e.l+=4;t.Salt=e.slice(e.l,e.l+16);e.l+=16;t.Verifier=e.slice(e.l,e.l+16);e.l+=16;var a=e._R(4);t.VerifierHash=e.slice(e.l,e.l+a);e.l+=a;return t}function Qs(e,r){var t=Hs(e);switch(t.Minor){case 2:return Zs(e,t);case 3:return Js(e,t);case 4:return qs(e,t);}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}function Zs(e,r){var t=e._R(4);if((t&63)!=36)throw new Error("EncryptionInfo mismatch");var a=e._R(4);var n=e.l+a;var i=Ys(e,a);var s=$s(e,e.length-e.l);return{t:"Std",h:i,v:s}}function Js(e,r){throw new Error("File is password-protected: ECMA-376 Extensible")}function qs(e,r){throw new Error("File is password-protected: ECMA-376 Agile")}function el(e,r){var t={};var a=t.EncryptionVersionInfo=Hs(e,4);r-=4;if(a.Minor!=2)throw new Error("unrecognized minor version code: "+a.Minor);if(a.Major>4||a.Major<2)throw new Error("unrecognized major version code: "+a.Major);t.Flags=e._R(4);r-=4;var n=e._R(4);r-=4;t.EncryptionHeader=Ys(e,n);r-=n;t.EncryptionVerifier=$s(e,r);return t}function rl(e,r){var t={};var a=t.EncryptionVersionInfo=Hs(e,4);r-=4;if(a.Major!=1||a.Minor!=1)throw"unrecognized version code "+a.Major+" : "+a.Minor;t.Salt=e._R(16);t.EncryptedVerifier=e._R(16);t.EncryptedVerifierHash=e._R(16);return t}function tl(e){var r=0,t;var a=Ws(e);var n=a.length+1,i,s;var l,c,f;t=v(n);t[0]=a.length;for(i=1;i!=n;++i)t[i]=a[i-1];for(i=n-1;i>=0;--i){s=t[i];l=(r&16384)===0?0:1;c=r<<1&32767;f=l|c;r=f^s}return r^52811}var al=function(){var e=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0];var r=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163];var t=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628];var a=function(e){return(e/2|e*128)&255};var n=function(e,r){return a(e^r)};var i=function(e){var a=r[e.length-1];var n=104;for(var i=e.length-1;i>=0;--i){var s=e[i];for(var l=0;l!=7;++l){if(s&64)a^=t[n];s*=2;--n}}return a};return function(r){var t=Ws(r);var a=i(t);var s=t.length;var l=v(16);for(var c=0;c!=16;++c)l[c]=0;var f,o,u;if((s&1)===1){f=a>>8;l[s]=n(e[0],f);--s;f=a&255;o=t[t.length-1];l[s]=n(o,f)}while(s>0){--s;f=a>>8;l[s]=n(t[s],f);--s;f=a&255;l[s]=n(t[s],f)}s=15;u=15-t.length;while(u>0){f=a>>8;l[s]=n(e[u],f);--s;--u;f=a&255;l[s]=n(t[s],f);--s;--u}return l}}();var nl=function(e,r,t,a,n){if(!n)n=r;if(!a)a=al(e);var i,s;for(i=0;i!=r.length;++i){s=r[i];s^=a[t];s=(s>>5|s<<3)&255;n[i]=s;++t}return[n,t,a]};var il=function(e){var r=0,t=al(e);return function(e){var a=nl("",e,r,t);r=a[1];return a[0]}};function sl(e,r,t,a){var n={key:dn(e),verificationBytes:dn(e)};if(t.password)n.verifier=tl(t.password);a.valid=n.verificationBytes===n.verifier;if(a.valid)a.insitu_decrypt=il(t.password);return n}function ll(e,r,t){var a=t||{};a.Info=e._R(2);e.l-=2;if(a.Info===1)a.Data=rl(e,r);else a.Data=el(e,r);return a}function cl(e,r,t){var a={Type:t.biff>=8?e._R(2):0};if(a.Type)ll(e,r-2,a);else sl(e,r-2,t,a);return a}var fl=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(H(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){throw new Error("Unsupported RTF")}function t(r,t){return tt(e(r,t),t)}function a(){throw new Error("Unsupported")}return{to_workbook:t,to_sheet:e,from_sheet:a}}();function ol(e){var r=e.substr(e[0]==="#"?1:0,6);return[parseInt(r.substr(0,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(4,2),16)]}function ul(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().substr(1)}function hl(e){var r=e[0]/255,t=e[1]/255,a=e[2]/255;var n=Math.max(r,t,a),i=Math.min(r,t,a),s=n-i;if(s===0)return[0,0,r];var l=0,c=0,f=n+i;c=s/(f>1?2-f:f);switch(n){case r:l=((t-a)/s+6)%6;break;case t:l=(a-r)/s+2;break;case a:l=(r-t)/s+4;break;}return[l/6,c,f/2]}function dl(e){var r=e[0],t=e[1],a=e[2];var n=t*2*(a<.5?a:1-a),i=a-n/2;var s=[i,i,i],l=6*r;var c;if(t!==0)switch(l|0){case 0:;case 6:c=n*l;s[0]+=n;s[1]+=c;break;case 1:c=n*(2-l);s[0]+=c;s[1]+=n;break;case 2:c=n*(l-2);s[1]+=n;s[2]+=c;break;case 3:c=n*(4-l);s[1]+=c;s[2]+=n;break;case 4:c=n*(l-4);s[2]+=n;s[0]+=c;break;case 5:c=n*(6-l);s[2]+=c;s[0]+=n;break;}for(var f=0;f!=3;++f)s[f]=Math.round(s[f]*255);return s}function vl(e,r){if(r===0)return e;var t=hl(ol(e));if(r<0)t[2]=t[2]*(1+r);else t[2]=1-(1-t[2])*(1-r);return ul(dl(t))}var bl=6,pl=15,ml=1,gl=bl;function El(e){return Math.floor((e+Math.round(128/gl)/256)*gl)}function kl(e){return Math.floor((e-5)/gl*100+.5)/100}function Sl(e){return Math.round((e*gl+5)/gl*256)/256}function Bl(e){return((e-5)/gl*100+.5)/100}function Cl(e){return(e*gl+5)/gl*256/256}function wl(e){return Sl(kl(El(e)))}function Tl(e){var r=Math.abs(e-wl(e)),t=gl;if(r>.005)for(gl=ml;gl.5)t--;if(Math.abs(t)":;case"":break;case"":;case"":n={};if(t.diagonalUp){n.diagonalUp=t.diagonalUp}if(t.diagonalDown){n.diagonalDown=t.diagonalDown}r.Borders.push(n);break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in borders");}})}function _l(e,r,t,a){r.Fills=[];var n={};e[0].match(ce).forEach(function(e){var t=ue(e);switch(t[0]){case"":;case"":break;case"":;case"":n={};r.Fills.push(n);break;case"":break;case"":break;case"":r.Fills.push(n);n={};break;case"":if(t.patternType)n.patternType=t.patternType;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":break;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in fills");}})}function yl(e,r,t,a){r.Fonts=[];var n={};e[0].match(ce).forEach(function(e){var i=ue(e);switch(i[0]){case"":;case"":break;case"":break;case"
    ":;case"":r.Fonts.push(n);n={};break;case"":;case"":break;case"":n.bold=1;break;case"":n.italic=1;break;case"":n.underline=1;break;case"":n.strike=1;break;case"":n.outline=1;break;case"":n.shadow=1;break;case"":n.condense=1;break;case"":n.extend=1;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+i[0]+" in fonts");}})}function Nl(e,r,t){r.NumberFmt=[];var a=A(E._table);for(var n=0;n":;case"":;case"":break;case"0){if(c>392){for(c=392;c>60;--c)if(r.NumberFmt[c]==null)break;r.NumberFmt[c]=l}E.load(l,c)}}break;case"":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function Ml(e,r){var t=[""];[[5,8],[23,26],[41,44],[50,392]].forEach(function(r){for(var a=r[0];a<=r[1];++a)if(e[a]!=null)t[t.length]=Ue("numFmt",null,{numFmtId:a,formatCode:ge(e[a])})});if(t.length===1)return"";t[t.length]="";t[0]=Ue("numFmts",null,{count:t.length-2}).replace("/>",">");return t.join("")}var Ll=["numFmtId","fillId","fontId","borderId","xfId"];var Ul=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function Wl(e,r,t){r.CellXf=[];var a;e[0].match(ce).forEach(function(e){var n=ue(e),i=0;switch(n[0]){case"":;case"":;case"":break;case"":a=n;delete a[0];for(i=0;i392){for(i=392;i>60;--i)if(r.NumberFmt[a.numFmtId]==r.NumberFmt[i]){a.numFmtId=i;break}}r.CellXf.push(a);break;case"":break;case"":var s={};if(n.vertical)s.vertical=n.vertical;if(n.horizontal)s.horizontal=n.horizontal;if(n.textRotation!=null)s.textRotation=n.textRotation;if(n.indent)s.indent=n.indent;if(n.wrapText)s.wrapText=n.wrapText;a.alignment=s;break;case"":break;case"":;case"":break;case"":break;case"";if(r.length===2)return"";r[0]=Ue("cellXfs",null,{count:r.length-2}).replace("/>",">");return r.join("")}var Vl=function Zb(){var e=/]*)>[\S\s]*?<\/numFmts>/;var r=/]*)>[\S\s]*?<\/cellXfs>/;var t=/]*)>[\S\s]*?<\/fills>/;var a=/]*)>[\S\s]*?<\/fonts>/;var n=/]*)>[\S\s]*?<\/borders>/;return function i(s,l,c){var f={};if(!s)return f;s=s.replace(//gm,"").replace(//gm,"");var o;if(o=s.match(e))Nl(o,f,c);if(o=s.match(a))yl(o,f,l,c);if(o=s.match(t))_l(o,f,l,c);if(o=s.match(n))Pl(o,f,l,c);if(o=s.match(r))Wl(o,f,c);return f}}();var Xl=Ue("styleSheet",null,{xmlns:Ve.main[0],"xmlns:vt":Ve.vt});ua.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function Gl(e,r){var t=[se,Xl],a;if(e.SSF&&(a=Ml(e.SSF))!=null)t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';if(a=Hl(r.cellXfs))t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function zl(e,r){var t=e._R(2);var a=it(e,r-2);return[t,a]}function jl(e,r,t){if(!t)t=Ar(6+4*r.length);t._W(2,e);st(r,t);return t.length>t.l?t.slice(0,t.l):t}function Kl(e,r,t){var a={};a.sz=e._R(2)/20;var n=yt(e,2,t);if(n.fCondense)a.condense=1;if(n.fExtend)a.extend=1;if(n.fShadow)a.shadow=1;if(n.fOutline)a.outline=1;if(n.fStrikeout)a.strike=1;if(n.fItalic)a.italic=1;var i=e._R(2);if(i===700)a.bold=1;switch(e._R(2)){case 1:a.vertAlign="superscript";break;case 2:a.vertAlign="subscript";break;}var s=e._R(1);if(s!=0)a.underline=s;var l=e._R(1);if(l>0)a.family=l;var c=e._R(1);if(c>0)a.charset=c;e.l++;a.color=Pt(e,8);switch(e._R(1)){case 1:a.scheme="major";break;case 2:a.scheme="minor";break;}a.name=it(e,r-21);return a}function Yl(e,r){if(!r)r=Ar(25+4*32);r._W(2,e.sz*20);Nt(e,r);r._W(2,e.bold?700:400);var t=0;if(e.vertAlign=="superscript")t=1;else if(e.vertAlign=="subscript")t=2;r._W(2,t);r._W(1,e.underline||0);r._W(1,e.family||0);r._W(1,e.charset||0);r._W(1,0);_t(e.color,r);var a=0;if(e.scheme=="major")a=1;if(e.scheme=="minor")a=2;r._W(1,a);st(e.name,r);return r.length>r.l?r.slice(0,r.l):r}var $l=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];var Ql=D($l);var Zl=Tr;function Jl(e,r){if(!r)r=Ar(4*3+8*7+16*1);var t=Ql[e.patternType];if(t==null)t=40;r._W(4,t);var a=0;if(t!=40){_t({auto:1},r);_t({auto:1},r);for(;a<12;++a)r._W(4,0)}else{for(;a<4;++a)r._W(4,0);for(;a<12;++a)r._W(4,0)}return r.length>r.l?r.slice(0,r.l):r}function ql(e,r){var t=e._R(2);var a=e._R(2);Tr(e,r-4);return{ixfe:t,numFmtId:a}}function ec(e,r,t){if(!t)t=Ar(16);t._W(2,r||0);t._W(2,e.numFmtId||0);t._W(2,0);t._W(2,0);t._W(2,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);return t}function rc(e,r){if(!r)r=Ar(10);r._W(1,0);r._W(1,0);r._W(4,0);r._W(4,0);return r}var tc=Tr;function ac(e,r){if(!r)r=Ar(51);r._W(1,0);rc(null,r);rc(null,r);rc(null,r);rc(null,r);rc(null,r);return r.length>r.l?r.slice(0,r.l):r}function nc(e,r){if(!r)r=Ar(12+4*10);r._W(4,e.xfId);r._W(2,1);r._W(1,+e.builtinId);r._W(1,0);gt(e.name||"",r);return r.length>r.l?r.slice(0,r.l):r}function ic(e,r,t){var a=Ar(4+256*2*4);a._W(4,e);gt(r,a);gt(t,a);return a.length>a.l?a.slice(0,a.l):a}function sc(e,r,t){var a={};a.NumberFmt=[];for(var n in E._table)a.NumberFmt[n]=E._table[n];a.CellXf=[];a.Fonts=[];var i=[];var s=false;Rr(e,function l(e,n,c){switch(c){case 44:a.NumberFmt[e[0]]=e[1];E.load(e[1],e[0]);break;case 43:a.Fonts.push(e);if(e.color.theme!=null&&r&&r.themeElements&&r.themeElements.clrScheme){e.color.rgb=vl(r.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0)}break;case 1025:break;case 45:break;case 46:break;case 47:if(i[i.length-1]=="BrtBeginCellXFs"){a.CellXf.push(e)}break;case 48:;case 507:;case 572:;case 475:break;case 1171:;case 2102:;case 1130:;case 512:;case 2095:break;case 35:s=true;break;case 36:s=false;break;case 37:i.push(n);break;case 38:i.pop();break;default:if((n||"").indexOf("Begin")>0)i.push(n);else if((n||"").indexOf("End")>0)i.pop();else if(!s||t.WTF)throw new Error("Unexpected record "+c+" "+n);}});return a}function lc(e,r){if(!r)return;var t=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(e){for(var a=e[0];a<=e[1];++a)if(r[a]!=null)++t});if(t==0)return;Fr(e,"BrtBeginFmts",nt(t));[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(r[a]!=null)Fr(e,"BrtFmt",jl(a,r[a]))});Fr(e,"BrtEndFmts")}function cc(e,r){var t=1;if(t==0)return;Fr(e,"BrtBeginFonts",nt(t));Fr(e,"BrtFont",Yl({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}));Fr(e,"BrtEndFonts")}function fc(e,r){var t=2;if(t==0)return;Fr(e,"BrtBeginFills",nt(t));Fr(e,"BrtFill",Jl({patternType:"none"}));Fr(e,"BrtFill",Jl({patternType:"gray125"}));Fr(e,"BrtEndFills")}function oc(e,r){var t=1;if(t==0)return;Fr(e,"BrtBeginBorders",nt(t));Fr(e,"BrtBorder",ac({}));Fr(e,"BrtEndBorders")}function uc(e,r){var t=1;Fr(e,"BrtBeginCellStyleXFs",nt(t));Fr(e,"BrtXF",ec({numFmtId:0,fontId:0,fillId:0,borderId:0},65535));Fr(e,"BrtEndCellStyleXFs")}function hc(e,r){Fr(e,"BrtBeginCellXFs",nt(r.length));r.forEach(function(r){Fr(e,"BrtXF",ec(r,0))});Fr(e,"BrtEndCellXFs")}function dc(e,r){var t=1;Fr(e,"BrtBeginStyles",nt(1));Fr(e,"BrtStyle",nc({xfId:0,builtinId:0,name:"Normal"}));Fr(e,"BrtEndStyles")}function vc(e,r){var t=0;Fr(e,"BrtBeginDXFs",nt(t));Fr(e,"BrtEndDXFs")}function bc(e,r){var t=0;Fr(e,"BrtBeginTableStyles",ic(t,"TableStyleMedium9","PivotStyleMedium4"));Fr(e,"BrtEndTableStyles")}function pc(e,r){return}function mc(e,r){var t=Dr();Fr(t,"BrtBeginStyleSheet");lc(t,e.SSF);cc(t,e);fc(t,e);oc(t,e);uc(t,e);hc(t,r.cellXfs);dc(t,e);vc(t,e);bc(t,e);pc(t,e);Fr(t,"BrtEndStyleSheet");return t.end()}ua.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function gc(e,r,t){r.themeElements.clrScheme=[];var a={};(e[0].match(ce)||[]).forEach(function(e){var n=ue(e);switch(n[0]){case"":break;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":if(n[0].charAt(1)==="/"){r.themeElements.clrScheme.push(a);a={}}else{a.name=n[0].substring(3,n[0].length-1)}break;default:if(t&&t.WTF)throw new Error("Unrecognized "+n[0]+" in clrScheme");}})}function Ec(e,r,t){}function kc(e,r,t){}var Sc=/]*)>[\s\S]*<\/a:clrScheme>/;var Bc=/]*)>[\s\S]*<\/a:fontScheme>/;var Cc=/]*)>[\s\S]*<\/a:fmtScheme>/;function wc(e,r,t){r.themeElements={};var a;[["clrScheme",Sc,gc],["fontScheme",Bc,Ec],["fmtScheme",Cc,kc]].forEach(function(n){if(!(a=e.match(n[1])))throw new Error(n[0]+" not found in themeElements");n[2](a,r,t)})}var Tc=/]*)>[\s\S]*<\/a:themeElements>/;function Ic(e,r){if(!e||e.length===0)return Ic(xc());var t;var a={};if(!(t=e.match(Tc)))throw new Error("themeElements not found in theme");wc(t[0],a,r);return a}function xc(e,r){if(r&&r.themeXLSX)return r.themeXLSX;var t=[se];t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]=''; -t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";return t.join("")}function Ac(e,r,t){var a=e._R(4);if(a===124226)return;e.l+=r-4}function Rc(e,r){return e._R(4)}function Dc(e,r){var t={};t.xclrType=e._R(2);t.nTintShade=e._R(2);switch(t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=Fc(e,4);break;case 2:t.xclrValue=Rn(e,4);break;case 3:t.xclrValue=Rc(e,4);break;case 4:e.l+=4;break;}e.l+=8;return t}function Fc(e,r){return Tr(e,r)}function Oc(e,r){return Tr(e,r)}function Pc(e,r){var t=e._R(2);var a=e._R(2);var n=[t];switch(t){case 4:;case 5:;case 7:;case 8:;case 9:;case 10:;case 11:;case 13:n[1]=Dc(e,a);break;case 6:n[1]=Oc(e,a);break;case 14:;case 15:n[1]=e._R(a===5?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+a);}return n}function _c(e,r){var t=e.l+r;e.l+=2;var a=e._R(2);e.l+=2;var n=e._R(2);var i=[];while(n-- >0)i.push(Pc(e,t-e.l));return{ixfe:a,ext:i}}function yc(e,r){r.forEach(function(e){switch(e[0]){case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 13:break;case 14:break;case 15:break;}})}function Nc(e,r,t){var a=[];if(!e)return a;var n=0,i=1;(e.match(ce)||[]).forEach(function(e){var r=ue(e);switch(r[0]){case"":;case"":break;case"0){}else if((r||"").indexOf("End")>0){}else if(!n||t.WTF)throw new Error("Unexpected record "+s+" "+r);}});return a}function Wc(e,r){}function Hc(e,r,t){var a=t||{}}function Vc(e,r,t){if(!e)return e;var a=t||{};var n=false,i=false;Rr(e,function s(e,r,t){if(i)return;switch(t){case 359:;case 363:;case 364:;case 366:;case 367:;case 368:;case 369:;case 370:;case 371:;case 472:;case 577:;case 578:;case 579:;case 580:;case 581:;case 582:;case 583:;case 584:;case 585:;case 586:;case 587:break;case 35:n=true;break;case 36:n=false;break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!n||a.WTF)throw new Error("Unexpected record "+t.toString(16)+" "+r);}},a)}ua.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";ua.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";function Xc(e,r){if(!e)return"??";var t=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return r["!id"][t].Target}var Gc=1024;function zc(e,r){var t=[21600,21600];var a=["m0,0l0",t[1],t[0],t[1],t[0],"0xe"].join(",");var n=[Ue("xml",null,{"xmlns:v":Xe.v,"xmlns:o":Xe.o,"xmlns:x":Xe.x,"xmlns:mv":Xe.mv}).replace(/\/>/,">"),Ue("o:shapelayout",Ue("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ue("v:shapetype",[Ue("v:stroke",null,{joinstyle:"miter"}),Ue("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:t.join(","),path:a})];while(Gc",Ue("v:fill",Ue("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}),{color2:"#BEFF82",angle:"-180",type:"gradient"}),Ue("v:shadow",null,{on:"t",obscured:"t"}),Ue("v:path",null,{"o:connecttype":"none"}),'
    ','',"","",Me("x:Anchor",[e.c,0,e.r,0,e.c+3,100,e.r+5,100].join(",")),Me("x:AutoFill","False"),Me("x:Row",String(e.r)),Me("x:Column",String(e.c)),"","",""])});n.push("");return n.join("")}ua.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";function jc(e,r,t,a,n){for(var i=0;i!=r.length;++i){var s=r[i];var l=xd(ee(e,s.replace(/^\//,""),true),s,n);if(!l||!l.length)continue;var c=A(t);for(var f=0;f!=c.length;++f){var o=c[f];var u=a[o];if(u){var h=u[s];if(h)Kc(o,t[o],l)}}}}function Kc(e,r,t){var a=Array.isArray(r);var n,i;t.forEach(function(e){if(a){i=Kr(e.ref);if(!r[i.r])r[i.r]=[];n=r[i.r][i.c]}else n=r[e.ref];if(!n){n={};if(a)r[i.r][i.c]=n;else r[e.ref]=n;var t=qr(r["!ref"]||"BDWGO1000001:A1");var s=Kr(e.ref);if(t.s.r>s.r)t.s.r=s.r;if(t.e.rs.c)t.s.c=s.c;if(t.e.c/))return[];var t=[];var a=[];var n=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^>]*>(.*)/);if(r)t.push(r[1])});var i=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e,n){if(e===""||e.trim()==="")return;var i=e.match(/<(?:\w+:)?comment[^>]*>/);if(!i)return;var s=ue(i[0]);var l={author:s.authorId&&t[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid};var c=Kr(s.ref);if(r.sheetRows&&r.sheetRows<=c.r)return;var f=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/);var o=!!f&&!!f[1]&&As(f[1])||{r:"",t:"",h:""};l.r=o.r;if(o.r=="")o.t=o.h="";l.t=o.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)l.h=o.h;a.push(l)});return a}var $c=Ue("comments",null,{xmlns:Ve.main[0]});function Qc(e,r){var t=[se,$c];var a=[];t.push("");e.map(function(e){return e[1]}).forEach(function(e){e.map(function(e){return ge(e.a)}).forEach(function(e){if(a.indexOf(e)>-1)return;a.push(e);t.push(""+e+"")})});t.push("");t.push("");e.forEach(function(e){e[1].forEach(function(r){t.push('');t.push(Me("t",r.t==null?"":r.t));t.push("")})});t.push("");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Zc(e,r){var t={};t.iauthor=e._R(4);var a=xt(e,16);t.rfx=a.s;t.ref=Yr(a.s);e.l+=16;return t}function Jc(e,r){if(r==null)r=Ar(36);r._W(4,e[1].iauthor);At(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var qc=it;function ef(e){return st(e.slice(0,54))}function rf(e,r){var t=[];var a=[];var n={};var i=false;Rr(e,function s(e,l,c){switch(c){case 632:a.push(e);break;case 635:n=e;break;case 637:n.t=e.t;n.h=e.h;n.r=e.r;break;case 636:n.author=a[n.iauthor];delete n.iauthor;if(r.sheetRows&&r.sheetRows<=n.rfx.r)break;if(!n.t)n.t="";delete n.rfx;t.push(n);break;case 35:i=true;break;case 36:i=false;break;case 37:break;case 38:break;default:if((l||"").indexOf("Begin")>0){}else if((l||"").indexOf("End")>0){}else if(!i||r.WTF)throw new Error("Unexpected record "+c+" "+l);}});return t}function tf(e,r){var t=Dr();var a=[];Fr(t,"BrtBeginComments");{Fr(t,"BrtBeginCommentAuthors");e.forEach(function(e){e[1].forEach(function(e){if(a.indexOf(e.a)>-1)return;a.push(e.a.slice(0,54));Fr(t,"BrtCommentAuthor",ef(e.a))})});Fr(t,"BrtEndCommentAuthors")}{Fr(t,"BrtBeginCommentList");e.forEach(function(e){e[1].forEach(function(r){r.iauthor=a.indexOf(r.a);var n={s:Kr(e[0]),e:Kr(e[0])};Fr(t,"BrtBeginComment",Jc([n,r]));if(r.t&&r.t.length>0)Fr(t,"BrtCommentText",ht(r));Fr(t,"BrtEndComment");delete r.iauthor})});Fr(t,"BrtEndCommentList")}Fr(t,"BrtEndComments");return t.end()}ua.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet";ua.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";function af(e,r,t,a,n,i){return{"!type":"dialog"}}function nf(e,r,t,a,n,i){return{"!type":"dialog"}}function sf(e,r,t,a,n,i){return{"!type":"macro"}}function lf(e,r,t,a,n,i){return{"!type":"macro"}}var cf=function(){var e=/(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g;var r={r:0,c:0};function t(e,t,a,n,i,s){var l=n.length>0?parseInt(n,10)|0:0,c=s.length>0?parseInt(s,10)|0:0;if(c<0&&i.length===0)c=0;var f=false,o=false;if(i.length>0||s.length==0)f=true;if(f)c+=r.c;else--c;if(a.length>0||n.length==0)o=true;if(o)l+=r.r;else--l;return t+(f?"":"$")+Xr(c)+(o?"":"$")+Ur(l)}return function a(n,i){r=i;return n.replace(e,t)}}();var ff=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)([1-9]\d{0,5}|10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6])(?![_.\(A-Za-z0-9])/g;var of=function(){return function e(r,t){return r.replace(ff,function(e,r,a,n,i,s,l,c){var f=Vr(n)-t.c;var o=Lr(s)-t.r;return r+"R"+(o==0?"":"["+o+"]")+"C"+(f==0?"":"["+f+"]")})}}();function uf(e,r){return e.replace(ff,function(e,t,a,n,i,s,l,c){return t+(a=="$"?a+n:Xr(Vr(n)+r.c))+(i=="$"?i+s:Ur(Lr(s)+r.r))})}function hf(e,r,t){var a=Zr(r),n=a.s,i=Kr(t);var s={r:i.r-n.r,c:i.c-n.c};return uf(e,s)}function df(e){if(e.length==1)return false;return true}function vf(e){return function(r,t){r.l+=e;return}}function bf(e){e.l+=1;return}function pf(e,r){var t=e._R(r==1?1:2);return[t&16383,t>>14&1,t>>15&1]}function mf(e,r,t){var a=2;if(t){if(t.biff>=2&&t.biff<=5)return gf(e,r,t);else if(t.biff==12)a=4}var n=e._R(a),i=e._R(a);var s=pf(e,2);var l=pf(e,2);return{s:{r:n,c:s[0],cRel:s[1],rRel:s[2]},e:{r:i,c:l[0],cRel:l[1],rRel:l[2]}}}function gf(e){var r=pf(e,2),t=pf(e,2);var a=e._R(1);var n=e._R(1);return{s:{r:r[0],c:a,cRel:r[1],rRel:r[2]},e:{r:t[0],c:n,cRel:t[1],rRel:t[2]}}}function Ef(e,r){var t=e._R(r==12?4:2),a=e._R(r==12?4:2);var n=pf(e,2);var i=pf(e,2);return{s:{r:t,c:n[0],cRel:n[1],rRel:n[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}function kf(e,r,t){if(t&&t.biff>=2&&t.biff<=5)return Sf(e,r,t);var a=e._R(t&&t.biff==12?4:2);var n=pf(e,2);return{r:a,c:n[0],cRel:n[1],rRel:n[2]}}function Sf(e,r,t){var a=pf(e,2);var n=e._R(1);return{r:a[0],c:n,cRel:a[1],rRel:a[2]}}function Bf(e,r,t){var a=t&&t.biff?t.biff:8;if(a>=2&&a<=5)return Cf(e,r,t);var n=e._R(a>=12?4:2);var i=e._R(2);var s=(i&32768)>>15,l=(i&16384)>>14;i&=16383;if(l==1)while(n>524287)n-=1048576;if(s==1)while(i>8191)i=i-16384;return{r:n,c:i,cRel:s,rRel:l}}function Cf(e,r){var t=e._R(2);var a=e._R(1);var n=(t&32768)>>15,i=(t&16384)>>14;t&=16383;if(n==1&&t>=8192)t=t-16384;if(i==1&&a>=128)a=a-256;return{r:t,c:a,cRel:i,rRel:n}}function wf(e,r,t){var a=(e[e.l++]&96)>>5;var n=mf(e,t.biff>=2&&t.biff<=5?6:8,t);return[a,n]}function Tf(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2,"i");var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}var s=mf(e,i,t);return[a,n,s]}function If(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t&&t.biff>8?12:8;return[a]}function xf(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}e.l+=i;return[a,n]}function Af(e,r,t){var a=(e[e.l++]&96)>>5;var n=Ef(e,t&&t.biff>8?12:8,t);return[a,n]}function Rf(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t.biff==2?6:t.biff==12?14:7;return[a]}function Df(e,r){var t=e[e.l+1]&1;var a=1;e.l+=4;return[t,a]}function Ff(e,r,t){e.l+=2;var a=e._R(t&&t.biff==2?1:2);var n=[];for(var i=0;i<=a;++i)n.push(e._R(t&&t.biff==2?1:2));return n}function Of(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Pf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function _f(e,r){var t=e[e.l+1]&255?1:0;e.l+=2;return[t,e._R(2)]}function yf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=t&&t.biff==2?3:4;return[a]}function Nf(e,r){var t=e._R(1),a=e._R(1);return[t,a]}function Mf(e,r){e._R(2);return Nf(e,2)}function Lf(e,r){e._R(2);return Nf(e,2)}function Uf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=kf(e,0,t);return[n,i]}function Wf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=Bf(e,0,t);return[a,n]}function Hf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=e._R(2);var i=kf(e,0,t);return[a,n,i]}function Vf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=e._R(t&&t.biff<=3?1:2);return[nu[i],au[i],n]}function Xf(e,r,t){e.l++;var a=e._R(1),n=t&&t.biff<=3?[0,e._R(1)]:Gf(e);return[a,(n[0]===0?au:tu)[n[1]]]}function Gf(e,r){return[e[e.l+1]>>7,e._R(2)&32767]}function zf(e,r,t){e.l+=t&&t.biff==2?3:4;return}var jf=bf;function Kf(e,r,t){e.l++;if(t&&t.biff==12)return[e._R(4,"i"),0];var a=e._R(2);var n=e._R(t&&t.biff==2?1:2);return[a,n]}function Yf(e,r){e.l++;return Ft[e._R(1)]}function $f(e,r){e.l++;return e._R(2)}function Qf(e,r){e.l++;return e._R(1)!==0}function Zf(e,r){e.l++;return Rt(e,8)}function Jf(e,r,t){e.l++;return gn(e,r-1,t)}function qf(e,r){var t=[e._R(1)];if(r==12)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2;break;}switch(t[0]){case 4:t[1]=un(e,1)?"TRUE":"FALSE";e.l+=7;break;case 16:t[1]=Ft[e[e.l]];e.l+=8;break;case 0:e.l+=8;break;case 1:t[1]=Rt(e,8);break;case 2:t[1]=Bn(e,0,{biff:r>0&&r<8?2:r});break;}return t}function eo(e,r){var t=e._R(2);var a=[];for(var n=0;n!=t;++n)a.push(Ln(e,8));return a}function ro(e,r,t){var a=0,n=0;if(t.biff==12){a=e._R(4);n=e._R(4)}else{n=1+e._R(1);a=1+e._R(2)}if(t.biff>=2&&t.biff<8){--a;if(--n==0)n=256}for(var i=0,s=[];i!=a&&(s[i]=[]);++i)for(var l=0;l!=n;++l)s[i][l]=qf(e,t.biff);return s}function to(e,r,t){var a=e._R(1)>>>5&3;var n=!t||t.biff>=8?4:2;var i=e._R(n);switch(t.biff){case 2:e.l+=5;break;case 3:;case 4:e.l+=8;break;case 5:e.l+=12;break;}return[a,0,i]}function ao(e,r,t){if(t.biff==5)return no(e,r,t);var a=e._R(1)>>>5&3;var n=e._R(2);var i=e._R(4);return[a,n,i]}function no(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(2,"i");e.l+=8;var i=e._R(2);e.l+=12;return[a,n,i]}function io(e,r,t){var a=e._R(1)>>>5&3;e.l+=t&&t.biff==2?3:4;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function so(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function lo(e,r,t){var a=e._R(1)>>>5&3;e.l+=4;if(t.biff==12)e.l+=2;return[a]}function co(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=4;if(t)switch(t.biff){case 5:throw new Error("PtgRefErr3d -- 5");case 12:i=6;break;}e.l+=i;return[a,n]}var fo=bf;var oo=bf;var uo=bf;var ho=bf;var vo=bf;var bo=bf;var po=bf;var mo=bf;var go=bf;var Eo=bf;var ko=bf;var So=bf;var Bo=bf;var Co=bf;var wo=bf;var To=bf;var Io=bf;var xo=bf;var Ao=bf;var Ro=Tr;var Do=Tr;var Fo=Tr;var Oo={1:{n:"PtgExp",f:Kf},2:{n:"PtgTbl",f:Fo},3:{n:"PtgAdd",f:fo},4:{n:"PtgSub",f:To},5:{n:"PtgMul",f:Eo},6:{n:"PtgDiv",f:oo},7:{n:"PtgPower",f:Co},8:{n:"PtgConcat",f:jf},9:{n:"PtgLt",f:mo},10:{n:"PtgLe",f:po},11:{n:"PtgEq",f:uo},12:{n:"PtgGe",f:ho},13:{n:"PtgGt",f:vo},14:{n:"PtgNe",f:ko},15:{n:"PtgIsect",f:bo},16:{n:"PtgUnion",f:xo},17:{n:"PtgRange",f:wo},18:{n:"PtgUplus",f:Ao},19:{n:"PtgUminus",f:Io},20:{n:"PtgPercent",f:Bo},21:{n:"PtgParen",f:So},22:{n:"PtgMissArg",f:go},23:{n:"PtgStr",f:Jf},28:{n:"PtgErr",f:Yf},29:{n:"PtgBool",f:Qf},30:{n:"PtgInt",f:$f},31:{n:"PtgNum",f:Zf},32:{n:"PtgArray",f:Rf},33:{n:"PtgFunc",f:Vf},34:{n:"PtgFuncVar",f:Xf},35:{n:"PtgName",f:to},36:{n:"PtgRef",f:Uf},37:{n:"PtgArea",f:wf},38:{n:"PtgMemArea",f:io},39:{n:"PtgMemErr",f:Ro},40:{n:"PtgMemNoMem",f:Do},41:{n:"PtgMemFunc",f:so},42:{n:"PtgRefErr",f:lo},43:{n:"PtgAreaErr",f:If},44:{n:"PtgRefN",f:Wf},45:{n:"PtgAreaN",f:Af},57:{n:"PtgNameX",f:ao},58:{n:"PtgRef3d",f:Hf},59:{n:"PtgArea3d",f:Tf},60:{n:"PtgRefErr3d",f:co},61:{n:"PtgAreaErr3d",f:xf},255:{}};var Po={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};(function(){for(var e in Po)Oo[e]=Oo[Po[e]]})();var _o={};var yo={1:{n:"PtgAttrSemi",f:yf},2:{n:"PtgAttrIf",f:Pf},4:{n:"PtgAttrChoose",f:Ff},8:{n:"PtgAttrGoto",f:Of},16:{n:"PtgAttrSum",f:zf},32:{n:"PtgAttrBaxcel",f:Df},64:{n:"PtgAttrSpace",f:Mf},65:{n:"PtgAttrSpaceSemi",f:Lf},128:{n:"PtgAttrIfError",f:_f},255:{}};function No(e,r,t){var a=e.l+r;var n=Fn(e,6);if(t.biff==2)++e.l;var i=Mo(e,8);var s=e._R(1);if(t.biff!=2){e._R(1);if(t.biff>=5){var l=e._R(4)}}var c=Wo(e,a-e.l,t);return{cell:n,val:i[0],formula:c,shared:s>>3&1,tt:i[1]}}function Mo(e){var r;if(hr(e,e.l+6)!==65535)return[Rt(e),"n"];switch(e[e.l]){case 0:e.l+=8;return["String","s"];case 1:r=e[e.l+2]===1;e.l+=8;return[r,"b"];case 2:r=e[e.l+2];e.l+=8;return[r,"e"];case 3:e.l+=8;return["","s"];}return[]}function Lo(e,r,t,a){if(a.biff<8)return Tr(e,r);var n=e.l+r;var i=[];for(var s=0;s!==t.length;++s){switch(t[s][0]){case"PtgArray":t[s][1]=ro(e,0,a);i.push(t[s][1]);break;case"PtgMemArea":t[s][2]=eo(e,t[s][1]);i.push(t[s][2]);break;case"PtgExp":if(a&&a.biff==12){t[s][1][1]=e._R(4);i.push(t[s][1])}break;default:break;}}r=n-e.l;if(r!==0)i.push(Tr(e,r));return i}function Uo(e,r,t,a){var n=e.l+r;var i=Xo(e,a,t);var s;if(n!==e.l)s=Lo(e,n-e.l,i,t);return[i,s]}function Wo(e,r,t){var a=e.l+r,n=t.biff==2?1:2;var i,s=e._R(n);if(s==65535)return[[],Tr(e,r-2)];var l=Xo(e,s,t);if(r!==s+n)i=Lo(e,r-s-n,l,t);return[l,i]}function Ho(e,r,t){var a=e.l+r;var n,i=e._R(2);var s=Xo(e,i,t);if(i==65535)return[[],Tr(e,r-2)];if(r!==i+2)n=Lo(e,a-i-2,s,t);return[s,n]}function Vo(e,r,t,a){var n=e.l+r,i=t.biff==2?1:2;var s,l=e._R(i);if(l==65535)return[[],Tr(e,r-2)];var c=Xo(e,l,t);if(r!==l+i)s=Lo(e,r-l-i,c,t);return[c,s]}function Xo(e,r,t){var a=e.l+r;var n,i,s=[];while(a!=e.l){r=a-e.l;i=e[e.l];n=Oo[i];if(i===24||i===25){i=e[e.l+1];n=(i===24?_o:yo)[i]}if(!n||!n.f){Tr(e,r)}else{s.push([n.n,n.f(e,r,t)])}}return s}function Go(e){var r=[];for(var t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function jo(e){if(!e)return"";if(e.indexOf(" ")>-1)return"'"+e+"'";return e}function Ko(e,r,t){return e.SheetNames[r]}function Yo(e,r,t){return jo(Ko(e,r,t))}function $o(e,r,t,a,n){var i={s:{c:0,r:0},e:{c:0,r:0}};var s=[],l,c,f,o,u=0,h=0,d,v="";if(!e[0]||!e[0][0])return"";var b=-1,p="";for(var m=0,g=e[0].length;m=0){switch(e[0][b][1][0]){case 0:p=G(" ",e[0][b][1][1]);break;case 1:p=G("\r",e[0][b][1][1]);break;default:p="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][b][1][0]);}c=c+p;b=-1}s.push(c+zo[E[0]]+l);break;case"PtgIsect":l=s.pop();c=s.pop();s.push(c+" "+l);break;case"PtgUnion":l=s.pop();c=s.pop();s.push(c+","+l);break;case"PtgRange":l=s.pop();c=s.pop();s.push(c+":"+l);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":f=E[1][0];o=Or(E[1][1],i,n);s.push(_r(o));break;case"PtgRefN":f=E[1][0];o=t?Or(E[1][1],t,n):E[1][1];s.push(_r(o));break;case"PtgRef3d":f=E[1][0];u=E[1][1];o=Or(E[1][2],i,n);v=Yo(a,u,n);var k=v;s.push(v+"!"+_r(o));break;case"PtgFunc":;case"PtgFuncVar":var S=E[1][0],B=E[1][1];if(!S)S=0;var C=S==0?[]:s.slice(-S);s.length-=S;if(B==="User")B=C.shift();s.push(B+"("+C.join(",")+")");break;case"PtgBool":s.push(E[1]?"TRUE":"FALSE");break;case"PtgInt":s.push(E[1]);break;case"PtgNum":s.push(String(E[1]));break;case"PtgStr":s.push('"'+E[1]+'"');break;case"PtgErr":s.push(E[1]);break;case"PtgAreaN":f=E[1][0];d=Pr(E[1][1],i,n);s.push(yr(d,n));break;case"PtgArea":f=E[1][0];d=Pr(E[1][1],i,n);s.push(yr(d,n));break;case"PtgArea3d":f=E[1][0];u=E[1][1];d=E[1][2];v=a&&a[1]?a[1][u+1]:"**MISSING**";s.push(v+"!"+yr(d,n));break;case"PtgAttrSum":s.push("SUM("+s.pop()+")");break;case"PtgAttrSemi":break;case"PtgName":h=E[1][2];var w=(a.names||[])[h-1]||(a[0]||[])[h];var T=w?w.Name:"SH33TJSERR7"+String(h);if(T in iu)T=iu[T];s.push(T);break;case"PtgNameX":var I=E[1][1];h=E[1][2];var x;if(n.biff<=5){if(I<0)I=-I;if(a[I])x=a[I][h]}else{var A=a.SheetNames[I];var R="";if(((a[I]||[])[0]||[])[0]==14849){}else if(((a[I]||[])[0]||[])[0]==1025){if(a[I][h]&&a[I][h].itab>0){R=a.SheetNames[a[I][h].itab-1]+"!"}}else R=a.SheetNames[h-1]+"!";if(a[I]&&a[I][h])R+=a[I][h].Name;else if(a[0]&&a[0][h])R+=a[0][h].Name;else R+="SH33TJSERRX";s.push(R);break}if(!x)x={Name:"SH33TJSERRY"};s.push(x.Name);break;case"PtgParen":var D="(",F=")";if(b>=0){p="";switch(e[0][b][1][0]){case 2:D=G(" ",e[0][b][1][1])+D;break;case 3:D=G("\r",e[0][b][1][1])+D;break;case 4:F=G(" ",e[0][b][1][1])+F;break;case 5:F=G("\r",e[0][b][1][1])+F;break;default:if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][b][1][0]);}b=-1}s.push(D+s.pop()+F);break;case"PtgRefErr":s.push("#REF!");break;case"PtgRefErr3d":s.push("#REF!");break;case"PtgExp":o={c:E[1][1],r:E[1][0]};var O={c:t.c,r:t.r};if(a.sharedf[Yr(o)]){var P=a.sharedf[Yr(o)];s.push($o(P,i,O,a,n))}else{var _=false;for(l=0;l!=a.arrayf.length;++l){c=a.arrayf[l];if(o.cc[0].e.c)continue;if(o.rc[0].e.r)continue;s.push($o(c[1],i,O,a,n));_=true;break}if(!_)s.push(E[1])}break;case"PtgArray":s.push("{"+Go(E[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":;case"PtgAttrSpaceSemi":b=m;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":s.push("");break;case"PtgAreaErr":s.push("#REF!");break;case"PtgAreaErr3d":s.push("#REF!");break;case"PtgMemFunc":break;default:throw new Error("Unrecognized Formula Token: "+String(E));}var y=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(b>=0&&y.indexOf(e[0][m][0])==-1){E=e[0][b];var N=true;switch(E[1][0]){case 4:N=false;case 0:p=G(" ",E[1][1]);break;case 5:N=false;case 1:p=G("\r",E[1][1]);break;default:p="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+E[1][0]);}s.push((N?p:"")+s.pop()+(N?"":p));b=-1}}if(s.length>1&&n.WTF)throw new Error("bad formula stack");return s[0]}function Qo(e,r,t){var a=e.l+r;var n=e._R(4);var i=Xo(e,n,t);var s=e._R(4);var l=s>0?Lo(e,s,i,t):null;return[i,l]}var Zo=Qo;var Jo=Qo;var qo=Qo;var eu=Qo;var ru={1:"REFERENCE",2:"VALUE",3:"ARRAY"};var tu={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD", -478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"};var au={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"};var nu={2:1,3:1,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,90:1,97:2,98:1,99:1,101:3,102:3,105:1,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};var iu={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFNA":"IFNA","_xlfn.IFERROR":"IFERROR","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function su(e){if(e.substr(0,3)=="of:")e=e.substr(3);if(e.charCodeAt(0)==61){e=e.substr(1);if(e.charCodeAt(0)==61)e=e.substr(1)}e=e.replace(/COM\.MICROSOFT\./g,"");e=e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(e,r){return r.replace(/\./g,"")});e=e.replace(/\[.(#[A-Z]*[?!])\]/g,"$1");return e.replace(/[;~]/g,",").replace(/\|/g,";")}function lu(e){var r="of:="+e.replace(ff,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function cu(e){var r=e.split(":");var t=r[0].split(".")[0];return[t,r[0].split(".")[1]+":"+r[1].split(".")[1]]}var fu={};var ou={};ua.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];function uu(e,r){for(var t=0,a=e.length;t-1){t.width=Sl(a);t.customWidth=1}else if(r.width!=null)t.width=r.width;if(r.hidden)t.hidden=true;return t}function du(e,r){if(!e)return;var t=[.7,.7,.75,.75,.3,.3];if(r=="xlml")t=[1,1,1,1,.5,.5];if(e.left==null)e.left=t[0];if(e.right==null)e.right=t[1];if(e.top==null)e.top=t[2];if(e.bottom==null)e.bottom=t[3];if(e.header==null)e.header=t[4];if(e.footer==null)e.footer=t[5]}function vu(e,r,t){var a=t.revssf[r.z!=null?r.z:"General"];var n=60,i=e.length;if(a==null&&t.ssf){for(;n<392;++n)if(t.ssf[n]==null){E.load(r.z,n);t.ssf[n]=r.z;t.revssf[r.z]=a=n;break}}for(n=0;n!=i;++n)if(e[n].numFmtId===a)return n;e[i]={numFmtId:a,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return i}function bu(e,r,t,a,n,i){if(e.t==="z")return;if(e.t==="d"&&typeof e.v==="string")e.v=W(e.v);try{if(a.cellNF)e.z=E._table[r]}catch(s){if(a.WTF)throw s}if(!a||a.cellText!==false)try{if(e.t==="e")e.w=e.w||Ft[e.v];else if(r===0){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else if(e.t==="d"){var l=y(e.v);if((l|0)===l)e.w=E._general_int(l);else e.w=E._general_num(l)}else if(e.v===undefined)return"";else e.w=E._general(e.v,ou)}else if(e.t==="d")e.w=E.format(r,y(e.v),ou);else e.w=E.format(r,e.v,ou)}catch(s){if(a.WTF)throw s}if(!a.cellStyles)return;if(t!=null)try{e.s=i.Fills[t];if(e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb){e.s.fgColor.rgb=vl(n.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0);if(a.WTF)e.s.fgColor.raw_rgb=n.themeElements.clrScheme[e.s.fgColor.theme].rgb}if(e.s.bgColor&&e.s.bgColor.theme){e.s.bgColor.rgb=vl(n.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0);if(a.WTF)e.s.bgColor.raw_rgb=n.themeElements.clrScheme[e.s.bgColor.theme].rgb}}catch(s){if(a.WTF&&i.Fills)throw s}}function pu(e,r){var t=qr(r);if(t.s.r<=t.e.r&&t.s.c<=t.e.c&&t.s.r>=0&&t.s.c>=0)e["!ref"]=Jr(t)}var mu=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g;var gu=/<(?:\w+:)?sheetData>([\s\S]*)<\/(?:\w+:)?sheetData>/;var Eu=/<(?:\w:)?hyperlink [^>]*>/gm;var ku=/"(\w*:\w*)"/;var Su=/<(?:\w:)?col[^>]*[\/]?>/g;var Bu=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g;var Cu=/<(?:\w:)?pageMargins[^>]*\/>/g;function wu(e,r,t,a,n,i){if(!e)return e;if(o!=null&&r.dense==null)r.dense=o;var s=r.dense?[]:{};var l={s:{r:2e6,c:2e6},e:{r:0,c:0}};var c="",f="";var u=e.match(gu);if(u){c=e.substr(0,u.index);f=e.substr(u.index+u[0].length)}else c=f=e;var h=(c.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(h>0){var d=c.substr(h,50).match(ku);if(d)pu(s,d[1])}var v=[];if(r.cellStyles){var b=c.match(Su);if(b)Du(v,b)}if(u)Nu(u[1],s,r,l,n,i);var p=f.match(Bu);if(p)s["!autofilter"]=Ou(p[0]);var m=[];var g=f.match(mu);if(g)for(h=0;h!=g.length;++h)m[h]=qr(g[h].substr(g[h].indexOf('"')+1));var E=f.match(Eu);if(E)xu(s,E,t);var k=f.match(Cu);if(k)s["!margins"]=Au(ue(k[0]));if(!s["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r)s["!ref"]=Jr(l);if(r.sheetRows>0&&s["!ref"]){var S=qr(s["!ref"]);if(r.sheetRows<+S.e.r){S.e.r=r.sheetRows-1;if(S.e.r>l.e.r)S.e.r=l.e.r;if(S.e.rl.e.c)S.e.c=l.e.c;if(S.e.c0)s["!cols"]=v;if(m.length>0)s["!merges"]=m;return s}function Tu(e){if(e.length==0)return"";var r='';for(var t=0;t!=e.length;++t)r+='';return r+""}function Iu(e){var r={sheet:1};var t=["objects","scenarios","selectLockedCells","selectUnlockedCells"];var a=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];t.forEach(function(t){if(e[t]!=null&&e[t])r[t]="1"});a.forEach(function(t){if(e[t]!=null&&!e[t])r[t]="0"});if(e.password)r.password=tl(e.password).toString(16).toUpperCase();return Ue("sheetProtection",null,r)}function xu(e,r,t){var a=Array.isArray(e);for(var n=0;n!=r.length;++n){var i=ue(Te(r[n]),true);if(!i.ref)return;var s=t?t["!id"][i.id]:null;if(s){i.Target=s.Target;if(i.location)i.Target+="#"+i.location;i.Rel=s}else{i.Target=i.location;s={Target:i.location,TargetMode:"Internal"};i.Rel=s}if(i.tooltip){i.Tooltip=i.tooltip;delete i.tooltip}var l=qr(i.ref);for(var c=l.s.r;c<=l.e.r;++c)for(var f=l.s.c;f<=l.e.c;++f){var o=Yr({c:f,r:c});if(a){if(!e[c])e[c]=[];if(!e[c][f])e[c][f]={t:"z",v:undefined};e[c][f].l=i}else{if(!e[o])e[o]={t:"z",v:undefined};e[o].l=i}}}}function Au(e){var r={};["left","right","top","bottom","header","footer"].forEach(function(t){if(e[t])r[t]=parseFloat(e[t])});return r}function Ru(e){du(e);return Ue("pageMargins",null,e)}function Du(e,r){var t=false;for(var a=0;a!=r.length;++a){var n=ue(r[a],true);if(n.hidden)n.hidden=we(n.hidden);var i=parseInt(n.min,10)-1,s=parseInt(n.max,10)-1;delete n.min;delete n.max;n.width=+n.width;if(!t&&n.width){t=true;Tl(n.width)}xl(n);while(i<=s)e[i++]=X(n)}}function Fu(e,r){var t=[""],a,n;for(var i=0;i!=r.length;++i){if(!(a=r[i]))continue;t[t.length]=Ue("col",null,hu(i,a))}t[t.length]="";return t.join("")}function Ou(e){var r={ref:(e.match(/ref="([^"]*)"/)||[])[1]};return r}function Pu(e){return Ue("autoFilter",null,{ref:e.ref})}function _u(e,r,t,a){return Ue("sheetViews",Ue("sheetView",null,{workbookViewId:"0"}),{})}function yu(e,r,t,a,n,i){if(e.v===undefined&&e.f===undefined||e.t==="z")return"";var s="";var l=e.t,c=e.v;switch(e.t){case"b":s=e.v?"1":"0";break;case"n":s=""+e.v;break;case"e":s=Ft[e.v];break;case"d":if(a.cellDates)s=W(e.v,-1).toISOString();else{e.t="n";s=""+(e.v=y(W(e.v)))}if(typeof e.z==="undefined")e.z=E._table[14];break;default:s=e.v;break;}var f=Me("v",ge(s)),o={r:r};var u=vu(a.cellXfs,e,a);if(u!==0)o.s=u;switch(e.t){case"n":break;case"d":o.t="d";break;case"b":o.t="b";break;case"e":o.t="e";break;default:if(e.v==null){delete e.t;break}if(a.bookSST){f=Me("v",""+uu(a.Strings,e.v));o.t="s";break}o.t="str";break;}if(e.t!=l){e.t=l;e.v=c}if(e.f){var h=e.F&&e.F.substr(0,r.length)==r?{t:"array",ref:e.F}:null;f=Ue("f",ge(e.f),h)+(e.v!=null?f:"")}if(e.l)t["!links"].push([r,e.l]);if(e.c)t["!comments"].push([r,e.c]);return Ue("c",f,o)}var Nu=function Jb(){var e=/<(?:\w+:)?c[ >]/,r=/<\/(?:\w+:)?row>/;var t=/r=["']([^"']*)["']/,a=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/;var n=/ref=["']([^"']*)["']/;var i=De("v"),s=De("f");return function l(c,f,o,u,h,d){var v=0,b="",p=[],m=[],g=0,k=0,S=0,B="",C;var w,T=0,I=0;var x,A;var R=0,D=0;var F=Array.isArray(d.CellXf),O;var P=[];var _=[];var M=Array.isArray(f);var L=[],U={},H=false;for(var V=c.split(r),X=0,G=V.length;X!=G;++X){b=V[X].trim();var z=b.length;if(z===0)continue;for(v=0;vT-1)u.s.r=T-1;if(u.e.r":"")+b;if(m!=null&&m.length===2){g=0;B=m[1];for(k=0;k!=B.length;++k){if((S=B.charCodeAt(k)-64)<1||S>26)break;g=26*g+S}--g;I=g}else++I;for(k=0;k!=b.length;++k)if(b.charCodeAt(k)===62)break;++k;w=ue(b.substr(0,k),true);if(!w.r)w.r=Yr({r:T-1,c:I});B=b.substr(k);C={t:""};if((m=B.match(i))!=null&&m[1]!=="")C.v=be(m[1]);if(o.cellFormula){if((m=B.match(s))!=null&&m[1]!==""){C.f=be(Te(m[1])).replace(/_xlfn\./,"");if(m[0].indexOf('t="array"')>-1){C.F=(B.match(n)||[])[1];if(C.F.indexOf(":")>-1)P.push([qr(C.F),C.F])}else if(m[0].indexOf('t="shared"')>-1){A=ue(m[0]);_[parseInt(A.si,10)]=[A,be(Te(m[1]))]}}else if(m=B.match(/]*\/>/)){A=ue(m[0]);if(_[A.si])C.f=hf(_[A.si][1],_[A.si][0].ref,w.r)}var j=Kr(w.r);for(k=0;k=P[k][0].s.r&&j.r<=P[k][0].e.r)if(j.c>=P[k][0].s.c&&j.c<=P[k][0].e.c)C.F=P[k][1]}if(w.t==null&&C.v===undefined){if(C.f||C.F){C.v=0;C.t="n"}else if(!o.sheetStubs)continue;else C.t="z"}else C.t=w.t||"n";if(u.s.c>g)u.s.c=g;if(u.e.c0)f["!rows"]=L}}();function Mu(e,r,t,a,n){var i=[],s=[],l=qr(e["!ref"]),c,f,o="",u=[],h=0,d=0,v=e["!rows"];var b=Array.isArray(e);for(d=l.s.c;d<=l.e.c;++d)u[d]=Xr(d);for(h=l.s.r;h<=l.e.r;++h){s=[];o=Ur(h);for(d=l.s.c;d<=l.e.c;++d){f=u[d]+o;var p=b?(e[h]||[])[d]:e[f];if(p===undefined)continue;if((c=yu(p,f,e,r,t,a))!=null)s.push(c)}if(s.length>0||v&&v[h]){var m={r:o};if(v&&v[h]){var g=v[h];if(g.hidden)m.hidden=1;var E=-1;if(g.hpx)E=Dl(g.hpx);else if(g.hpt)E=g.hpt;if(E>-1){m.ht=E;m.customHeight=1}if(g.level){m.outlineLevel=g.level}}i[i.length]=Ue("row",s.join(""),m)}}if(v)for(;h-1){m.ht=E;m.customHeight=1}if(g.level){m.outlineLevel=g.level}i[i.length]=Ue("row","",m)}}return i.join("")}var Lu=Ue("worksheet",null,{xmlns:Ve.main[0],"xmlns:r":Ve.r});function Uu(e,r,t,a){var n=[se,Lu];var i=t.SheetNames[e],s=0,l="";var c=t.Sheets[i];if(c==null)c={};var f=c["!ref"];if(f==null)f="A1";if(!a)a={};c["!comments"]=[];c["!drawing"]=[];n[n.length]=Ue("sheetPr",null,{codeName:ge(t.SheetNames[e])});n[n.length]=Ue("dimension",null,{ref:f});n[n.length]=_u(c,r,e,t);if(r.sheetFormat)n[n.length]=Ue("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"});if(c["!cols"]!=null&&c["!cols"].length>0)n[n.length]=Fu(c,c["!cols"]);n[s=n.length]="";c["!links"]=[];if(c["!ref"]!=null){l=Mu(c,r,e,t,a);if(l.length>0)n[n.length]=l}if(n.length>s+1){n[n.length]="";n[s]=n[s].replace("/>",">")}if(c["!protect"]!=null)n[n.length]=Iu(c["!protect"]);if(c["!autofilter"]!=null)n[n.length]=Pu(c["!autofilter"]);if(c["!merges"]!=null&&c["!merges"].length>0)n[n.length]=Tu(c["!merges"]);var o=-1,u,h=-1;if(c["!links"].length>0){n[n.length]="";c["!links"].forEach(function(e){if(!e[1].Target)return;h=pa(a,-1,ge(e[1].Target).replace(/#.*$/,""),ua.HLINK);u={ref:e[0],"r:id":"rId"+h};if((o=e[1].Target.indexOf("#"))>-1)u.location=ge(e[1].Target.substr(o+1));if(e[1].Tooltip)u.tooltip=ge(e[1].Tooltip);n[n.length]=Ue("hyperlink",null,u)});n[n.length]=""}delete c["!links"];if(c["!margins"]!=null)n[n.length]=Ru(c["!margins"]);var d=n.length;n[n.length]="";if(c["!drawing"].length>0){h=pa(a,-1,"../drawings/drawing"+(e+1)+".xml",ua.DRAW);n[n.length]=Ue("drawing",null,{"r:id":"rId"+h})}else delete c["!drawing"];if(c["!comments"].length>0){h=pa(a,-1,"../drawings/vmlDrawing"+(e+1)+".vml",ua.VML);n[n.length]=Ue("legacyDrawing",null,{"r:id":"rId"+h});c["!legacy"]=h}if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function Wu(e,r){var t={};var a=e.l+r;t.r=e._R(4);e.l+=4;var n=e._R(2);e.l+=1;var i=e._R(1);e.l=a;if(i&7)t.level=i&7;if(i&16)t.hidden=true;if(i&32)t.hpt=n/20;return t}function Hu(e,r,t){var a=Ar(17+8*16);var n=(t["!rows"]||[])[e]||{};a._W(4,e);a._W(4,0);var i=320;if(n.hpx)i=Dl(n.hpx)*20;else if(n.hpt)i=n.hpt*20;a._W(2,i);a._W(1,0);var s=0;if(n.level)s|=n.level;if(n.hidden)s|=16;if(n.hpx||n.hpt)s|=32;a._W(1,s);a._W(1,0);var l=0,c=a.l;a.l+=4;var f={r:e,c:0};for(var o=0;o<16;++o){if(r.s.c>o+1<<10||r.e.ca.l?a.slice(0,a.l):a}function Vu(e,r,t,a){var n=Hu(a,t,r);if(n.length>17||(r["!rows"]||[])[a])Fr(e,"BrtRowHdr",n)}var Xu=xt;var Gu=At;function zu(e,r){}function ju(e,r){var t={};e.l+=19;t.name=bt(e,r-19);return t}function Ku(e,r){if(r==null)r=Ar(84+4*e.length);for(var t=0;t<3;++t)r._W(1,0);_t({auto:1},r);r._W(-4,-1);r._W(-4,-1);pt(e,r);return r.slice(0,r.l)}function Yu(e,r){var t=dt(e);return[t]}function $u(e,r,t){if(t==null)t=Ar(8);return vt(r,t)}function Qu(e,r){var t=dt(e);var a=e._R(1);return[t,a,"b"]}function Zu(e,r,t){if(t==null)t=Ar(9);vt(r,t);t._W(1,e.v?1:0);return t}function Ju(e,r){var t=dt(e);var a=e._R(1);return[t,a,"e"]}function qu(e,r){var t=dt(e);var a=e._R(4);return[t,a,"s"]}function eh(e,r,t){if(t==null)t=Ar(12);vt(r,t);t._W(4,r.v);return t}function rh(e,r){var t=dt(e);var a=Rt(e);return[t,a,"n"]}function th(e,r,t){if(t==null)t=Ar(16);vt(r,t);Dt(e.v,t);return t}function ah(e,r){var t=dt(e);var a=Ct(e);return[t,a,"n"]}function nh(e,r,t){if(t==null)t=Ar(12);vt(r,t);wt(e.v,t);return t}function ih(e,r){var t=dt(e);var a=it(e);return[t,a,"str"]}function sh(e,r,t){if(t==null)t=Ar(12+4*e.v.length);vt(r,t);st(e.v,t);return t.length>t.l?t.slice(0,t.l):t}function lh(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var l=Jo(e,a-e.l,t);s[3]=$o(l,null,n,t.supbooks,t)}else e.l=a;return s}function ch(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var l=Jo(e,a-e.l,t);s[3]=$o(l,null,n,t.supbooks,t)}else e.l=a;return s}function fh(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=Rt(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var l=Jo(e,a-e.l,t);s[3]=$o(l,null,n,t.supbooks,t)}else e.l=a;return s}function oh(e,r,t){var a=e.l+r;var n=dt(e);n.r=t["!row"];var i=it(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var l=Jo(e,a-e.l,t);s[3]=$o(l,null,n,t.supbooks,t)}else e.l=a;return s}var uh=xt;var hh=At;function dh(e,r){if(r==null)r=Ar(4);r._W(4,e);return r}function vh(e,r,t){var a=e.l+r;var n=xt(e,16);var i=mt(e);var s=it(e);var l=it(e);var c=it(e);e.l=a;return{rfx:n,relId:i,loc:s,Tooltip:l,display:c}}function bh(e,r,t){if(t==null)t=Ar(50+4*e[1].Target.length);At({s:Kr(e[0]),e:Kr(e[0])},t);Bt("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.substr(a+1);st(n||"",t);st(e[1].Tooltip||"",t);st("",t);return t.slice(0,t.l)}function ph(e,r,t){var a=e.l+r;var n=Tt(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var l=Zo(e,a-e.l,t);s[1]=l}else e.l=a;return s}function mh(e,r,t){var a=e.l+r;var n=xt(e,16);var i=[n];if(t.cellFormula){var s=eu(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function gh(e,r,t){if(t==null)t=Ar(18);var a=hu(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;t._W(1,n);t._W(1,0);return t}function Eh(e,r,t){return{left:Rt(e,8),right:Rt(e,8),top:Rt(e,8),bottom:Rt(e,8),header:Rt(e,8),footer:Rt(e,8)}}function kh(e,r){if(r==null)r=Ar(6*8);du(e);Dt(e.left,r);Dt(e.right,r);Dt(e.top,r);Dt(e.bottom,r);Dt(e.header,r);Dt(e.footer,r);return r}function Sh(e,r){if(r==null)r=Ar(30);r._W(2,924);r._W(4,0);r._W(4,0);r._W(4,0);r._W(1,0);r._W(1,0);r._W(2,0);r._W(2,100);r._W(2,0);r._W(2,0);r._W(2,0);r._W(4,0);return r}function Bh(e,r){if(r==null)r=Ar(16*4+2);r._W(2,e.password?tl(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function Ch(e,r,t,a,n,i){if(!e)return e;var s=r||{};if(!t)t={"!id":{}};if(o!=null&&s.dense==null)s.dense=o;var l=s.dense?[]:{};var c;var f={s:{r:2e6,c:2e6},e:{r:0,c:0}};var u=false,h=false;var d,v,b,p,m,g,k,S,B;var C=[];s.biff=12;s["!row"]=0;var w=0,T=false;var I=[];var x={};var A=[[]];A.sharedf=x;A.arrayf=I;A.SheetNames=a.SheetNames||a.Sheets.map(function(e){return e.name});s.supbooks=A;for(var R=0;R=o[0].s.r&&d.r<=o[0].e.r)if(m>=o[0].s.c&&m<=o[0].e.c){v.F=Jr(o[0]);T=true}}if(!T&&e.length>3)v.f=e[3]}if(f.s.r>d.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.rd.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.r=e.s){D[e.e--]={ -width:e.w/256,hidden:!!(e.flags&1)};if(!_){_=true;Tl(e.w/256)}xl(D[e.e+1])}break;case 161:l["!autofilter"]={ref:Jr(e)};break;case 476:l["!margins"]=e;break;case 485:;case 175:;case 644:;case 625:;case 562:;case 396:;case 1112:;case 1146:;case 471:;case 1050:;case 649:;case 1105:;case 49:;case 589:;case 607:;case 564:;case 1055:;case 168:;case 174:;case 1180:;case 499:;case 64:;case 1053:;case 550:;case 171:;case 167:;case 1177:;case 169:;case 1181:;case 551:;case 552:;case 661:;case 639:;case 478:;case 151:;case 537:;case 477:;case 536:;case 1103:;case 680:;case 1104:;case 1024:;case 152:;case 663:;case 535:;case 678:;case 504:;case 1043:;case 428:;case 170:;case 50:;case 2070:;case 1045:;case 147:break;case 35:u=true;break;case 36:u=false;break;case 37:break;case 38:break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!u||s.WTF)throw new Error("Unexpected record "+a+" "+r);}},s);delete s.supbooks;delete s["!row"];if(!l["!ref"]&&(f.s.r<2e6||c&&(c.e.r>0||c.e.c>0||c.s.r>0||c.s.c>0)))l["!ref"]=Jr(c||f);if(s.sheetRows&&l["!ref"]){var y=qr(l["!ref"]);if(s.sheetRows<+y.e.r){y.e.r=s.sheetRows-1;if(y.e.r>f.e.r)y.e.r=f.e.r;if(y.e.rf.e.c)y.e.c=f.e.c;if(y.e.c0)l["!merges"]=C;if(D.length>0)l["!cols"]=D;if(F.length>0)l["!rows"]=F;return l}function wh(e,r,t,a,n,i){if(r.v===undefined)return"";var s="";var l=null;switch(r.t){case"b":s=r.v?"1":"0";break;case"d":r.z=r.z||E._table[14];l=r.v;r.v=y(r.v);r.t="n";break;case"n":;case"e":s=""+r.v;break;default:s=r.v;break;}var c={r:t,c:a};c.s=vu(n.cellXfs,r,n);if(r.l)i["!links"].push([Yr(c),r.l]);if(r.c)i["!comments"].push([Yr(c),r.c]);switch(r.t){case"s":;case"str":if(n.bookSST){s=uu(n.Strings,r.v);c.t="s";c.v=s;Fr(e,"BrtCellIsst",eh(r,c))}else{c.t="str";Fr(e,"BrtCellSt",sh(r,c))}return;case"n":if(r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3)Fr(e,"BrtCellRk",nh(r,c));else Fr(e,"BrtCellReal",th(r,c));if(l){r.t="d";r.v=l}return;case"b":c.t="b";Fr(e,"BrtCellBool",Zu(r,c));return;case"e":c.t="e";break;}Fr(e,"BrtCellBlank",$u(r,c))}function Th(e,r,t,a,n){var i=qr(r["!ref"]||"A1"),s,l="",c=[];Fr(e,"BrtBeginSheetData");var f=Array.isArray(r);var o=i.e.r;if(r["!rows"])o=Math.max(i.e.r,r["!rows"].length-1);for(var u=i.s.r;u<=o;++u){l=Ur(u);Vu(e,r,i,u);if(u<=i.e.r)for(var h=i.s.c;h<=i.e.c;++h){if(u===i.s.r)c[h]=Xr(h);s=c[h]+l;var d=f?(r[u]||[])[h]:r[s];if(!d)continue;wh(e,d,u,h,a,r)}}Fr(e,"BrtEndSheetData")}function Ih(e,r){if(!r||!r["!merges"])return;Fr(e,"BrtBeginMergeCells",dh(r["!merges"].length));r["!merges"].forEach(function(r){Fr(e,"BrtMergeCell",hh(r))});Fr(e,"BrtEndMergeCells")}function xh(e,r,t,a,n){if(!r||!r["!cols"])return;Fr(e,"BrtBeginColInfos");r["!cols"].forEach(function(r,t){if(r)Fr(e,"BrtColInfo",gh(t,r))});Fr(e,"BrtEndColInfos")}function Ah(e,r,t){r["!links"].forEach(function(r){if(!r[1].Target)return;var a=pa(t,-1,r[1].Target.replace(/#.*$/,""),ua.HLINK);Fr(e,"BrtHLink",bh(r,a))});delete r["!links"]}function Rh(e,r,t,a){if(r["!comments"].length>0){var n=pa(a,-1,"../drawings/vmlDrawing"+(t+1)+".vml",ua.VML);Fr(e,"BrtLegacyDrawing",Bt("rId"+n));r["!legacy"]=n}}function Dh(e,r){if(!r["!autofilter"])return;Fr(e,"BrtBeginAFilter",At(Zr(r["!autofilter"].ref)));Fr(e,"BrtEndAFilter")}function Fh(e,r){Fr(e,"BrtBeginWsViews");{Fr(e,"BrtBeginWsView",Sh(r));Fr(e,"BrtEndWsView")}Fr(e,"BrtEndWsViews")}function Oh(e,r){}function Ph(e,r){if(!r["!protect"])return;Fr(e,"BrtSheetProtection",Bh(r["!protect"]))}function _h(e,r,t,a){var n=Dr();var i=t.SheetNames[e],s=t.Sheets[i]||{};var l=qr(s["!ref"]||"A1");s["!links"]=[];s["!comments"]=[];Fr(n,"BrtBeginSheet");Fr(n,"BrtWsProp",Ku(i));Fr(n,"BrtWsDim",Gu(l));Fh(n,s);Oh(n,s);xh(n,s,e,r,t);Th(n,s,e,r,t);Ph(n,s);Dh(n,s);Ih(n,s);Ah(n,s,a);if(s["!margins"])Fr(n,"BrtMargins",kh(s["!margins"]));Rh(n,s,e,a);Fr(n,"BrtEndSheet");return n.end()}function yh(e){var r=[];(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach(function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);if(!t)return;r[+t[1]]=+t[2]});var t=be((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return[r,t]}function Nh(e,r,t,a,n,i){var s=i||{"!type":"chart"};if(!e)return i;var l=0,c=0,f="A";var o={s:{r:2e6,c:2e6},e:{r:0,c:0}};(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(e){var r=yh(e);o.s.r=o.s.c=0;o.e.c=l;f=Xr(l);r[0].forEach(function(e,t){s[f+Ur(t)]={t:"n",v:e,z:r[1]};c=t});if(o.e.r0)s["!ref"]=Jr(o);return s}ua.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";var Mh=Ue("chartsheet",null,{xmlns:Ve.main[0],"xmlns:r":Ve.r});function Lh(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var l;if(l=e.match(/drawing r:id="(.*?)"/))s["!rel"]=l[1];if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function Uh(e,r,t,a){var n=[se,Mh];n[n.length]=Ue("drawing",null,{"r:id":"rId1"});pa(a,-1,"../drawings/drawing"+(e+1)+".xml",ua.DRAW);if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function Wh(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var l=[];var c=false;Rr(e,function f(e,t,a){switch(a){case 550:s["!rel"]=e;break;case 562:;case 652:;case 651:;case 669:;case 679:;case 551:;case 552:;case 476:break;case 35:c=true;break;case 36:c=false;break;case 37:l.push(t);break;case 38:l.pop();break;default:if((t||"").indexOf("Begin")>0)l.push(t);else if((t||"").indexOf("End")>0)l.pop();else if(!c||r.WTF)throw new Error("Unexpected record "+a+" "+t);}},r);if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function Hh(e,r,t,a){var n=Dr();Fr(n,"BrtBeginSheet");Fr(n,"BrtEndSheet");return n.end()}var Vh=[["allowRefreshQuery",false,"bool"],["autoCompressPictures",true,"bool"],["backupFile",false,"bool"],["checkCompatibility",false,"bool"],["codeName",""],["date1904",false,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",false,"bool"],["hidePivotFieldList",false,"bool"],["promptedSolutions",false,"bool"],["publishItems",false,"bool"],["refreshAllConnections",false,"bool"],["saveExternalLinkValues",true,"bool"],["showBorderUnselectedTables",true,"bool"],["showInkAnnotation",true,"bool"],["showObjects","all"],["showPivotChartFilter",false,"bool"],["updateLinks","userSet"]];var Xh=[["activeTab",0,"int"],["autoFilterDateGrouping",true,"bool"],["firstSheet",0,"int"],["minimized",false,"bool"],["showHorizontalScroll",true,"bool"],["showSheetTabs",true,"bool"],["showVerticalScroll",true,"bool"],["tabRatio",600,"int"],["visibility","visible"]];var Gh=[];var zh=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var jh=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function Kh(e,r){for(var t=0;t!=e.length;++t){var a=e[t];for(var n=0;n!=r.length;++n){var i=r[n];if(a[i[0]]==null)a[i[0]]=i[1];else switch(i[2]){case"bool":if(typeof a[i[0]]=="string")a[i[0]]=we(a[i[0]],i[0]);break;case"int":if(typeof a[i[0]]=="string")a[i[0]]=parseInt(a[i[0]],10);break;}}}}function Yh(e,r){for(var t=0;t!=r.length;++t){var a=r[t];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case"bool":if(typeof e[a[0]]=="string")e[a[0]]=we(e[a[0]],a[0]);break;case"int":if(typeof e[a[0]]=="string")e[a[0]]=parseInt(e[a[0]],10);break;}}}function $h(e){Yh(e.WBProps,Vh);Yh(e.CalcPr,zh);Kh(e.WBView,Xh);Kh(e.Sheets,Gh);ou.date1904=we(e.WBProps.date1904,"date1904")}function Qh(e){if(!e.Workbook)return"false";if(!e.Workbook.WBProps)return"false";return we(e.Workbook.WBProps.date1904)?"true":"false"}var Zh="][*?/\\".split("");function Jh(e,r){if(e.length>31){if(r)return false;throw new Error("Sheet names cannot exceed 31 chars")}var t=true;Zh.forEach(function(a){if(e.indexOf(a)==-1)return;if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=false});return t}function qh(e){e.forEach(function(r,t){Jh(r);for(var a=0;a":break;case"":;case"":break;case"":break;case"":Vh.forEach(function(e){if(o[e[0]]==null)return;switch(e[2]){case"bool":t.WBProps[e[0]]=we(o[e[0]],e[0]);break;case"int":t.WBProps[e[0]]=parseInt(o[e[0]],10);break;default:t.WBProps[e[0]]=o[e[0]];}});break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":a=false;break;case"":{i.Ref=e.slice(s,f);t.Names.push(i)}break;case"":break;case"":delete o[0];t.CalcPr=o;break;case"":break;case"":;case"":;case"":break;case"":;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":;case"":;case"":break;case"":a=false;break;case"":a=false;break;case"0;var n={codeName:"ThisWorkbook"};if(e.Workbook&&e.Workbook.WBProps){if(e.Workbook.WBProps.codeName)n.codeName=e.Workbook.WBProps.codeName;Vh.forEach(function(r){if(e.Workbook.WBProps[r[0]]==null)return;if(e.Workbook.WBProps[r[0]]==r[1])return;n[r[0]]=e.Workbook.WBProps[r[0]]})}t[t.length]=Ue("workbookPr",null,n);t[t.length]="";var i=e.Workbook&&e.Workbook.Sheets||[];for(var s=0;s!=e.SheetNames.length;++s){var l={name:ge(e.SheetNames[s].substr(0,31))};l.sheetId=""+(s+1);l["r:id"]="rId"+(s+1);if(i[s])switch(i[s].Hidden){case 1:l.state="hidden";break;case 2:l.state="veryHidden";break;}t[t.length]=Ue("sheet",null,l)}t[t.length]="";if(a){t[t.length]="";if(e.Workbook&&e.Workbook.Names)e.Workbook.Names.forEach(function(e){var r={name:e.Name};if(e.Comment)r.comment=e.Comment;if(e.Sheet!=null)r.localSheetId=""+e.Sheet;if(!e.Ref)return;t[t.length]=Ue("definedName",String(e.Ref),r)});t[t.length]=""}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function id(e,r){var t={};t.Hidden=e._R(4);t.iTabID=e._R(4);t.strRelID=St(e,r-8);t.name=it(e);return t}function sd(e,r){if(!r)r=Ar(127);r._W(4,e.Hidden);r._W(4,e.iTabID);Bt(e.strRelID,r);st(e.name.substr(0,31),r);return r.length>r.l?r.slice(0,r.l):r}function ld(e,r){var t={};var a=e._R(4);t.defaultThemeVersion=e._R(4);var n=r>8?it(e):"";if(n.length>0)t.codeName=n;t.autoCompressPictures=!!(a&65536);t.backupFile=!!(a&64);t.checkCompatibility=!!(a&4096);t.date1904=!!(a&1);t.filterPrivacy=!!(a&8);t.hidePivotFieldList=!!(a&1024);t.promptedSolutions=!!(a&16);t.publishItems=!!(a&2048);t.refreshAllConnections=!!(a&262144);t.saveExternalLinkValues=!!(a&128);t.showBorderUnselectedTables=!!(a&4);t.showInkAnnotation=!!(a&32);t.showObjects=["all","placeholders","none"][a>>13&3];t.showPivotChartFilter=!!(a&32768);t.updateLinks=["userSet","never","always"][a>>8&3];return t}function cd(e,r){if(!r)r=Ar(72);var t=0;if(e){if(e.filterPrivacy)t|=8}r._W(4,t);r._W(4,0);pt("ThisWorkbook",r);return r.slice(0,r.l)}function fd(e,r){var t={};e._R(4);t.ArchID=e._R(4);e.l+=r-8;return t}function od(e,r,t){var a=e.l+r;var n=e._R(4);var i=e._R(1);var s=e._R(4);var l=Et(e);var c=qo(e,0,t);var f=mt(e);e.l=a;var o={Name:l,Ptg:c,Comment:f};if(s<268435455)o.Sheet=s;return o}function ud(e,r){var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var a=false,n;if(!r)r={};r.biff=12;var i=[];var s=[];s.SheetNames=[];Rr(e,function l(e,n,c){switch(c){case 156:s.SheetNames.push(e.name);t.Sheets.push(e);break;case 153:t.WBProps=e;break;case 39:e.Ref=$o(e.Ptg,null,null,s,r);delete e.Ptg;i.push(e);break;case 1036:break;case 357:;case 358:;case 355:;case 667:;case 362:;case 361:break;case 2071:;case 534:;case 677:;case 158:;case 157:;case 610:;case 2050:;case 155:;case 548:;case 676:;case 128:;case 665:;case 2128:;case 2125:;case 549:;case 2053:;case 596:;case 2076:;case 2075:;case 2082:;case 397:;case 154:;case 1117:;case 553:;case 2091:break;case 35:a=true;break;case 36:a=false;break;case 37:break;case 38:break;case 16:break;default:if((n||"").indexOf("Begin")>0){}else if((n||"").indexOf("End")>0){}else if(!a||r.WTF)throw new Error("Unexpected record "+c+" "+n);}},r);$h(t);t.Names=i;return t}function hd(e,r,t){Fr(e,"BrtBeginBundleShs");for(var a=0;a!=r.SheetNames.length;++a){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[a]&&r.Workbook.Sheets[a].Hidden||0;var i={Hidden:n,iTabID:a+1,strRelID:"rId"+(a+1),name:r.SheetNames[a]};Fr(e,"BrtBundleSh",sd(i))}Fr(e,"BrtEndBundleShs")}function dd(e,t){if(!t)t=Ar(127);for(var a=0;a!=4;++a)t._W(4,0);st("SheetJS",t);st(r.version,t);st(r.version,t);st("7262",t);t.length=t.l;return t.length>t.l?t.slice(0,t.l):t}function vd(e,r){if(!r)r=Ar(29);r._W(-4,0);r._W(-4,460);r._W(4,28800);r._W(4,17600);r._W(4,500);r._W(4,e);r._W(4,e);var t=120;r._W(1,t);return r.length>r.l?r.slice(0,r.l):r}function bd(e,r,t){if(!r.Workbook||!r.Workbook.Sheets)return;var a=r.Workbook.Sheets;var n=0,i=-1,s=-1;for(;ni)return;Fr(e,"BrtBeginBookViews");Fr(e,"BrtBookView",vd(i));Fr(e,"BrtEndBookViews")}function pd(e,r){if(!r)r=Ar(26);r._W(4,0);r._W(4,1);r._W(4,0);Dt(0,r);r._W(-4,1023);r._W(1,51);r._W(1,0);return r}function md(e,r){if(!r)r=Ar(1);r._W(1,0);return r}function gd(e,r){var t=Dr();Fr(t,"BrtBeginBook");Fr(t,"BrtFileVersion",dd());Fr(t,"BrtWbProp",cd(e.Workbook&&e.Workbook.WBProps||null));bd(t,e,r);hd(t,e,r);Fr(t,"BrtEndBook");return t.end()}function Ed(e,r,t){if(r.slice(-4)===".bin")return ud(e,t);return td(e,t)}function kd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Ch(e,t,a,n,i,s);return wu(e,t,a,n,i,s)}function Sd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Wh(e,t,a,n,i,s);return Lh(e,t,a,n,i,s)}function Bd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return sf(e,t,a,n,i,s);return lf(e,t,a,n,i,s)}function Cd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return af(e,t,a,n,i,s);return nf(e,t,a,n,i,s)}function wd(e,r,t,a){if(r.slice(-4)===".bin")return sc(e,t,a);return Vl(e,t,a)}function Td(e,r,t){return Ic(e,t)}function Id(e,r,t){if(r.slice(-4)===".bin")return Ns(e,t);return Os(e,t)}function xd(e,r,t){if(r.slice(-4)===".bin")return rf(e,t);return Yc(e,t)}function Ad(e,r,t){if(r.slice(-4)===".bin")return Uc(e,r,t);return Nc(e,r,t)}function Rd(e,r,t){if(r.slice(-4)===".bin")return Vc(e,r,t);return Hc(e,r,t)}function Dd(e,r,t){return(r.slice(-4)===".bin"?gd:nd)(e,t)}function Fd(e,r,t,a,n){return(r.slice(-4)===".bin"?_h:Uu)(e,t,a,n)}function Od(e,r,t,a,n){return(r.slice(-4)===".bin"?Hh:Uh)(e,t,a,n)}function Pd(e,r,t){return(r.slice(-4)===".bin"?mc:Gl)(e,t)}function _d(e,r,t){return(r.slice(-4)===".bin"?Us:_s)(e,t)}function yd(e,r,t){return(r.slice(-4)===".bin"?tf:Qc)(e,t)}var Nd=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var Md=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var Ld=function(e){return String.fromCharCode(e)};function Ud(e,r){var t=e.split(/\s+/);var a=[];if(!r)a[0]=t[0];if(t.length===1)return a;var n=e.match(Nd),i,s,l,c;if(n)for(c=0;c!=n.length;++c){i=n[c].match(Md);if((s=i[1].indexOf(":"))===-1)a[i[1]]=i[2].substr(1,i[2].length-2);else{if(i[1].substr(0,6)==="xmlns:")l="xmlns"+i[1].substr(6);else l=i[1].substr(s+1);a[l]=i[2].substr(1,i[2].length-2)}}return a}function Wd(e){var r=e.split(/\s+/);var t={};if(r.length===1)return t;var a=e.match(Nd),n,i,s,l;if(a)for(l=0;l!=a.length;++l){n=a[l].match(Md);if((i=n[1].indexOf(":"))===-1)t[n[1]]=n[2].substr(1,n[2].length-2);else{if(n[1].substr(0,6)==="xmlns:")s="xmlns"+n[1].substr(6);else s=n[1].substr(i+1);t[s]=n[2].substr(1,n[2].length-2)}}return t}function Hd(e,r){var t=S[e]||be(e);if(t==="General")return E._general(r);return E.format(t,r)}function Vd(e,r,t,a){var n=a;switch((t[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":n=we(a);break;case"i2":;case"int":n=parseInt(a,10);break;case"r4":;case"float":n=parseFloat(a);break;case"date":;case"dateTime.tz":n=W(a);break;case"i8":;case"string":;case"fixed":;case"uuid":;case"bin.base64":break;default:throw new Error("bad custprop:"+t[0]);}e[be(r[3])]=n}function Xd(e,r,t){if(e.t==="z")return;if(!t||t.cellText!==false)try{if(e.t==="e"){e.w=e.w||Ft[e.v]}else if(r==="General"){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else e.w=E._general(e.v)}else e.w=Hd(r||"General",e.v)}catch(a){if(t.WTF)throw a}try{var n=S[r]||r||"General";if(t.cellNF)e.z=n;if(t.cellDates&&e.t=="n"&&E.is_date(n)){var i=E.parse_date_code(e.v);if(i){e.t="d";e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u)}}}catch(a){if(t.WTF)throw a}}function Gd(e,r,t){if(t.cellStyles){if(r.Interior){var a=r.Interior;if(a.Pattern)a.patternType=Ol[a.Pattern]||a.Pattern}}e[r.ID]=r}function zd(e,r,t,a,n,i,s,l,c,f){var o="General",u=a.StyleID,h={};f=f||{};var d=[];var v=0;if(u===undefined&&l)u=l.StyleID;if(u===undefined&&s)u=s.StyleID;while(i[u]!==undefined){if(i[u].nf)o=i[u].nf;if(i[u].Interior)d.push(i[u].Interior);if(!i[u].Parent)break;u=i[u].Parent}switch(t.Type){case"Boolean":a.t="b";a.v=we(e);break;case"String":a.t="s";a.r=Be(be(e));a.v=e.indexOf("<")>-1?be(r):a.r;break;case"DateTime":if(e.slice(-1)!="Z")e+="Z";a.v=(W(e)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(a.v!==a.v)a.v=be(e);else if(a.v<60)a.v=a.v-1;if(!o||o=="General")o="yyyy-mm-dd";case"Number":if(a.v===undefined)a.v=+e;if(!a.t)a.t="n";break;case"Error":a.t="e";a.v=Ot[e];if(f.cellText!==false)a.w=e;break;default:a.t="s";a.v=Be(r||e);break;}Xd(a,o,f);if(f.cellFormula!==false){if(a.Formula){var b=be(a.Formula);if(b.charCodeAt(0)==61)b=b.substr(1);a.f=cf(b,n);delete a.Formula;if(a.ArrayRange=="RC")a.F=cf("RC:RC",n);else if(a.ArrayRange){a.F=cf(a.ArrayRange,n);c.push([qr(a.F),a.F])}}else{for(v=0;v=c[v][0].s.r&&n.r<=c[v][0].e.r)if(n.c>=c[v][0].s.c&&n.c<=c[v][0].e.c)a.F=c[v][1]}}if(f.cellStyles){d.forEach(function(e){if(!h.patternType&&e.patternType)h.patternType=e.patternType});a.s=h}a.ixfe=a.StyleID!==undefined?a.StyleID:"Default"}function jd(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function Kd(e){if(d&&Buffer.isBuffer(e))return e.toString("utf8");if(typeof e==="string")return e;throw new Error("Bad input format: expected Buffer or string")}var Yd=/<(\/?)([^\s?>!\/:]*:|)([^\s?>]*[^\s?>\/])[^>]*>/gm;function $d(e,r){var t=r||{};k(E);var a=c(Kd(e));if(t.type=="binary"||t.type=="base64"){if(typeof cptable!=="undefined")a=cptable.utils.decode(65001,i(a));else a=Te(a)}var n=a.slice(0,1024).toLowerCase(),s=false;if(n.indexOf("=0)s=true});if(s)return Ov.to_workbook(a,t);var l;var f=[],u;if(o!=null&&t.dense==null)t.dense=o;var h={},d=[],v=t.dense?[]:{},b="";var p={},m={},g={};var B=Ud(''),C=0;var w=0,T=0;var I={s:{r:2e6,c:2e6},e:{r:0,c:0}};var x={},A={};var R="",D=0;var F=[];var O={},P={},_=0,y={};var N=[],M={};var L=[],U,W=false;var H=[];var V=[],G={};var z={Sheets:[],WBProps:{date1904:false}},j={};Yd.lastIndex=0;a=a.replace(//gm,"");while(l=Yd.exec(a))switch(l[3]){case"Data":if(f[f.length-1][1])break;if(l[1]==="/")zd(a.slice(C,l.index),R,B,f[f.length-1][0]=="Comment"?M:m,{c:w,r:T},x,L[w],g,H,t);else{R="";B=Ud(l[0]);C=l.index+l[0].length}break;case"Cell":if(l[1]==="/"){if(N.length>0)m.c=N;if((!t.sheetRows||t.sheetRows>T)&&m.v!==undefined){if(t.dense){if(!v[T])v[T]=[];v[T][w]=m}else v[Xr(w)+Ur(T)]=m}if(m.HRef){m.l={Target:m.HRef,Tooltip:m.HRefScreenTip};delete m.HRef;delete m.HRefScreenTip}if(m.MergeAcross||m.MergeDown){var K=w+(parseInt(m.MergeAcross,10)|0);var Y=T+(parseInt(m.MergeDown,10)|0);F.push({s:{c:w,r:T},e:{c:K,r:Y}})}if(!t.sheetStubs){if(m.MergeAcross)w=K+1;else++w}else if(m.MergeAcross||m.MergeDown){for(var $=w;$<=K;++$){for(var Q=T;Q<=Y;++Q){if($>w||Q>T){if(t.dense){if(!v[Q])v[Q]=[];v[Q][$]={t:"z"}}else v[Xr($)+Ur(Q)]={t:"z"}}}}w=K+1}else++w}else{m=Wd(l[0]);if(m.Index)w=+m.Index-1;if(wI.e.c)I.e.c=w;if(l[0].slice(-2)==="/>")++w;N=[]}break;case"Row":if(l[1]==="/"||l[0].slice(-2)==="/>"){if(TI.e.r)I.e.r=T;if(l[0].slice(-2)==="/>"){g=Ud(l[0]);if(g.Index)T=+g.Index-1}w=0;++T}else{g=Ud(l[0]);if(g.Index)T=+g.Index-1;G={};if(g.AutoFitHeight=="0"||g.Height){G.hpx=parseInt(g.Height,10);G.hpt=Dl(G.hpx);V[T]=G}if(g.Hidden=="1"){G.hidden=true;V[T]=G}}break;case"Worksheet":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"));d.push(b);if(I.s.r<=I.e.r&&I.s.c<=I.e.c)v["!ref"]=Jr(I);if(F.length)v["!merges"]=F;if(L.length>0)v["!cols"]=L;if(V.length>0)v["!rows"]=V;h[b]=v}else{I={s:{r:2e6,c:2e6},e:{r:0,c:0}};T=w=0;f.push([l[3],false]);u=Ud(l[0]);b=be(u.Name);v=t.dense?[]:{};F=[];H=[];V=[];j={name:b,Hidden:0};z.Sheets.push(j)}break;case"Table":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].slice(-2)=="/>")break;else{p=Ud(l[0]);f.push([l[3],false]);L=[];W=false}break;case"Style":if(l[1]==="/")Gd(x,A,t);else A=Ud(l[0]);break;case"NumberFormat":A.nf=be(Ud(l[0]).Format||"General");if(S[A.nf])A.nf=S[A.nf];for(var Z=0;Z!=392;++Z)if(E._table[Z]==A.nf)break;if(Z==392)for(Z=57;Z!=392;++Z)if(E._table[Z]==null){E.load(A.nf,Z);break}break;case"Column":if(f[f.length-1][0]!=="Table")break;U=Ud(l[0]);if(U.Hidden){U.hidden=true;delete U.Hidden}if(U.Width)U.wpx=parseInt(U.Width,10);if(!W&&U.wpx>10){W=true;gl=bl;for(var J=0;J0)re.Sheet=z.Sheets.length-1;z.Names.push(re);break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")R+=a.slice(D,l.index);else D=l.index+l[0].length;break;case"Interior":if(!t.cellStyles)break;A.Interior=Ud(l[0]);break;case"Protection":break;case"Author":;case"Title":;case"Description":;case"Created":;case"Keywords":;case"Subject":;case"Category":;case"Company":;case"LastAuthor":;case"LastSaved":;case"LastPrinted":;case"Version":;case"Revision":;case"TotalTime":;case"HyperlinkBase":;case"Manager":;case"ContentStatus":;case"Identifier":;case"Language":;case"AppName":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")Wa(O,l[3],a.slice(_,l.index));else _=l.index+l[0].length;break;case"Paragraphs":break;case"Styles":;case"Workbook":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else f.push([l[3],false]);break;case"Comment":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"));jd(M);N.push(M)}else{f.push([l[3],false]);u=Ud(l[0]);M={a:u.Author}}break;case"AutoFilter":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/"){var te=Ud(l[0]);v["!autofilter"]={ref:cf(te.Range).replace(/\$/g,"")};f.push([l[3],true])}break;case"Name":break;case"ComponentOptions":;case"DocumentProperties":;case"CustomDocumentProperties":;case"OfficeDocumentSettings":;case"PivotTable":;case"PivotCache":;case"Names":;case"MapInfo":;case"PageBreaks":;case"QueryTable":;case"DataValidation":;case"Sorting":;case"Schema":;case"data":;case"ConditionalFormatting":;case"SmartTagType":;case"SmartTags":;case"ExcelWorkbook":;case"WorkbookOptions":;case"WorksheetOptions":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/")f.push([l[3],true]);break;default:if(f.length==0&&l[3]=="document")return Mv(a,t);if(f.length==0&&l[3]=="UOF")return Mv(a,t);var ae=true;switch(f[f.length-1][0]){case"OfficeDocumentSettings":switch(l[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:ae=false;}break;case"ComponentOptions":switch(l[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:ae=false;}break;case"ExcelWorkbook":switch(l[3]){case"Date1904":z.WBProps.date1904=true;break;case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:ae=false;}break;case"WorkbookOptions":switch(l[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:ae=false;}break;case"WorksheetOptions":switch(l[3]){case"Visible":if(l[0].slice(-2)==="/>"){}else if(l[1]==="/")switch(a.slice(_,l.index)){case"SheetHidden":j.Hidden=1;break;case"SheetVeryHidden":j.Hidden=2;break;}else _=l.index+l[0].length;break;case"Header":if(!v["!margins"])du(v["!margins"]={},"xlml");v["!margins"].header=ue(l[0]).Margin;break;case"Footer":if(!v["!margins"])du(v["!margins"]={},"xlml");v["!margins"].footer=ue(l[0]).Margin;break;case"PageMargins":var ne=ue(l[0]);if(!v["!margins"])du(v["!margins"]={},"xlml");if(ne.Top)v["!margins"].top=ne.Top;if(ne.Left)v["!margins"].left=ne.Left;if(ne.Right)v["!margins"].right=ne.Right;if(ne.Bottom)v["!margins"].bottom=ne.Bottom;break;case"Unsynced":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"PageSetup":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:ae=false;}break;case"PivotTable":;case"PivotCache":switch(l[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function": -break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:ae=false;}break;case"PageBreaks":switch(l[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:ae=false;}break;case"AutoFilter":switch(l[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:ae=false;}break;case"QueryTable":switch(l[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:ae=false;}break;case"Sorting":;case"ConditionalFormatting":;case"DataValidation":switch(l[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:ae=false;}break;case"MapInfo":;case"Schema":;case"data":switch(l[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":;case"element":;case"complexType":;case"datatype":;case"all":;case"attribute":;case"extends":break;case"row":break;default:ae=false;}break;case"SmartTags":break;default:ae=false;break;}if(ae)break;if(!f[f.length-1][1])throw"Unrecognized tag: "+l[3]+"|"+f.join("|");if(f[f.length-1][0]==="CustomDocumentProperties"){if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")Vd(P,l,y,a.slice(_,l.index));else{y=l;_=l.index+l[0].length}break}if(t.WTF)throw"Unrecognized tag: "+l[3]+"|"+f.join("|");}var ie={};if(!t.bookSheets&&!t.bookProps)ie.Sheets=h;ie.SheetNames=d;ie.Workbook=z;ie.SSF=E.get_table();ie.Props=O;ie.Custprops=P;return ie}function Qd(e){if(Array.isArray(e))return e.map(Ld).join("");var r=[];for(var t=0;t");if(e["!margins"].header)n.push(Ue("Header",null,{"x:Margin":e["!margins"].header}));if(e["!margins"].footer)n.push(Ue("Footer",null,{"x:Margin":e["!margins"].footer}));n.push(Ue("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"}));n.push("")}if(a&&a.Workbook&&a.Workbook.Sheets&&a.Workbook.Sheets[t]){if(a.Workbook.Sheets[t].Hidden)n.push(Ue("Visible",a.Workbook.Sheets[t].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var i=0;i")}}if(e["!protect"]){n.push(Me("ProtectContents","True"));if(e["!protect"].objects)n.push(Me("ProtectObjects","True"));if(e["!protect"].scenarios)n.push(Me("ProtectScenarios","True"));if(e["!protect"].selectLockedCells!=null&&!e["!protect"].selectLockedCells)n.push(Me("EnableSelection","NoSelection"));else if(e["!protect"].selectUnlockedCells!=null&&!e["!protect"].selectUnlockedCells)n.push(Me("EnableSelection","UnlockedCells"));[["formatColumns","AllowFormatCells"],["formatRows","AllowSizeCols"],["formatCells","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(r){if(e["!protect"][r[0]])n.push("<"+r[1]+"/>")})}if(n.length==0)return"";return Ue("WorksheetOptions",n.join(""),{xmlns:Xe.x})}function tv(e){return e.map(function(e){var r=Ce(e.t||"");var t=Ue("ss:Data",r,{xmlns:"http://www.w3.org/TR/REC-html40"});return Ue("Comment",t,{"ss:Author":e.a})}).join("")}function av(e,r,t,a,n,i,s){if(!e||e.v==undefined&&e.f==undefined)return"";var l={};if(e.f)l["ss:Formula"]="="+ge(of(e.f,s));if(e.F&&e.F.substr(0,r.length)==r){var c=Kr(e.F.substr(r.length+1));l["ss:ArrayRange"]="RC:R"+(c.r==s.r?"":"["+(c.r-s.r)+"]")+"C"+(c.c==s.c?"":"["+(c.c-s.c)+"]")}if(e.l&&e.l.Target){l["ss:HRef"]=ge(e.l.Target);if(e.l.Tooltip)l["x:HRefScreenTip"]=ge(e.l.Tooltip)}if(t["!merges"]){var f=t["!merges"];for(var o=0;o!=f.length;++o){if(f[o].s.c!=s.c||f[o].s.r!=s.r)continue;if(f[o].e.c>f[o].s.c)l["ss:MergeAcross"]=f[o].e.c-f[o].s.c;if(f[o].e.r>f[o].s.r)l["ss:MergeDown"]=f[o].e.r-f[o].s.r}}var u="",h="";switch(e.t){case"z":return"";case"n":u="Number";h=String(e.v);break;case"b":u="Boolean";h=e.v?"1":"0";break;case"e":u="Error";h=Ft[e.v];break;case"d":u="DateTime";h=new Date(e.v).toISOString();break;case"s":u="String";h=ge(e.v||"");break;}var d=e.v!=null?h:"";var v=''+d+"";if((e.c||[]).length>0)v+=tv(e.c);return Ue("Cell",v,l)}function nv(e,r){var t='"}function iv(e,r,t,a){if(!e["!ref"])return"";var n=qr(e["!ref"]);var i=e["!merges"]||[],s=0;var l=[];if(e["!cols"])e["!cols"].forEach(function(e,r){xl(e);var t=!!e.width;var a=hu(r,e);var n={"ss:Index":r+1};if(t)n["ss:Width"]=El(a.width);if(e.hidden)n["ss:Hidden"]="1";l.push(Ue("Column",null,n))});var c=Array.isArray(e);for(var f=n.s.r;f<=n.e.r;++f){var o=[nv(f,(e["!rows"]||[])[f])];for(var u=n.s.c;u<=n.e.c;++u){var h=false;for(s=0;s!=i.length;++s){if(i[s].s.c>u)continue;if(i[s].s.r>f)continue;if(i[s].e.c");if(o.length>2)l.push(o.join(""))}return l.join("")}function sv(e,r,t){var a=[];var n=t.SheetNames[e];var i=t.Sheets[n];var s=i?iv(i,r,e,t):"";if(s.length>0)a.push(""+s+"
    ");a.push(rv(i,r,e,t));return a.join("")}function lv(e,r){var t=[];t.push(Jd(e,r));t.push(qd(e,r));t.push(ev(e,r));for(var a=0;a400)throw new Error("Unsupported Clipboard: "+n.toString(16));a+=n;}n=er(t,a);a+=n.length===0?0:5+n.length;r.Reserved1=n;if((n=vr(t,a))!==1907550708)return r;throw new Error("Unsupported Unicode Extension")}function fv(e,r,t,a){var n=t;var i=[];var s=r.slice(r.l,r.l+n);if(a&&a.enc&&a.enc.insitu_decrypt)switch(e.n){case"BOF":;case"FilePass":;case"FileLock":;case"InterfaceHdr":;case"RRDInfo":;case"RRDHead":;case"UsrExcl":break;default:if(s.length===0)break;a.enc.insitu_decrypt(s);}i.push(s);r.l+=n;var l=gv[hr(r,r.l)];var c=0;while(l!=null&&l.n.slice(0,8)==="Continue"){n=hr(r,r.l+2);c=r.l+4;if(l.n=="ContinueFrt")c+=4;else if(l.n.slice(0,11)=="ContinueFrt")c+=12;i.push(r.slice(c,r.l+4+n));r.l+=4+n;l=gv[hr(r,r.l)]}var f=p(i);wr(f,0);var o=0;f.lens=[];for(var u=0;u1)return;if(!I)return;if(t.cellStyles&&r.XF&&r.XF.data)O(e,r,t);delete r.ixfe;delete r.XF;v=e;b=Yr(e);if(c.s){if(e.rc.e.r)c.e.r=e.r+1;if(e.c+1>c.e.c)c.e.c=e.c+1}if(t.cellFormula&&r.f){for(var a=0;ae.c)continue;if(C[a][0].s.r>e.r)continue;if(C[a][0].e.c=t.sheetRows)I=false;else{if(t.dense){if(!i[e.r])i[e.r]=[];i[e.r][e.c]=r}else i[b]=r}};var _={enc:false,sbcch:0,snames:[],sharedf:B,arrayf:C,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,cellStyles:!!r&&!!r.cellStyles,WTF:!!r&&!!r.wtf};if(r.password)_.password=r.password;var y=[];var N=[];var M=[],L=[];var U=0,W=0;var H=false;var V=[];V.SheetNames=_.snames;V.sharedf=_.sharedf;V.arrayf=_.arrayf;V.names=[];V.XTI=[];var X="";var G=0;var z=0;var j=[];var K=[];var Y;_.codepage=1200;n(1200);while(e.l0)Y.Sheet=re.itab-1;V.names.push(Y);if(!V[0])V[0]=[];V[V.length-1].push(re);if(re.Name=="_xlnm._FilterDatabase"&&re.itab>0)if(re.rgce&&re.rgce[0]&&re.rgce[0][0]&&re.rgce[0][0][0]=="PtgArea3d")K[re.itab-1]={ref:Jr(re.rgce[0][0][1][2])};break;case"ExternCount":_.ExternCount=re;break;case"ExternSheet":if(V.length==0){V[0]=[];V[0].XTI=[]}V[V.length-1].XTI=V[V.length-1].XTI.concat(re);V.XTI=V.XTI.concat(re);break;case"NameCmt":if(_.biff<8)break;if(Y!=null)Y.Comment=re[1];break;case"Protect":i["!protect"]=re;break;case"Password":if(re!==0&&_.WTF)console.error("Password verifier: "+re);break;case"Prot4Rev":;case"Prot4RevPass":break;case"BoundSheet8":{s[re.pos]=re;_.snames.push(re.name)}break;case"EOF":{if(--G)break;if(c.e){if(c.e.r>0&&c.e.c>0){c.e.r--;c.e.c--;i["!ref"]=Jr(c);c.e.r++;c.e.c++}if(y.length>0)i["!merges"]=y;if(N.length>0)i["!objects"]=N;if(M.length>0)i["!cols"]=M;if(L.length>0)i["!rows"]=L;R.Sheets.push(D)}if(h==="")d=i;else a[h]=i;i=r.dense?[]:{}}break;case"BOF":{if(_.biff===8)switch(Q){case 9:_.biff=2;break;case 521:_.biff=3;break;case 1033:_.biff=4;break;default:switch(re.BIFFVer){case 1280:_.biff=5;break;case 1536:_.biff=8;break;case 2:_.biff=2;break;case 7:_.biff=2;break;};}if(G++)break;I=true;i=r.dense?[]:{};if(_.biff<5){if(h==="")h="Sheet1";c={s:{r:0,c:0},e:{r:0,c:0}};var ae={pos:e.l-Z,name:h};s[ae.pos]=ae;_.snames.push(h)}else h=(s[$]||{name:""}).name;if(re.dt==32)i["!type"]="chart";y=[];N=[];C=[];_.arrayf=C;M=[];L=[];U=W=0;H=false;D={Hidden:(s[$]||{hs:0}).hs,name:h}}break;case"Number":;case"BIFF2NUM":;case"BIFF2INT":{if(i["!type"]=="chart")if(r.dense?(i[re.r]||[])[re.c]:i[Yr({c:re.c,r:re.r})])++re.c;w={ixfe:re.ixfe,XF:x[re.ixfe]||{},v:re.val,t:"n"};if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"BoolErr":{w={ixfe:re.ixfe,XF:x[re.ixfe],v:re.val,t:re.t};if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"RK":{w={ixfe:re.ixfe,XF:x[re.ixfe],v:re.rknum,t:"n"};if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"MulRk":{for(var ne=re.c;ne<=re.C;++ne){var ie=re.rkrec[ne-re.c][0];w={ixfe:ie,XF:x[ie],v:re.rkrec[ne-re.c][1],t:"n"};if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:ne,r:re.r},w,r)}}break;case"Formula":{if(re.val=="String"){f=re;break}w=uv(re.val,re.cell.ixfe,re.tt);w.XF=x[w.ixfe];if(r.cellFormula){var se=re.formula;if(se&&se[0]&&se[0][0]&&se[0][0][0]=="PtgExp"){var le=se[0][0][1][0],ce=se[0][0][1][1];var fe=Yr({r:le,c:ce});if(B[fe])w.f=""+$o(re.formula,c,re.cell,V,_);else w.F=((r.dense?(i[le]||[])[ce]:i[fe])||{}).F}else w.f=""+$o(re.formula,c,re.cell,V,_)}if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P(re.cell,w,r);f=re}break;case"String":{if(f){f.val=re;w=uv(re,f.cell.ixfe,"s");w.XF=x[w.ixfe];if(r.cellFormula){w.f=""+$o(f.formula,c,f.cell,V,_)}if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P(f.cell,w,r);f=null}else throw new Error("String record expects Formula")}break;case"Array":{C.push(re);var oe=Yr(re[0].s);p=r.dense?(i[re[0].s.r]||[])[re[0].s.c]:i[oe];if(r.cellFormula&&p){if(!f)break;if(!oe||!p)break;p.f=""+$o(re[1],c,re[0],V,_);p.F=Jr(re[0])}}break;case"ShrFmla":{if(!I)break;if(!r.cellFormula)break;if(b){if(!f)break;B[Yr(f.cell)]=re[0];p=r.dense?(i[f.cell.r]||[])[f.cell.c]:i[Yr(f.cell)];(p||{}).f=""+$o(re[0],c,v,V,_)}}break;case"LabelSst":w=uv(u[re.isst].t,re.ixfe,"s");w.XF=x[w.ixfe];if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r);break;case"Blank":if(r.sheetStubs){w={ixfe:re.ixfe,XF:x[re.ixfe],t:"z"};if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"MulBlank":if(r.sheetStubs){for(var ue=re.c;ue<=re.C;++ue){var he=re.ixfe[ue-re.c];w={ixfe:he,XF:x[he],t:"z"};if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:ue,r:re.r},w,r)}}break;case"RString":;case"Label":;case"BIFF2STR":w=uv(re.val,re.ixfe,"s");w.XF=x[w.ixfe];if(z>0)w.z=j[w.ixfe>>8&31];ov(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r);break;case"Dimensions":{if(G===1)c=re}break;case"SST":{u=re}break;case"Format":{E.load(re[1],re[0])}break;case"BIFF2FORMAT":{j[z++]=re;for(var de=0;de=163)E.load(re,z+163)}break;case"MergeCells":y=y.concat(re);break;case"Obj":N[re.cmo[0]]=_.lastobj=re;break;case"TxO":_.lastobj.TxO=re;break;case"ImData":_.lastobj.ImData=re;break;case"HLink":{for(S=re[0].s.r;S<=re[0].e.r;++S)for(k=re[0].s.c;k<=re[0].e.c;++k){p=r.dense?(i[S]||[])[k]:i[Yr({c:k,r:S})];if(p)p.l=re[1]}}break;case"HLinkTooltip":{for(S=re[0].s.r;S<=re[0].e.r;++S)for(k=re[0].s.c;k<=re[0].e.c;++k){p=r.dense?(i[S]||[])[k]:i[Yr({c:k,r:S})];if(p)p.l.Tooltip=re[1]}}break;case"Note":{if(_.biff<=5&&_.biff>=2)break;p=r.dense?(i[re[0].r]||[])[re[0].c]:i[Yr(re[0])];var ve=N[re[2]];if(!p)break;if(!p.c)p.c=[];m={a:re[1],t:ve.TxO.t};p.c.push(m)}break;default:switch(q.n){case"ClrtClient":break;case"XFExt":yc(x[re.ixfe],re.ext);break;case"DefColWidth":U=re;break;case"DefaultRowHeight":W=re[1];break;case"ColInfo":{if(!_.cellStyles)break;while(re.e>=re.s){M[re.e--]={width:re.w/256};if(!H){H=true;Tl(re.w/256)}xl(M[re.e+1])}}break;case"Row":{var be={};if(re.level!=null){L[re.r]=be;be.level=re.level}if(re.hidden){L[re.r]=be;be.hidden=true}if(re.hpt){L[re.r]=be;be.hpt=re.hpt;be.hpx=Fl(re.hpt)}}break;case"LeftMargin":;case"RightMargin":;case"TopMargin":;case"BottomMargin":if(!i["!margins"])du(i["!margins"]={});i["!margins"][te.slice(0,-6).toLowerCase()]=re;break;case"Setup":if(!i["!margins"])du(i["!margins"]={});i["!margins"].header=re.header;i["!margins"].footer=re.footer;break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"GCW":break;case"LHRecord":break;case"DBCell":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXString":break;case"Sync":break;case"Addin":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":;case"FeatHdr11":break;case"Feature11":;case"Feature12":;case"List12":break;case"Country":T=re;break;case"RecalcId":break;case"DxGCol":break;case"Fbi":;case"Fbi2":;case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":A=re;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":;case"DXFN":;case"DXFN12":;case"DXFN12List":;case"DXFN12NoCB":break;case"Dv":;case"DVal":break;case"BRAI":;case"Series":;case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"OleDbConn":break;case"ExtString":break;case"IFmtRecord":break;case"CondFmt":;case"CF":;case"CF12":;case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":;case"Mms":;case"InterfaceEnd":;case"DSF":break;case"BuiltInFnGroupCount":break;case"Window1":;case"Window2":;case"HideObj":;case"GridSet":;case"Guts":;case"UserBView":;case"UserSViewBegin":;case"UserSViewEnd":;case"Pane":break;default:switch(q.n){case"Dat":;case"Begin":;case"End":;case"StartBlock":;case"EndBlock":;case"Frame":;case"Area":;case"Axis":;case"AxisLine":;case"Tick":break;case"AxesUsed":;case"CrtLayout12":;case"CrtLayout12A":;case"CrtLink":;case"CrtLine":;case"CrtMlFrt":;case"CrtMlFrtContinue":break;case"LineFormat":;case"AreaFormat":;case"Chart":;case"Chart3d":;case"Chart3DBarShape":;case"ChartFormat":;case"ChartFrtInfo":break;case"PlotArea":;case"PlotGrowth":break;case"SeriesList":;case"SerParent":;case"SerAuxTrend":break;case"DataFormat":;case"SerToCrt":;case"FontX":break;case"CatSerRange":;case"AxcExt":;case"SerFmt":break;case"ShtProps":break;case"DefaultText":;case"Text":;case"CatLab":break;case"DataLabExtContents":break;case"Legend":;case"LegendException":break;case"Pie":;case"Scatter":break;case"PieFormat":;case"MarkerFormat":break;case"StartObject":;case"EndObject":break;case"AlRuns":;case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":;case"YMult":break;case"Line":;case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":;case"Qsif":;case"Qsir":;case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":;case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":;case"MsoDrawingGroup":;case"MsoDrawingSelection":break;case"WebPub":;case"AutoWebPub":break;case"HeaderFooter":;case"HFPicture":;case"PLV":;case"HorizontalPageBreaks":;case"VerticalPageBreaks":break;case"Backup":;case"CompressPictures":;case"Compat12":break;case"Continue":;case"ContinueFrt12":break;case"FrtFontList":;case"FrtWrapper":break;default:switch(q.n){case"TabIdConf":;case"Radar":;case"RadarArea":;case"DropBar":;case"Intl":;case"CoordList":;case"SerAuxErrBar":break;case"BIFF2FONTCLR":;case"BIFF2FMTCNT":;case"BIFF2FONTXTRA":break;case"BIFF2XF":;case"BIFF3XF":;case"BIFF4XF":break;case"BIFF4FMTCNT":;case"BIFF2ROW":;case"BIFF2WINDOW2":break;case"SCENARIO":;case"DConBin":;case"PicF":;case"DataLabExt":;case"Lel":;case"BopPop":;case"BopPopCustom":;case"RealTimeData":;case"Name":break;case"LHNGraph":;case"FnGroupName":;case"AddMenu":;case"LPr":break;case"ListObj":;case"ListField":break;case"RRSort":break;case"BigName":break;case"ToolbarHdr":;case"ToolbarEnd":break;case"DDEObjName":break;case"FRTArchId$":break;default:if(r.WTF)throw"Unrecognized Record "+q.n;};};};}}else e.l+=Z}var pe=Object.keys(s).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return s[e].name});var me=pe.slice();t.Directory=pe;t.SheetNames=pe;if(!r.bookSheets)t.Sheets=a;if(t.Sheets)K.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Preamble=d;t.Strings=u;t.SSF=E.get_table();if(_.enc)t.Encryption=_.enc;t.Metadata={};if(T!==undefined)t.Metadata.Country=T;if(V.names.length>0)R.Names=V.names;t.Workbook=R;return t}function dv(e,r,t){var a=I.find(e,"!DocumentSummaryInformation");if(a)try{var n=ln(a,Qt);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF==2)throw s}var l=I.find(e,"!SummaryInformation");if(l)try{var c=ln(l,Zt);for(var f in c)if(r[f]==null)r[f]=c[f]}catch(s){if(t.WTF==2)throw s}}function vv(e,r){if(!r)r={};Qv(r);a();var t,n,i;if(e.FullPaths){t=I.find(e,"!CompObj");n=I.find(e,"!SummaryInformation");i=I.find(e,"/Workbook")||I.find(e,"/Book")}else{switch(r.type){case"base64":e=b(h.decode(e));break;case"binary":e=b(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}wr(e,0);i={content:e}}var s,l,c;var f;if(t)s=cv(t);if(r.bookProps&&!r.bookSheets)c={};else{var o=d?"buffer":"array";if(i&&i.content)c=hv(i.content,r);else if((f=I.find(e,"PerfectOffice_MAIN"))&&f.content)c=Bs.to_workbook(f.content,(r.type=o,r));else if((f=I.find(e,"NativeContent_MAIN"))&&f.content)c=Bs.to_workbook(f.content,(r.type=o,r));else throw new Error("Cannot find Workbook stream")}var u={};if(e.FullPaths)dv(e,u,r);c.Props=c.Custprops=u;if(r.bookFiles)c.cfb=e;return c}function bv(e,r){var t=r||{};var a=I.utils.cfb_new({root:"R"});var n="/Workbook";switch(t.bookType||"xls"){case"xls":t.bookType="biff8";case"biff8":n="/Workbook";t.biff=8;break;case"biff5":n="/Book";t.biff=5;break;default:throw new Error("invalid type "+t.bookType+" for XLS CFB");}I.utils.cfb_add(a,n,Fv(e,t));return a}var pv={0:{n:"BrtRowHdr",f:Wu},1:{n:"BrtCellBlank",f:Yu},2:{n:"BrtCellRk",f:ah},3:{n:"BrtCellError",f:Ju},4:{n:"BrtCellBool",f:Qu},5:{n:"BrtCellReal",f:rh},6:{n:"BrtCellSt",f:ih},7:{n:"BrtCellIsst",f:qu},8:{n:"BrtFmlaString",f:oh},9:{n:"BrtFmlaNum",f:fh},10:{n:"BrtFmlaBool",f:lh},11:{n:"BrtFmlaError",f:ch},16:{n:"BrtFRTArchID$",f:fd},19:{n:"BrtSSTItem",f:ft},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:od},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:Kl},44:{n:"BrtFmt",f:zl},45:{n:"BrtFill",f:Zl},46:{n:"BrtBorder",f:tc},47:{n:"BrtXF",f:ql},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:es},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:Lc},64:{n:"BrtDVal"},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Tr,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView"},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:ju},148:{n:"BrtWsDim",f:Xu,p:16},151:{n:"BrtPane"},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:ld},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:id},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:ys},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:xt},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:uh},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata" -},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:St},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:_i},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:ph},427:{n:"BrtShrFmla",f:mh},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:Eh},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:zu},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:vh},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:St},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:qc},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:Zc},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:ut},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp"},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14"},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSxview14"},1063:{n:"BrtEndSxview14"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},65535:{n:""}};var mv=R(pv,"n");var gv={3:{n:"BIFF2NUM",f:os},4:{n:"BIFF2STR",f:fs},6:{n:"Formula",f:No},9:{n:"BOF",f:Kn},10:{n:"EOF",f:cn},12:{n:"CalcCount",f:dn},13:{n:"CalcMode",f:dn},14:{n:"CalcPrecision",f:un},15:{n:"CalcRefMode",f:un},16:{n:"CalcDelta",f:Rt},17:{n:"CalcIter",f:un},18:{n:"Protect",f:un},19:{n:"Password",f:dn},20:{n:"Header",f:Ri},21:{n:"Footer",f:Ri},23:{n:"ExternSheet",f:_i},24:{n:"Lbl",f:Pi},25:{n:"WinProtect",f:un},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:Hi},29:{n:"Selection"},34:{n:"Date1904",f:un},35:{n:"ExternName",f:Fi},38:{n:"LeftMargin",f:Rt},39:{n:"RightMargin",f:Rt},40:{n:"TopMargin",f:Rt},41:{n:"BottomMargin",f:Rt},42:{n:"PrintRowCol",f:un},43:{n:"PrintGrid",f:un},47:{n:"FilePass",f:cl},49:{n:"Font",f:ci},51:{n:"PrintSize",f:dn},60:{n:"Continue"},61:{n:"Window1",f:si},64:{n:"Backup",f:un},65:{n:"Pane"},66:{n:"CodePage",f:dn},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:dn},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:Qn},93:{n:"Obj",f:Xi},94:{n:"Uncalced"},95:{n:"CalcSaveRecalc",f:un},96:{n:"Template"},97:{n:"Intl"},99:{n:"ObjProtect",f:un},125:{n:"ColInfo",f:es},128:{n:"Guts",f:Ci},129:{n:"WsBool"},130:{n:"GridSet",f:dn},131:{n:"HCenter",f:un},132:{n:"VCenter",f:un},133:{n:"BoundSheet8",f:Jn},134:{n:"WriteProtect"},140:{n:"Country",f:$i},141:{n:"HideObj",f:dn},144:{n:"Sort"},146:{n:"Palette",f:Ji},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:dn},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:is},161:{n:"Setup",f:rs},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:mi},190:{n:"MulBlank",f:gi},193:{n:"Mms",f:cn},197:{n:"SXDI"},198:{n:"SXDB"},199:{n:"SXFDB"},200:{n:"SXDBB"},201:{n:"SXNum"},202:{n:"SxBool",f:un},203:{n:"SxErr"},204:{n:"SXInt"},205:{n:"SXString"},206:{n:"SXDtr"},207:{n:"SxNil"},208:{n:"SXTbl"},209:{n:"SXTBRGIITM"},210:{n:"SxTbpg"},211:{n:"ObProj"},213:{n:"SXStreamID"},215:{n:"DBCell"},216:{n:"SXRng"},217:{n:"SxIsxoper"},218:{n:"BookBool",f:dn},220:{n:"DbOrParamQry"},221:{n:"ScenarioProtect",f:un},222:{n:"OleObjectSize"},224:{n:"XF",f:Bi},225:{n:"InterfaceHdr",f:$n},226:{n:"InterfaceEnd",f:cn},227:{n:"SXVS"},229:{n:"MergeCells",f:Vi},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:ei},253:{n:"LabelSst",f:fi},255:{n:"ExtSST",f:ri},256:{n:"SXVDEx"},259:{n:"SXFormula"},290:{n:"SXDBEx"},311:{n:"RRDInsDel"},312:{n:"RRDHead"},315:{n:"RRDChgCell"},317:{n:"RRTabId",f:bn},318:{n:"RRDRenSheet"},319:{n:"RRSort"},320:{n:"RRDMove"},330:{n:"RRFormat"},331:{n:"RRAutoFmt"},333:{n:"RRInsertSh"},334:{n:"RRDMoveBegin"},335:{n:"RRDMoveEnd"},336:{n:"RRDInsDelBegin"},337:{n:"RRDInsDelEnd"},338:{n:"RRDConflict"},339:{n:"RRDDefName"},340:{n:"RRDRstEtxp"},351:{n:"LRng"},352:{n:"UsesELFs",f:un},353:{n:"DSF",f:cn},401:{n:"CUsr"},402:{n:"CbUsr"},403:{n:"UsrInfo"},404:{n:"UsrExcl"},405:{n:"FileLock"},406:{n:"RRDInfo"},407:{n:"BCUsrs"},408:{n:"UsrChk"},425:{n:"UserBView"},426:{n:"UserSViewBegin"},427:{n:"UserSViewEnd"},428:{n:"RRDUserView"},429:{n:"Qsi"},430:{n:"SupBook",f:Di},431:{n:"Prot4Rev",f:un},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:ji},439:{n:"RefreshAll",f:un},440:{n:"HLink",f:Ki},441:{n:"Lel"},442:{n:"CodeName",f:Sn},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:dn},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:cn},449:{n:"RecalcId",f:ni,r:2},450:{n:"EntExU2",f:cn},512:{n:"Dimensions",f:vi},513:{n:"Blank",f:ns},515:{n:"Number",f:xi},516:{n:"Label",f:oi},517:{n:"BoolErr",f:Ti},518:{n:"Formula",f:No},519:{n:"String",f:ss},520:{n:"Row",f:ti},523:{n:"Index"},545:{n:"Array",f:Li},549:{n:"DefaultRowHeight",f:ii},566:{n:"Table"},574:{n:"Window2",f:Tr},638:{n:"RK",f:pi},659:{n:"Style",f:Tr},1030:{n:"Formula",f:No},1048:{n:"BigName"},1054:{n:"Format",f:hi},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:Mi},2048:{n:"HLinkTooltip",f:Yi},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:Kn},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:cn},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:qi,r:12},2173:{n:"XFExt",f:_c,r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:un,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt",f:Tr},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:Ni,r:12},2197:{n:"SortData"},2198:{n:"Theme",f:Ac,r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:Ui,r:12},2203:{n:"CompressPictures",f:cn},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:ai},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:dn},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:ts},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:Zi},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:vi},2:{n:"BIFF2INT",f:hs},5:{n:"BoolErr",f:Ti},7:{n:"String",f:vs},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:dn},30:{n:"BIFF2FORMAT",f:di},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:Li},37:{n:"DefaultRowHeight",f:ii},50:{n:"BIFF2FONTXTRA",f:bs},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:ls},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:ps},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:Kn},536:{n:"Lbl",f:Pi},547:{n:"ExternName",f:Fi},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:Kn},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}};var Ev=R(gv,"n");function kv(e,r,t,a){var n=+r||+Ev[r];if(isNaN(n))return;var i=a||(t||[]).length||0;var s=e.next(4+i);s._W(2,n);s._W(2,i);if(i>0&&or(t))e.push(t)}function Sv(e,r,t){if(!e)e=Ar(7);e._W(2,r);e._W(2,t);e._W(1,0);e._W(1,0);e._W(1,0);return e}function Bv(e,r,t,a){var n=Ar(9);Sv(n,e,r);if(a=="e"){n._W(1,t);n._W(1,1)}else{n._W(1,t?1:0);n._W(1,0)}return n}function Cv(e,r,t){var a=Ar(8+2*t.length);Sv(a,e,r);a._W(1,t.length);a._W(t.length,t,"sbcs");return a.l=0&&i<65536)kv(e,2,ds(t,a,i));else kv(e,3,us(t,a,i));return;case"b":;case"e":kv(e,5,Bv(t,a,r.v,r.t));return;case"s":;case"str":kv(e,4,Cv(t,a,r.v));return;}kv(e,1,Sv(null,t,a))}function Tv(e,r,t,a,n){var i=Array.isArray(r);var s=qr(r["!ref"]||"A1"),l,c="",f=[];for(var o=s.s.r;o<=s.e.r;++o){c=Ur(o);for(var u=s.s.c;u<=s.e.c;++u){if(o===s.s.r)f[u]=Xr(u);l=f[u]+c;var h=i?(r[o]||[])[u]:r[l];if(!h)continue;wv(e,h,o,u,a)}}}function Iv(e,r){var t=r||{};if(o!=null&&t.dense==null)t.dense=o;var a=Dr();var n=0;for(var i=0;i");var i=e.match(/<\/table/i);var s=n.index,l=i&&i.index||e.length;var c=Y(e.slice(s,l),/(:?]*>)/i,"");var f=-1,u=0,h=0,d=0;var v={s:{r:1e7,c:1e7},e:{r:0,c:0}};var b=[],p=0;for(s=0;s/i);for(l=0;l"))>-1)S=S.slice(B+1);while(S.indexOf(">")>-1)S=S.slice(0,S.lastIndexOf("<"));var C=ue(k.slice(0,k.indexOf(">")));d=C.colspan?+C.colspan:1;if((h=+C.rowspan)>0||d>1)b.push({s:{r:f,c:u},e:{r:f+(h||1)-1,c:u+d-1}});if(!S.length){u+=d;continue}S=Fe(be(S));if(v.s.r>f)v.s.r=f;if(v.e.ru)v.s.c=u;if(v.e.c";for(var l=r.s.c;l<=r.e.c;++l){var c=0,f=0;for(var o=0;ot||n[o].s.c>l)continue;if(n[o].e.r1)v.rowspan=c;if(f>1)v.colspan=f;if(a.editable)v.contenteditable="true";v.id="sjs-"+u;i.push(Ue("td",d,v))}var b="";return b+i.join("")+""}function a(e,r,t){var a=[];return a.join("")+""}var n='SheetJS Table Export';var i="";function s(e,r,s){var l=r||{};var c=l.header!=null?l.header:n;var f=l.footer!=null?l.footer:i;var o=[c];var u=Zr(e["!ref"]);l.dense=Array.isArray(e);o.push(a(e,u,l));for(var h=u.s.r;h<=u.e.r;++h)o.push(t(e,u,h,l));o.push("
    "+f);return o.join("")}return{to_workbook:r,to_sheet:e,_row:t,BEGIN:n,END:i,_preamble:a,from_sheet:s}}();function Pv(e,r){var t=r||{};if(o!=null)t.dense=o;var a=t.dense?[]:{};var n=e.getElementsByTagName("tr");var i={s:{r:0,c:0},e:{r:n.length-1,c:0}};var s=[],l=0;var c=0,f=0,u=0,h=0,d=0;for(;c0||d>1)s.push({s:{r:c,c:u},e:{r:c+(h||1)-1,c:u+d-1}});var k={t:"s",v:m};if(m!=null){if(m.length==0)k.t="z";else if(t.raw){}else if(m.trim().length==0)k.t="s";else if(m==="TRUE")k={t:"b",v:true};else if(m==="FALSE")k={t:"b",v:false};else if(!isNaN(z(m)))k={t:"n",v:z(m)};else if(!isNaN(j(m).getDate())){k={t:"d",v:W(m)};if(!t.cellDates)k={t:"n",v:y(k.v)};k.z=t.dateNF||E._table[14]}}if(t.dense){if(!a[c])a[c]=[];a[c][u]=k}else a[Yr({c:u,r:c})]=k;if(i.e.c/g," ").replace(/<[^>]*>/g,""))};var r={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"], -"day-of-week":["ddd","dddd"]};return function t(a,n){var i=n||{};if(o!=null&&i.dense==null)i.dense=o;var s=Kd(a);var l=[],c;var f;var u={name:""},h="",d=0;var v;var b;var p={},m=[];var g=i.dense?[]:{};var E,k;var S={value:""};var B="",C=0,w;var T=-1,I=-1,x={s:{r:1e6,c:1e7},e:{r:0,c:0}};var A={};var R=[],D={},F=0,O=0;var P=[];var _=[],N={};var L="",U=0;var H=1,V=false;var G=0;Yd.lastIndex=0;s=s.replace(//gm,"").replace(//gm,"");while(E=Yd.exec(s))switch(E[3]=E[3].replace(/_.*$/,"")){case"table":;case"工作表":if(E[1]==="/"){if(x.e.c>=x.s.c&&x.e.r>=x.s.r)g["!ref"]=Jr(x);if(R.length)g["!merges"]=R;v.name=Te(v["名称"]||v.name);m.push(v.name);p[v.name]=g}else if(E[0].charAt(E[0].length-2)!=="/"){v=ue(E[0],false);T=I=-1;x.s.r=x.s.c=1e7;x.e.r=x.e.c=0;g=i.dense?[]:{};R=[]}break;case"table-row":;case"行":if(E[1]==="/")break;b=ue(E[0],false);if(b["行号"])T=b["行号"]-1;else++T;I=-1;break;case"covered-table-cell":++I;if(i.sheetStubs){if(i.dense){if(!g[T])g[T]=[];g[T][I]={t:"z"}}else g[Yr({r:T,c:I})]={t:"z"}}break;case"table-cell":;case"数据":if(E[0].charAt(E[0].length-2)==="/"){S=ue(E[0],false);if(S["number-columns-repeated"])I+=parseInt(S["number-columns-repeated"],10);else++I}else if(E[1]!=="/"){++I;H=1;if(I>x.e.c)x.e.c=I;if(T>x.e.r)x.e.r=T;if(I=P[G][0].s.r&&T<=P[G][0].e.r)if(I>=P[G][0].s.c&&I<=P[G][0].e.c)k.F=P[G][1]}if(S["number-columns-spanned"]||S["number-rows-spanned"]){F=parseInt(S["number-rows-spanned"],10)||0;O=parseInt(S["number-columns-spanned"],10)||0;D={s:{r:T,c:I},e:{r:T+F-1,c:I+O-1}};R.push(D)}if(S["number-columns-repeated"])H=parseInt(S["number-columns-repeated"],10);switch(k.t){case"boolean":k.t="b";k.v=we(S["boolean-value"]);break;case"float":k.t="n";k.v=parseFloat(S.value);break;case"percentage":k.t="n";k.v=parseFloat(S.value);break;case"currency":k.t="n";k.v=parseFloat(S.value);break;case"date":k.t="d";k.v=W(S["date-value"]);if(!i.cellDates){k.t="n";k.v=y(k.v)}k.z="m/d/yy";break;case"time":k.t="n";k.v=M(S["time-value"])/86400;break;case"number":k.t="n";k.v=parseFloat(S["数据数值"]);break;default:if(k.t==="string"||k.t==="text"||!k.t){k.t="s";if(S["string-value"]!=null)B=be(S["string-value"])}else throw new Error("Unsupported value type "+k.t);}}else{V=false;if(k.t==="s"){k.v=B||"";V=C==0}if(_.length>0){k.c=_;_=[]}if(B&&i.cellText!==false)k.w=B;if(!V||i.sheetStubs){if(!(i.sheetRows&&i.sheetRows0)g[T][++I]=X(k)}else{g[Yr({r:T,c:I})]=k;while(--H>0)g[Yr({r:T,c:++I})]=X(k)}if(x.e.c<=I)x.e.c=I}}else{I+=H;H=0}k={};B=""}break;case"document":;case"document-content":;case"电子表格文档":;case"spreadsheet":;case"主体":;case"scripts":;case"styles":;case"font-face-decls":if(E[1]==="/"){if((c=l.pop())[0]!==E[3])throw"Bad state: "+c}else if(E[0].charAt(E[0].length-2)!=="/")l.push([E[3],true]);break;case"annotation":if(E[1]==="/"){if((c=l.pop())[0]!==E[3])throw"Bad state: "+c;N.t=B;N.a=L;_.push(N)}else if(E[0].charAt(E[0].length-2)!=="/"){l.push([E[3],false])}L="";U=0;B="";C=0;break;case"creator":if(E[1]==="/"){L=s.slice(U,E.index)}else U=E.index+E[0].length;break;case"meta":;case"元数据":;case"settings":;case"config-item-set":;case"config-item-map-indexed":;case"config-item-map-entry":;case"config-item-map-named":;case"shapes":;case"frame":;case"text-box":;case"image":;case"data-pilot-tables":;case"list-style":;case"form":;case"dde-links":;case"event-listeners":if(E[1]==="/"){if((c=l.pop())[0]!==E[3])throw"Bad state: "+c}else if(E[0].charAt(E[0].length-2)!=="/")l.push([E[3],false]);B="";C=0;break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":;case"percentage-style":;case"date-style":;case"time-style":if(E[1]==="/"){A[u.name]=h;if((c=l.pop())[0]!==E[3])throw"Bad state: "+c}else if(E[0].charAt(E[0].length-2)!=="/"){h="";u=ue(E[0],false);l.push([E[3],true])}break;case"script":break;case"libraries":break;case"automatic-styles":break;case"master-styles":break;case"default-style":;case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(l[l.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"fraction":break;case"day":;case"month":;case"year":;case"era":;case"day-of-week":;case"week-of-year":;case"quarter":;case"hours":;case"minutes":;case"seconds":;case"am-pm":switch(l[l.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(E[0].slice(-2)==="/>")break;else if(E[1]==="/")switch(l[l.length-1][0]){case"number-style":;case"date-style":;case"time-style":h+=s.slice(d,E.index);break;}else d=E.index+E[0].length;break;case"text-content":break;case"text-properties":break;case"body":;case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-row-group":break;case"table-column-group":break;case"table-header-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"named-range":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":;case"文本串":if(E[1]==="/")B=(B.length>0?B+"\n":"")+e(s.slice(C,E.index),w);else{w=ue(E[0],false);C=E.index+E[0].length}break;case"database-range":if(E[1]==="/")break;try{var z=cu(ue(E[0])["target-range-address"]);p[z[0]]["!autofilter"]={ref:z[1]}}catch(j){}break;case"s":break;case"date":break;case"object":break;case"title":;case"标题":break;case"desc":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":;case"sender-lastname":;case"sender-initials":;case"sender-title":;case"sender-position":;case"sender-email":;case"sender-phone-private":;case"sender-fax":;case"sender-company":;case"sender-phone-work":;case"sender-street":;case"sender-city":;case"sender-postal-code":;case"sender-country":;case"sender-state-or-province":;case"author-name":;case"author-initials":;case"chapter":;case"file-name":;case"template-name":;case"sheet-name":break;case"event-listener":break;case"initial-creator":;case"creation-date":;case"generator":;case"document-statistic":;case"user-defined":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":;case"source-cell-range":;case"source-service":;case"data-pilot-field":;case"data-pilot-level":;case"data-pilot-subtotals":;case"data-pilot-subtotal":;case"data-pilot-members":;case"data-pilot-member":;case"data-pilot-display-info":;case"data-pilot-sort-info":;case"data-pilot-layout-info":;case"data-pilot-field-reference":;case"data-pilot-groups":;case"data-pilot-group":;case"data-pilot-group-member":break;case"rect":break;case"dde-connection-decls":;case"dde-connection-decl":;case"dde-link":;case"dde-source":break;case"properties":break;case"property":break;case"a":break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:if(E[2]==="dc:")break;if(E[2]==="draw:")break;if(E[2]==="style:")break;if(E[2]==="form:")break;if(E[2]==="calcext:")break;if(E[2]==="loext:")break;if(E[2]==="uof:")break;if(E[2]==="表:")break;if(E[2]==="字:")break;if(i.WTF)throw new Error(E);}var K={Sheets:p,SheetNames:m};return K}}();function Nv(e,r){r=r||{};var t=!!J(e,"objectdata");if(t)var a=ga(ee(e,"META-INF/manifest.xml"),r);var n=re(e,"content.xml");if(!n)throw new Error("Missing content.xml in "+(t?"ODS":"UOF")+" file");var i=yv(t?n:Te(n),r);if(J(e,"meta.xml"))i.Props=Ia(ee(e,"meta.xml"));return i}function Mv(e,r){return yv(e,r)}var Lv=function(){var e='';return function r(t,a){return e}}();var Uv=function(){var e=" \n";var r=" \n";var t=function(t,a,n,i){var s=[];s.push(' \n');var l=0,c=0,f=Zr(t["!ref"]);var o=t["!merges"]||[],u=0;var h=Array.isArray(t);for(l=0;l\n");for(;l<=f.e.r;++l){s.push(" \n");for(c=0;cc)continue;if(o[u].s.r>l)continue;if(o[u].e.c\n")}s.push(" \n");return s.join("")};var a=function(e){e.push(" \n");e.push(' \n');e.push(' \n');e.push(" /\n");e.push(' \n');e.push(" /\n");e.push(" \n");e.push(" \n");e.push(' \n');e.push(" \n")};return function n(e,r){var n=[se];var i=Le({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Le({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods")n.push("\n");else n.push("\n");a(n);n.push(" \n");n.push(" \n");for(var l=0;l!=e.SheetNames.length;++l)n.push(t(e.Sheets[e.SheetNames[l]],e,l,r));n.push(" \n");n.push(" \n");if(r.bookType=="fods")n.push("");else n.push("");return n.join("")}}();function Wv(e,r){if(r.bookType=="fods")return Uv(e,r);var t=new ae;var a="";var n=[];var i=[];a="mimetype";t.file(a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";t.file(a,Uv(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";t.file(a,Lv(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="manifest.rdf";t.file(a,Ba(i,r));n.push([a,"application/rdf+xml"]);a="meta.xml";t.file(a,Ca(e,r));n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="META-INF/manifest.xml";t.file(a,Ea(n,r));return t}function Hv(e){return function r(t,a){var n=0;for(var i=0;i-1)return"sheet";if(ua.CS&&e==ua.CS)return"chart";if(ua.DS&&e==ua.DS)return"dialog";if(ua.MS&&e==ua.MS)return"macro";return e&&e.length?e:"sheet"}function qv(e,r){if(!e)return 0;try{e=r.map(function a(r){if(!r.id)r.id=r.strRelID;return[r.name,e["!id"][r.id].Target,Jv(e["!id"][r.id].Type)]})}catch(t){return null}return!e||e.length===0?null:e}function eb(e,r,t,a,n,i,s,l,c,f,o){try{n[a]=da(re(e,t,true),r);var u=ee(e,r);switch(s){case"sheet":i[a]=kd(u,r,l,n[a],c,f,o);break;case"chart":var h=Sd(u,r,l,n[a],c,f,o);i[a]=h;if(!h||!h["!chart"])break;var d=ie(h["!chart"].Target,r);var v=ha(d);var b=Xc(re(e,d,true),da(re(e,v,true),d));var p=ie(b,d);var m=ha(p);h=Nh(re(e,p,true),p,l,da(re(e,m,true),p),c,h);break;case"macro":i[a]=Bd(u,r,l,n[a],c,f,o);break;case"dialog":i[a]=Cd(u,r,l,n[a],c,f,o);break;}}catch(g){if(l.WTF)throw g}}var rb=function qb(e){return e.slice(-1)!="/"};function tb(e){return e.charAt(0)=="/"?e.slice(1):e}function ab(e,r){k(E);r=r||{};Qv(r);a();if(J(e,"META-INF/manifest.xml"))return Nv(e,r);if(J(e,"objectdata.xml"))return Nv(e,r);var t=A(e.files).filter(rb).sort();var i=la(re(e,"[Content_Types].xml"),r);var s=false;var l,c;if(i.workbooks.length===0){c="xl/workbook.xml";if(ee(e,c,true))i.workbooks.push(c)}if(i.workbooks.length===0){c="xl/workbook.bin";if(!ee(e,c,true))throw new Error("Could not find workbook");i.workbooks.push(c);s=true}if(i.workbooks[0].slice(-3)=="bin")s=true;if(s)n(1200);var f={};var o={};if(!r.bookSheets&&!r.bookProps){fu=[];if(i.sst)fu=Id(ee(e,tb(i.sst)),i.sst,r);if(r.cellStyles&&i.themes.length)f=Td(re(e,i.themes[0].replace(/^\//,""),true)||"",i.themes[0],r);if(i.style)o=wd(ee(e,tb(i.style)),i.style,f,r)}var u=i.links.map(function(t){return Rd(ee(e,tb(t)),t,r)});var h=Ed(ee(e,tb(i.workbooks[0])),i.workbooks[0],r);var d={},v="";if(i.coreprops.length){v=ee(e,tb(i.coreprops[0]),true);if(v)d=Ia(v);if(i.extprops.length!==0){v=ee(e,tb(i.extprops[0]),true);if(v)Fa(v,d,r)}}var b={};if(!r.bookSheets||r.bookProps){if(i.custprops.length!==0){v=re(e,tb(i.custprops[0]),true);if(v)b=ya(v,r)}}var p={};if(r.bookSheets||r.bookProps){if(h.Sheets)l=h.Sheets.map(function O(e){return e.name});else if(d.Worksheets&&d.SheetNames.length>0)l=d.SheetNames;if(r.bookProps){p.Props=d;p.Custprops=b}if(r.bookSheets&&typeof l!=="undefined")p.SheetNames=l;if(r.bookSheets?p.SheetNames:r.bookProps)return p}l={};var m={};if(r.bookDeps&&i.calcchain)m=Ad(ee(e,tb(i.calcchain)),i.calcchain,r);var g=0;var S={};var B,C;{var w=h.Sheets;d.Worksheets=w.length;d.SheetNames=[];for(var T=0;T!=w.length;++T){d.SheetNames[T]=w[T].name}}var I=s?"bin":"xml";var x="xl/_rels/workbook."+I+".rels";var R=da(re(e,x,true),x);if(R)R=qv(R,h.Sheets);var D=ee(e,"xl/worksheets/sheet.xml",true)?1:0;for(g=0;g!=d.Worksheets;++g){var F="sheet";if(R&&R[g]){B="xl/"+R[g][1].replace(/[\/]?xl\//,"");F=R[g][2]}else{B="xl/worksheets/sheet"+(g+1-D)+"."+I;B=B.replace(/sheet0\./,"sheet.")}C=B.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");eb(e,B,C,d.SheetNames[g],S,l,F,r,h,f,o)}if(i.comments)jc(e,i.comments,l,S,r);p={Directory:i,Workbook:h,Props:d,Custprops:b,Deps:m,Sheets:l,SheetNames:d.SheetNames,Strings:fu,Styles:o,Themes:f,SSF:E.get_table()};if(r.bookFiles){p.keys=t;p.files=e.files}if(r.bookVBA){if(i.vba.length>0)p.vbaraw=ee(e,tb(i.vba[0]),true);else if(i.defaults&&i.defaults.bin==="application/vnd.ms-office.vbaProject")p.vbaraw=ee(e,"xl/vbaProject.bin",true)}return p}function nb(e,r){var t="Version";var a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var n=Vs(a.content);t="DataSpaceMap";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var i=Gs(a.content);if(i.length!=1||i[0].comps.length!=1||i[0].comps[0].t!=0||i[0].name!="StrongEncryptionDataSpace"||i[0].comps[0].v!="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+t);t="StrongEncryptionDataSpace";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var s=zs(a.content);if(s.length!=1||s[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+t);t="!Primary";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var l=Ks(a.content);t="EncryptionInfo";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var c=Qs(a.content);throw new Error("File is password-protected")}function ib(e,r){Gc=1024;if(r.bookType=="ods")return Wv(e,r);if(e&&!e.SSF){e.SSF=E.get_table()}if(e&&e.SSF){k(E);E.load_table(e.SSF);r.revssf=F(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;var t=r.bookType=="xlsb"?"bin":"xml";var a=r.bookType=="xlsb"||r.bookType=="xlsm";var n=sa();Zv(r=r||{});var i=new ae;var s="",l=0;r.cellXfs=[];vu(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";i.file(s,Ra(e.Props,r));n.coreprops.push(s);pa(r.rels,2,s,ua.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else e.Props.SheetNames=e.SheetNames.map(function(r,t){return[(e.Workbook.Sheets[t]||{}).Hidden!=2,r]}).filter(function(e){return e[0]}).map(function(e){return e[1]});e.Props.Worksheets=e.Props.SheetNames.length;i.file(s,Pa(e.Props,r));n.extprops.push(s);pa(r.rels,3,s,ua.EXT_PROPS);if(e.Custprops!==e.Props&&A(e.Custprops||{}).length>0){s="docProps/custom.xml";i.file(s,Ma(e.Custprops,r));n.custprops.push(s);pa(r.rels,4,s,ua.CUST_PROPS)}s="xl/workbook."+t;i.file(s,Dd(e,s,r));n.workbooks.push(s);pa(r.rels,1,s,ua.WB);for(l=1;l<=e.SheetNames.length;++l){var c={"!id":{}};var f=e.Sheets[e.SheetNames[l-1]];var o=(f||{})["!type"]||"sheet";switch(o){case"chart":;default:s="xl/worksheets/sheet"+l+"."+t;i.file(s,Fd(l-1,s,r,e,c));n.sheets.push(s);pa(r.wbrels,-1,"worksheets/sheet"+l+"."+t,ua.WS[0]);}if(f){var u=f["!comments"];if(u&&u.length>0){var h="xl/comments"+l+"."+t;i.file(h,yd(u,h,r));n.comments.push(h);pa(c,-1,"../comments"+l+"."+t,ua.CMNT)}if(f["!legacy"]){i.file("xl/drawings/vmlDrawing"+l+".vml",zc(l,f["!comments"]))}delete f["!comments"];delete f["!legacy"]}if(c["!id"].rId1)i.file(ha(s),ba(c))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;i.file(s,_d(r.Strings,s,r));n.strs.push(s);pa(r.wbrels,-1,"sharedStrings."+t,ua.SST)}s="xl/theme/theme1.xml";i.file(s,xc(e.Themes,r));n.themes.push(s);pa(r.wbrels,-1,"theme/theme1.xml",ua.THEME);s="xl/styles."+t;i.file(s,Pd(e,s,r));n.styles.push(s);pa(r.wbrels,-1,"styles."+t,ua.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";i.file(s,e.vbaraw);n.vba.push(s);pa(r.wbrels,-1,"vbaProject.bin",ua.VBA)}i.file("[Content_Types].xml",oa(n,r));i.file("_rels/.rels",ba(r.rels));i.file("xl/_rels/workbook."+t+".rels",ba(r.wbrels));delete r.revssf;delete r.ssf;return i}function sb(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3]];case"base64":t=h.decode(e.substr(0,24));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}function lb(e,r){if(I.find(e,"EncryptedPackage"))return nb(e,r);return vv(e,r)}function cb(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=d&&Buffer.isBuffer(e)?"buffer":"base64";switch(n.type){case"base64":t=new ae(a,{base64:true});break;case"binary":;case"array":t=new ae(a,{base64:false});break;case"buffer":t=new ae(a);break;default:throw new Error("Unrecognized type "+n.type);}return ab(t,n)}function fb(e,r){var t=0;e:while(t=2&&n[3]==0)return Bs.to_workbook(a,s);break;case 3:;case 131:;case 139:return ms.to_workbook(a,s);case 123:if(n[1]==92&&n[2]==114&&n[3]==116)return fl.to_workbook(a,s);break;case 10:;case 13:;case 32:return ob(a,s);}if(n[2]<=12&&n[3]<=31)return ms.to_workbook(a,s);if(32>n[0]||n[0]>127)throw new Error("Unsupported file "+n.join("|"));return db(e,a,s,i)}function bb(e,r){var t=r||{};t.type="file";return vb(e,t)}function pb(e,r){var t=r||{};var a=ib(e,t);var n={};if(t.compression)n.compression="DEFLATE";switch(t.type){case"base64":n.type="base64";break;case"binary":n.type="string";break;case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");case"buffer":;case"file":n.type="nodebuffer";break;default:throw new Error("Unrecognized type "+t.type);}if(t.type==="file")return te.writeFileSync(t.file,a.generate(n));var i=a.generate(n);return t.type=="string"?Te(i):i}function mb(e,r){var t=r||{};var a=bv(e,t);switch(t.type){case"base64":;case"binary":break;case"buffer":;case"array":t.type="";break;case"file":return te.writeFileSync(t.file,I.write(a,{type:"buffer"}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");default:throw new Error("Unrecognized type "+t.type);}return I.write(a,t)}function gb(e,r,t){if(!t)t="";var a=t+e;switch(r.type){case"base64":return h.encode(Ie(a));case"binary":return Ie(a);case"string":return e;case"file":return te.writeFileSync(r.file,a,"utf8");case"buffer":{if(d)return new Buffer(a,"utf8");else return gb(a,{type:"binary"}).split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Eb(e,r){switch(r.type){case"base64":return h.encode(e);case"binary":return e;case"string":return e;case"file":return te.writeFileSync(r.file,e,"binary");case"buffer":{if(d)return new Buffer(e,"binary");else return e.split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function kb(e,r){switch(r.type){case"string":;case"base64":;case"binary":var t="";for(var a=0;a0)n=0;var v=Ur(f.s.r);var b=[];var p=[];var m=0,g=0;var E=Array.isArray(e);var k=f.s.r,S=0,B=0;if(E&&!e[k])e[k]=[];for(S=f.s.c;S<=f.e.c;++S){b[S]=Xr(S);t=E?e[k][S]:e[b[S]+v];switch(a){case 1:i[S]=S-f.s.c;break;case 2:i[S]=b[S];break;case 3:i[S]=o.header[S-f.s.c];break;default:if(t==null)continue;c=l=rt(t,null,o);g=0;for(B=0;B=0)o='"'+o.replace(Ib,'""')+'"'}else o="";f.push(o)}if(l.blankrows===false&&c)return null;return f.join(s)}function Ab(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=qr(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var l=a.RS!==undefined?a.RS:"\n",c=l.charCodeAt(0);var f=new RegExp((i=="|"?"\\|":i)+"+$");var o="",u=[];a.dense=Array.isArray(e);var h=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var v=n.s.c;v<=n.e.c;++v)if(!(h[v]||{}).hidden)u[v]=Xr(v);for(var b=n.s.r;b<=n.e.r;++b){if((d[b]||{}).hidden)continue;o=xb(e,n,b,u,s,c,i,a);if(o==null){continue}if(a.strip)o=o.replace(f,"");t.push(o+l)}delete a.dense;return t.join("")}function Rb(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=Ab(e,r);if(typeof cptable=="undefined"||r.type=="string")return t;var a=cptable.utils.encode(1200,t,"str");return"ÿþ"+a}function Db(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=qr(e["!ref"]),i="",s=[],l;var c=[]; -var f=Array.isArray(e);for(l=n.s.c;l<=n.e.c;++l)s[l]=Xr(l);for(var o=n.s.r;o<=n.e.r;++o){i=Ur(o);for(l=n.s.c;l<=n.e.c;++l){r=s[l]+i;t=f?(e[o]||[])[l]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;c[c.length]=r+"="+a}}return c}function Fb(e,r){var t=r||{};var a={};var n;var i={s:{c:0,r:0},e:{c:0,r:e.length}};var s=t.header||[],l=0;for(var c=0;c!=e.length;++c){Object.keys(e[c]).filter(function(r){return e[c].hasOwnProperty(r)}).forEach(function(r){if((l=s.indexOf(r))==-1)s[l=s.length]=r;var i=e[c][r];var f="z";var o="";if(typeof i=="number")f="n";else if(typeof i=="boolean")f="b";else if(typeof i=="string")f="s";else if(i instanceof Date){f="d";if(!t.cellDates){f="n";i=y(i)}o=t.dateNF||E._table[14]}a[Yr({c:l,r:c+1})]=n={t:f,v:i};if(o)n.z=o})}i.e.c=s.length-1;for(l=0;l=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}e.book_new=function(){return{SheetNames:[],Sheets:{}}};e.book_append_sheet=function(e,r,t){if(!t)for(var a=1;a<=65535;++a)if(e.SheetNames.indexOf(t="Sheet"+a)==-1)break;if(!t)throw new Error("Too many worksheets");Jh(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r};e.book_set_sheet_visibility=function(e,r,a){t(e,"Workbook",{});t(e.Workbook,"Sheets",[]);var i=n(e,r);t(e.Workbook.Sheets,i,{});switch(a){case 0:;case 1:;case 2:break;default:throw new Error("Bad sheet visibility setting "+a);}e.Workbook.Sheets[i].Hidden=a};r([["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]]);e.cell_set_number_format=function(e,r){e.z=r;return e};e.cell_set_hyperlink=function(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e};e.cell_add_comment=function(e,r,t){if(!e.c)e.c=[];e.c.push({t:r,a:t||"SheetJS"})};e.sheet_set_array_formula=function(e,r,t){var n=typeof r!="string"?r:qr(r);var i=typeof r=="string"?r:Jr(r);for(var s=n.s.r;s<=n.e.r;++s)for(var l=n.s.c;l<=n.e.c;++l){var c=a(e,s,l);c.t="n";c.F=i;delete c.v;if(s==n.s.r&&l==n.s.c)c.f=t}return e};return e})(Ob);if(d&&typeof require!="undefined")(function(){var e={}.Readable;var t=function(r,t){var a=e();var n="";var i=t==null?{}:t;if(r==null||r["!ref"]==null){a.push(null);return a}var s=qr(r["!ref"]);var l=i.FS!==undefined?i.FS:",",c=l.charCodeAt(0);var f=i.RS!==undefined?i.RS:"\n",o=f.charCodeAt(0);var u=new RegExp((l=="|"?"\\|":l)+"+$");var h="",d=[];i.dense=Array.isArray(r);var v=i.skipHidden&&r["!cols"]||[];var b=i.skipHidden&&r["!rows"]||[];for(var p=s.s.c;p<=s.e.c;++p)if(!(v[p]||{}).hidden)d[p]=Xr(p);var m=s.s.r;a._read=function(){if(m>s.e.r)return a.push(null);while(m<=s.e.r){++m;if((b[m-1]||{}).hidden)continue;h=xb(r,s,m-1,d,c,o,l,i);if(h!=null){if(i.strip)h=h.replace(u,"");a.push(h+f);break}}};return a};var a=function(r,t){var a=e();var n=t||{};var i=n.header!=null?n.header:Ov.BEGIN;var s=n.footer!=null?n.footer:Ov.END;a.push(i);var l=Zr(r["!ref"]);n.dense=Array.isArray(r);a.push(Ov._preamble(r,l,n));var c=l.s.r;var f=false;a._read=function(){if(c>l.e.r){if(!f){f=true;a.push(""+s)}return a.push(null)}while(c<=l.e.r){a.push(Ov._row(r,l,c,n));++c;break}};return a};r.stream={to_html:a,to_csv:t}})();r.parse_xlscfb=vv;r.parse_ods=Nv;r.parse_fods=Mv;r.write_ods=Wv;r.parse_zip=ab;r.read=vb;r.readFile=bb;r.readFileSync=bb;r.write=Sb;r.writeFile=Cb;r.writeFileSync=Cb;r.writeFileAsync=wb;r.utils=Ob;r.SSF=E})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX;var ODS=XLSX; +var DO_NOT_EXPORT_CODEPAGE=true;var DO_NOT_EXPORT_JSZIP=true;var XLSX={};(function e(r){r.version="0.11.6";var t=1200;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")global.cptable=undefined}function a(){n(1200)}var n=function(e){t=e};function i(e){var r=[];for(var t=0,a=e.length;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return r.join("")}function l(e){var r=[];for(var t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join("")}var c=function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);if(r==255&&t==254)return s(e.substr(2));if(r==254&&t==255)return l(e.substr(2));if(r==65279)return e.substr(1);return e};var f=function Zb(e){return String.fromCharCode(e)};if(typeof cptable!=="undefined"){n=function(e){t=e};c=function(e){if(e.charCodeAt(0)===255&&e.charCodeAt(1)===254){return cptable.utils.decode(1200,i(e.substr(2)))}return e};f=function Jb(e){if(t===1200)return String.fromCharCode(e);return cptable.utils.decode(t,[e&255,e>>8])[0]}}var o=null;var u=true;var h=function qb(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(r){var t="";var a,n,i,s,l,c,f;for(var o=0;o>2;l=(a&3)<<4|n>>4;c=(n&15)<<2|i>>6;f=i&63;if(isNaN(n)){c=f=64}else if(isNaN(i)){f=64}t+=e.charAt(s)+e.charAt(l)+e.charAt(c)+e.charAt(f)}return t},decode:function r(t){var a="";var n,i,s;var l,c,f,o;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var u=0;u>4;i=(c&15)<<4|f>>2;s=(f&3)<<6|o;a+=String.fromCharCode(n);if(f!=64){a+=String.fromCharCode(i)}if(o!=64){a+=String.fromCharCode(s)}}return a}}}();var d=typeof Buffer!=="undefined"&&typeof process!=="undefined"&&typeof process.versions!=="undefined"&&process.versions.node;function v(e){return new(d?Buffer:Array)(e)}function b(e){if(d)return new Buffer(e,"binary");return e.split("").map(function(e){return e.charCodeAt(0)&255})}var p=function(e){return[].concat.apply([],e)};var m=/\u0000/g,g=/[\u0001-\u0006]/;var E={};var S=function ep(e){e.version="0.10.0";function r(e){var r="",t=e.length-1;while(t>=0)r+=e.charAt(t--);return r}function t(e,r){var t="";while(t.length=r?a:t("0",r-a.length)+a}function n(e,r){var a=""+e;return a.length>=r?a:t(" ",r-a.length)+a}function i(e,r){var a=""+e;return a.length>=r?a:a+t(" ",r-a.length)}function s(e,r){var a=""+Math.round(e);return a.length>=r?a:t("0",r-a.length)+a}function l(e,r){var a=""+e;return a.length>=r?a:t("0",r-a.length)+a}var c=Math.pow(2,32);function f(e,r){if(e>c||e<-c)return s(e,r);var t=Math.round(e);return l(t,r)}function o(e,r){r=r||0;return e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var h=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function d(e){e[0]="General";e[1]="0";e[2]="0.00";e[3]="#,##0";e[4]="#,##0.00";e[9]="0%";e[10]="0.00%";e[11]="0.00E+00";e[12]="# ?/?";e[13]="# ??/??";e[14]="m/d/yy";e[15]="d-mmm-yy";e[16]="d-mmm";e[17]="mmm-yy";e[18]="h:mm AM/PM";e[19]="h:mm:ss AM/PM";e[20]="h:mm";e[21]="h:mm:ss";e[22]="m/d/yy h:mm";e[37]="#,##0 ;(#,##0)";e[38]="#,##0 ;[Red](#,##0)";e[39]="#,##0.00;(#,##0.00)";e[40]="#,##0.00;[Red](#,##0.00)";e[45]="mm:ss";e[46]="[h]:mm:ss";e[47]="mmss.0";e[48]="##0.0E+0";e[49]="@";e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "';e[65535]="General"}var v={};d(v);function b(e,r,t){var a=e<0?-1:1;var n=e*a;var i=0,s=1,l=0;var c=1,f=0,o=0;var u=Math.floor(n);while(fr){if(f>r){o=c;l=i}else{o=f;l=s}}if(!t)return[0,a*l,o];var h=Math.floor(a*l/o);return[h,a*l-h*o,o]}function p(e,r,t){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),i=0;var s=[];var l={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(l.u)<1e-6)l.u=0;if(r&&r.date1904)a+=1462;if(l.u>.9999){l.u=0;if(++n==86400){l.T=n=0;++a;++l.D}}if(a===60){s=t?[1317,10,29]:[1900,2,29];i=3}else if(a===0){s=t?[1317,8,29]:[1900,1,0];i=6}else{if(a>60)--a;var c=new Date(1900,0,1);c.setDate(c.getDate()+a-1);s=[c.getFullYear(),c.getMonth()+1,c.getDate()];i=c.getDay();if(a<60)i=(i+6)%7;if(t)i=w(c,s)}l.y=s[0];l.m=s[1];l.d=s[2];l.S=n%60;n=Math.floor(n/60);l.M=n%60;n=Math.floor(n/60);l.H=n;l.q=i;return l}e.parse_date_code=p;var m=new Date(1899,11,31,0,0,0);var g=m.getTime();var E=new Date(1900,2,1,0,0,0);function S(e,r){var t=e.getTime();if(r)t-=1461*24*60*60*1e3;else if(e>=E)t+=24*60*60*1e3;return(t-(g+(e.getTimezoneOffset()-m.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function k(e){return e.toString(10)}e._general_int=k;var B=function L(){var e=/\.(\d*[1-9])0+$/,r=/\.0*$/,t=/\.(\d*[1-9])0+/,a=/\.0*[Ee]/,n=/(E[+-])(\d)$/;function i(e){var r=e<0?12:11;var t=c(e.toFixed(12));if(t.length<=r)return t;t=e.toPrecision(10);if(t.length<=r)return t;return e.toExponential(5)}function s(r){var t=r.toFixed(11).replace(e,".$1");if(t.length>(r<0?12:11))t=r.toPrecision(6);return t}function l(e){for(var r=0;r!=e.length;++r)if((e.charCodeAt(r)|32)===101)return e.replace(t,".$1").replace(a,"E").replace("e","E").replace(n,"$10$2");return e}function c(t){return t.indexOf(".")>-1?t.replace(r,"").replace(e,".$1"):t}return function f(e){var r=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),t;if(r>=-4&&r<=-1)t=e.toPrecision(10+r);else if(Math.abs(r)<=9)t=i(e);else if(r===10)t=e.toFixed(10).substr(0,12);else t=s(e);return c(l(t))}}();e._general_num=B;function C(e,r){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?k(e):B(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return N(14,S(e,r&&r.date1904),r);}throw new Error("unsupported value in General format: "+e)}e._general=C;function w(){return 0}function T(e,r,t,n){var i="",s=0,l=0,c=t.y,f,o=0;switch(e){case 98:c=t.y+543;case 121:switch(r.length){case 1:;case 2:f=c%100;o=2;break;default:f=c%1e4;o=4;break;}break;case 109:switch(r.length){case 1:;case 2:f=t.m;o=r.length;break;case 3:return h[t.m-1][1];case 5:return h[t.m-1][0];default:return h[t.m-1][2];}break;case 100:switch(r.length){case 1:;case 2:f=t.d;o=r.length;break;case 3:return u[t.q][0];default:return u[t.q][1];}break;case 104:switch(r.length){case 1:;case 2:f=1+(t.H+11)%12;o=r.length;break;default:throw"bad hour format: "+r;}break;case 72:switch(r.length){case 1:;case 2:f=t.H;o=r.length;break;default:throw"bad hour format: "+r;}break;case 77:switch(r.length){case 1:;case 2:f=t.M;o=r.length;break;default:throw"bad minute format: "+r;}break;case 115:if(r!="s"&&r!="ss"&&r!=".0"&&r!=".00"&&r!=".000")throw"bad second format: "+r;if(t.u===0&&(r=="s"||r=="ss"))return a(t.S,r.length);if(n>=2)l=n===3?1e3:100;else l=n===1?10:1;s=Math.round(l*(t.S+t.u));if(s>=60*l)s=0;if(r==="s")return s===0?"0":""+s/l;i=a(s,2+n);if(r==="ss")return i.substr(0,2);return"."+i.substr(2,r.length-1);case 90:switch(r){case"[h]":;case"[hh]":f=t.D*24+t.H;break;case"[m]":;case"[mm]":f=(t.D*24+t.H)*60+t.M;break;case"[s]":;case"[ss]":f=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw"bad abstime format: "+r;}o=r.length===3?1:2;break;case 101:f=c;o=1;}if(o>0)return a(f,o);else return""}function I(e){var r=3;if(e.length<=r)return e;var t=e.length%r,a=e.substr(0,t);for(;t!=e.length;t+=r)a+=(a.length>0?",":"")+e.substr(t,r);return a}var x=function U(){var e=/%/g;function s(r,a,n){var i=a.replace(e,""),s=a.length-i.length;return x(r,i,n*Math.pow(10,2*s))+t("%",s)}function l(e,r,t){var a=r.length-1;while(r.charCodeAt(a-1)===44)--a;return x(e,r.substr(0,a),t/Math.pow(10,3*(r.length-a)))}function c(e,r){var t;var a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(r==0)return"0.0E+0";else if(r<0)return"-"+c(e,-r);var n=e.indexOf(".");if(n===-1)n=e.indexOf("E");var i=Math.floor(Math.log(r)*Math.LOG10E)%n;if(i<0)i+=n;t=(r/Math.pow(10,i)).toPrecision(a+1+(n+i)%n);if(t.indexOf("e")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);if(t.indexOf(".")===-1)t=t.charAt(0)+"."+t.substr(1)+"E+"+(s-t.length+i);else t+="E+"+(s-i);while(t.substr(0,2)==="0."){t=t.charAt(0)+t.substr(2,n)+"."+t.substr(2+n);t=t.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}t=t.replace(/\+-/,"-")}t=t.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(e,r,t,a){return r+t+a.substr(0,(n+i)%n)+"."+a.substr(i)+"E"})}else t=r.toExponential(a);if(e.match(/E\+00$/)&&t.match(/e[+-]\d$/))t=t.substr(0,t.length-1)+"0"+t.charAt(t.length-1);if(e.match(/E\-/)&&t.match(/e\+/))t=t.replace(/e\+/,"e");return t.replace("e","E")}var o=/# (\?+)( ?)\/( ?)(\d+)/;function u(e,r,i){var s=parseInt(e[4],10),l=Math.round(r*s),c=Math.floor(l/s);var f=l-c*s,o=s;return i+(c===0?"":""+c)+" "+(f===0?t(" ",e[1].length+1+e[4].length):n(f,e[1].length)+e[2]+"/"+e[3]+a(o,e[4].length))}function h(e,r,a){return a+(r===0?"":""+r)+t(" ",e[1].length+2+e[4].length)}var d=/^#*0*\.([0#]+)/;var v=/\).*[0#]/;var p=/\(###\) ###\\?-####/;function m(e){var r="",t;for(var a=0;a!=e.length;++a)switch(t=e.charCodeAt(a)){case 35:break;case 63:r+=" ";break;case 48:r+="0";break;default:r+=String.fromCharCode(t);}return r}function g(e,r){var t=Math.pow(10,r);return""+Math.round(e*t)/t}function E(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 0}return Math.round((e-Math.floor(e))*Math.pow(10,r))}function S(e,r){if(r<(""+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 1}return 0}function k(e){if(e<2147483647&&e>-2147483648)return""+(e>=0?e|0:e-1|0);return""+Math.floor(e)}function B(e,h,C){if(e.charCodeAt(0)===40&&!h.match(v)){var w=h.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(C>=0)return B("n",w,C);return"("+B("n",w,-C)+")"}if(h.charCodeAt(h.length-1)===44)return l(e,h,C);if(h.indexOf("%")!==-1)return s(e,h,C);if(h.indexOf("E")!==-1)return c(h,C);if(h.charCodeAt(0)===36)return"$"+B(e,h.substr(h.charAt(1)==" "?2:1),C);var T;var A,R,D,F=Math.abs(C),O=C<0?"-":"";if(h.match(/^00+$/))return O+f(F,h.length);if(h.match(/^[#?]+$/)){T=f(C,0);if(T==="0")T="";return T.length>h.length?T:m(h.substr(0,h.length-T.length))+T}if(A=h.match(o))return u(A,F,O);if(h.match(/^#+0+$/))return O+f(F,h.length-h.indexOf("0"));if(A=h.match(d)){T=g(C,A[1].length).replace(/^([^\.]+)$/,"$1."+m(A[1])).replace(/\.$/,"."+m(A[1])).replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(A[1]).length-r.length)});return h.indexOf("0.")!==-1?T:T.replace(/^0\./,".")}h=h.replace(/^#+([0.])/,"$1");if(A=h.match(/^(0*)\.(#*)$/)){return O+g(F,A[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,A[1].length?"0.":".")}if(A=h.match(/^#{1,3},##0(\.?)$/))return O+I(f(F,0));if(A=h.match(/^#,##0\.([#0]*0)$/)){return C<0?"-"+B(e,h,-C):I(""+(Math.floor(C)+S(C,A[1].length)))+"."+a(E(C,A[1].length),A[1].length)}if(A=h.match(/^#,#*,#0/))return B(e,h.replace(/^#,#*,/,""),C);if(A=h.match(/^([0#]+)(\\?-([0#]+))+$/)){T=r(B(e,h.replace(/[\\-]/g,""),C));R=0;return r(r(h.replace(/\\/g,"")).replace(/[0#]/g,function(e){return R=0)return A("n",c,l);return"("+A("n",c,-l)+")"}if(s.charCodeAt(s.length-1)===44)return C(e,s,l);if(s.indexOf("%")!==-1)return w(e,s,l);if(s.indexOf("E")!==-1)return T(s,l);if(s.charCodeAt(0)===36)return"$"+A(e,s.substr(s.charAt(1)==" "?2:1),l);var f;var u,g,E,S=Math.abs(l),k=l<0?"-":"";if(s.match(/^00+$/))return k+a(S,s.length);if(s.match(/^[#?]+$/)){f=""+l;if(l===0)f="";return f.length>s.length?f:m(s.substr(0,s.length-f.length))+f}if(u=s.match(o))return h(u,S,k);if(s.match(/^#+0+$/))return k+a(S,s.length-s.indexOf("0"));if(u=s.match(d)){f=(""+l).replace(/^([^\.]+)$/,"$1."+m(u[1])).replace(/\.$/,"."+m(u[1]));f=f.replace(/\.(\d*)$/,function(e,r){return"."+r+t("0",m(u[1]).length-r.length)});return s.indexOf("0.")!==-1?f:f.replace(/^0\./,".")}s=s.replace(/^#+([0.])/,"$1");if(u=s.match(/^(0*)\.(#*)$/)){return k+(""+S).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,u[1].length?"0.":".")}if(u=s.match(/^#{1,3},##0(\.?)$/))return k+I(""+S);if(u=s.match(/^#,##0\.([#0]*0)$/)){return l<0?"-"+A(e,s,-l):I(""+l)+"."+t("0",u[1].length)}if(u=s.match(/^#,#*,#0/))return A(e,s.replace(/^#,#*,/,""),l);if(u=s.match(/^([0#]+)(\\?-([0#]+))+$/)){f=r(A(e,s.replace(/[\\-]/g,""),l));g=0;return r(r(s.replace(/\\/g,"")).replace(/[0#]/g,function(e){return g-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r-1){}break;case" ":++r;break;default:++r;break;}}return false}e.is_date=D;function F(e,r,t,a){var n=[],i="",s=0,l="",c="t",f,u,h;var d="H";while(s=12?"P":"A";m.t="T";d="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(f!=null)m.v=f.H>=12?"PM":"AM";m.t="T";s+=5;d="h"}else{m.t="t";++s}if(f==null&&m.t==="T")return"";n[n.length]=m;c=l;break;case"[":i=l;while(e.charAt(s++)!=="]"&&s-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!D(e))n[n.length]={t:"t",v:i}}break;case".":if(f!=null){i=l;while(++s-1||l=="\\"&&e.charAt(s+1)=="-"&&s-1)i+=l;n[n.length]={t:"n",v:i};break;case"?":i=l;while(e.charAt(++s)===l)i+=l;n[n.length]={t:l,v:i};c=l;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":l,v:l};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=l;while(s-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:l,v:l};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(l)===-1)throw new Error("unrecognized character "+l+" in "+e);n[n.length]={t:"t",v:l};++s;break;}}var g=0,E=0,S;for(s=n.length-1,c="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=d;c="h";if(g<1)g=1;break;case"s":if(S=n[s].v.match(/\.0+$/))E=Math.max(E,S[0].length-1);if(g<3)g=3;case"d":;case"y":;case"M":;case"e":c=n[s].t;break;case"m":if(c==="s"){n[s].t="M";if(g<2)g=2}break;case"X":break;case"Z":if(g<1&&n[s].v.match(/[Hh]/))g=1;if(g<2&&n[s].v.match(/[Mm]/))g=2;if(g<3&&n[s].v.match(/[Ss]/))g=3;}}switch(g){case 0:break;case 1:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}if(f.M>=60){f.M=0;++f.H}break;case 2:if(f.u>=.5){f.u=0;++f.S}if(f.S>=60){f.S=0;++f.M}break;}var k="",B;for(s=0;s0){if(k.charCodeAt(0)==40){I=r<0&&k.charCodeAt(0)===45?-r:r;A=x("(",k,I)}else{I=r<0&&a>1?-r:r;A=x("n",k,I);if(I<0&&n[0]&&n[0].t=="t"){A=A.substr(1);n[0].v="-"+n[0].v}}B=A.length-1;var F=n.length;for(s=0;s-1){F=s;break}var O=n.length;if(F===n.length&&A.indexOf("E")===-1){for(s=n.length-1;s>=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;if(B>=n[s].v.length-1){B-=n[s].v.length;n[s].v=A.substr(B+1,n[s].v.length)}else if(B<0)n[s].v="";else{n[s].v=A.substr(0,B+1);B=-1}n[s].t="t";O=s}if(B>=0&&O=0;--s){if(n[s]==null||"n?(".indexOf(n[s].t)===-1)continue;u=n[s].v.indexOf(".")>-1&&s===F?n[s].v.indexOf(".")-1:n[s].v.length-1;w=n[s].v.substr(u+1);for(;u>=0;--u){if(B>=0&&(n[s].v.charAt(u)==="0"||n[s].v.charAt(u)==="#"))w=A.charAt(B--)+w}n[s].v=w;n[s].t="t";O=s}if(B>=0&&O-1&&s===F?n[s].v.indexOf(".")+1:0;w=n[s].v.substr(0,u);for(;u-1){I=a>1&&r<0&&s>0&&n[s-1].v==="-"?-r:r;n[s].v=x(n[s].t,n[s].v,I);n[s].t="t"}var P="";for(s=0;s!==n.length;++s)if(n[s]!=null)P+=n[s].v;return P}e._eval=F;var O=/\[[=<>]/;var P=/\[([=<>]*)(-?\d+\.?\d*)\]/;function _(e,r){if(r==null)return false;var t=parseFloat(r[2]);switch(r[1]){case"=":if(e==t)return true;break;case">":if(e>t)return true;break;case"<":if(e":if(e!=t)return true;break;case">=":if(e>=t)return true;break;case"<=":if(e<=t)return true;break;}return false}function y(e,r){var t=A(e);var a=t.length,n=t[a-1].indexOf("@");if(a<4&&n>-1)--a;if(t.length>4)throw new Error("cannot find right format for |"+t.join("|")+"|");if(typeof r!=="number")return[4,t.length===4||n>-1?t[t.length-1]:"@"];switch(t.length){case 1:t=n>-1?["General","General","General",t[0]]:[t[0],t[0],t[0],"@"];break;case 2:t=n>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],"@"];break;case 3:t=n>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],"@"];break;case 4:break;}var i=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf("[")===-1&&t[1].indexOf("[")===-1)return[a,i];if(t[0].match(O)!=null||t[1].match(O)!=null){var s=t[0].match(P);var l=t[1].match(P);return _(r,s)?[a,t[0]]:_(r,l)?[a,t[1]]:[a,t[s!=null&&l!=null?2:1]]}return[a,i]}function N(e,r,t){if(t==null)t={};var a="";switch(typeof e){case"string":if(e=="m/d/yy"&&t.dateNF)a=t.dateNF;else a=e;break;case"number":if(e==14&&t.dateNF)a=t.dateNF;else a=(t.table!=null?t.table:v)[e];break;}if(o(a,0))return C(r,t);if(r instanceof Date)r=S(r,t.date1904);var n=y(a,r);if(o(n[1]))return C(r,t);if(r===true)r="TRUE";else if(r===false)r="FALSE";else if(r===""||r==null)return"";return F(n[1],r,t,n[0])}function M(e,r){if(typeof r!="number"){r=+r||-1;for(var t=0;t<392;++t){if(v[t]==undefined){if(r<0)r=t;continue}if(v[t]==e){r=t;break}}if(r<0)r=391}v[r]=e;return r}e.load=M;e._table=v;e.get_table=function W(){return v};e.load_table=function H(e){for(var r=0;r!=392;++r)if(e[r]!==undefined)M(e[r],r)};e.init_table=d;e.format=N};S(E);var k={"General Number":"General","General Date":E._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":E._table[15],"Short Date":E._table[14],"Long Time":E._table[19],"Medium Time":E._table[18],"Short Time":E._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:E._table[2],Standard:E._table[4],Percent:E._table[10],Scientific:E._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var B=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function C(e){var r=typeof e=="number"?E._table[e]:e;r=r.replace(B,"(\\d+)");return new RegExp("^"+r+"$")}function w(e,r,t){var a=-1,n=-1,i=-1,s=-1,l=-1,c=-1;(r.match(B)||[]).forEach(function(e,r){var f=parseInt(t[r+1],10);switch(e.toLowerCase().charAt(0)){case"y":a=f;break;case"d":i=f;break;case"h":s=f;break;case"s":c=f;break;case"m":if(s>=0)l=f;else n=f;break;}});if(c>=0&&l==-1&&n>=0){l=n;n=-1}var f=(""+(a>=0?a:(new Date).getFullYear())).slice(-4)+"-"+("00"+(n>=1?n:1)).slice(-2)+"-"+("00"+(i>=1?i:1)).slice(-2);if(f.length==7)f="0"+f;if(f.length==8)f="20"+f;var o=("00"+(s>=0?s:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2)+":"+("00"+(c>=0?c:0)).slice(-2);if(s==-1&&l==-1&&c==-1)return f;if(a==-1&&n==-1&&i==-1)return o;return f+"T"+o}var T=true;var I=function rp(){var e={};e.version="0.13.1";function r(e,r){var t=e.split("/"),a=r.split("/");for(var n=0,i=0,s=Math.min(t.length,a.length);n0&&v!==R)w[v].name="!MiniFAT";w[p[0]].name="!FAT";w.fat_addrs=p;w.ssz=a;var T={},I=[],x=[],A=[],D={};d(h,w,C,I,n,T,x);c(x,D,A,I);I.shift();var F={FileIndex:x,FullPaths:A,FullPathDir:D};if(r&&r.raw)F.raw={header:E,sectors:C};return F}function i(e){e.chk(D,"Header Signature: ");e.chk(O,"CLSID: ");var r=e._R(2,"u");return[e._R(2,"u"),r]}function s(e,r){var t=9;e.l+=2;switch(t=e._R(2)){case 9:if(r!=3)throw new Error("Sector Shift: Expected 9 saw "+t);break;case 12:if(r!=4)throw new Error("Sector Shift: Expected 12 saw "+t);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+t);}e.chk("0600","Mini Sector Shift: ");e.chk("000000000000","Reserved: ")}function l(e,r){var t=Math.ceil(e.length/r)-1;var a=[];for(var n=1;n>>2)-1;if(!s)return;for(var c=0;c=0;){n[c]=true;i[i.length]=c;s.push(e[c]);var o=t[Math.floor(c*4/a)];f=c*4&l;if(a<4+f)throw new Error("FAT boundary crossed: "+c+" 4 "+a);if(!e[o])break;c=br(e[o],f)}return{nodes:i,data:je([s])}}function u(e,r,t,a){var n=e.length,i=[];var s=[],l=[],c=[];var f=a-1,o=0,u=0,h=0,d=0;for(o=0;o=n)h-=n;if(s[h])continue;c=[];for(u=h;u>=0;){s[u]=true;l[l.length]=u;c.push(e[u]);var v=t[Math.floor(u*4/a)];d=u*4&f;if(a<4+d)throw new Error("FAT boundary crossed: "+u+" 4 "+a);if(!e[v])break;u=br(e[v],d)}i[h]={nodes:l,data:je([c])}}return i}function d(e,r,t,a,n,i,s){var l=0,c=a.length?2:0;var f=r[e].data;var u=0,h=0,d;for(;u0&&l!==R)r[l].name="!StreamData"}else if(p.size>=4096){p.storage="fat";if(r[p.start]===undefined)r[p.start]=o(t,p.start,r.fat_addrs,r.ssz);r[p.start].name=p.name;p.content=r[p.start].data.slice(0,p.size);Tr(p.content,0)}else{p.storage="minifat";if(l!==R&&p.start!==R&&r[l]){p.content=r[l].data.slice(p.start*A,p.start*A+p.size);Tr(p.content,0)}}i[d]=p;s.push(p)}}function v(e,r){return new Date((vr(e,r+4)/1e7*Math.pow(2,32)+vr(e,r)/1e7-11644473600)*1e3)}var E;function S(e,r){if(E==null)E=require("fs");return n(E.readFileSync(e),r)}function k(e,r){switch(r&&r.type||"base64"){case"file":return S(e,r);case"base64":return n(b(h.decode(e)),r);case"binary":return n(b(e),r);}return n(e,r)}function B(e,r){var t=r||{},a=t.root||"Root Entry";if(!e.FullPaths)e.FullPaths=[];if(!e.FileIndex)e.FileIndex=[];if(e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure"); +if(e.FullPaths.length===0){e.FullPaths[0]=a+"/";e.FileIndex[0]={name:a,type:5}}if(t.CLSID)e.FileIndex[0].clsid=t.CLSID;C(e)}function C(e){var r="Sh33tJ5";if(I.find(e,"/"+r))return;var t=Rr(4);t[0]=55;t[1]=t[3]=50;t[2]=54;e.FileIndex.push({name:r,type:2,content:t,size:4,L:69,R:69,C:69});e.FullPaths.push(e.FullPaths[0]+r);w(e)}function w(e,n){B(e);var i=false,s=false;for(var l=e.FullPaths.length-1;l>=0;--l){var c=e.FileIndex[l];switch(c.type){case 0:if(s)i=true;else{e.FileIndex.pop();e.FullPaths.pop()}break;case 1:;case 2:;case 5:s=true;if(isNaN(c.R*c.L*c.C))i=true;if(c.R>-1&&c.L>-1&&c.R==c.L)i=true;break;default:i=true;break;}}if(!i&&!n)return;var f=new Date(1987,1,19),o=0;var u=[];for(l=0;l1?1:-1;d.size=0;d.type=5}else if(v.slice(-1)=="/"){for(o=l+1;o=u.length?-1:o;for(o=l+1;o=u.length?-1:o;d.type=1}else{if(t(e.FullPaths[l+1]||"")==t(v))d.R=l+1;d.type=2}}}function T(e,r){w(e);var t=function(e){var r=0,t=0;for(var a=0;a>6;else t+=i+511>>9}var s=e.FullPaths.length+3>>2;var l=r+7>>3;var c=r+127>>7;var f=l+t+s+c;var o=f+127>>7;var u=o<=109?0:Math.ceil((o-109)/127);while(f+o+u+127>>7>o)u=++o<=109?0:Math.ceil((o-109)/127);var h=[1,u,o,c,s,t,r,0];e.FileIndex[0].size=r<<6;h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3);return h}(e);var a=Rr(t[7]<<9);var n=0,i=0;{for(n=0;n<8;++n)a._W(1,F[n]);for(n=0;n<8;++n)a._W(2,0);a._W(2,62);a._W(2,3);a._W(2,65534);a._W(2,9);a._W(2,6);for(n=0;n<3;++n)a._W(2,0);a._W(4,0);a._W(4,t[2]);a._W(4,t[0]+t[1]+t[2]+t[3]-1);a._W(4,0);a._W(4,1<<12);a._W(4,t[3]?t[0]+t[1]+t[2]-1:R);a._W(4,t[3]);a._W(-4,t[1]?t[0]-1:R);a._W(4,t[1]);for(n=0;n<109;++n)a._W(-4,n>9)}s(t[6]+7>>3);while(a.l&511)a._W(-4,P.ENDOFCHAIN);i=n=0;for(l=0;l=4096)continue;f.start=i;s(c+63>>6)}while(a.l&511)a._W(-4,P.ENDOFCHAIN);for(n=0;n=4096){a.l=f.start+1<<9;for(l=0;l0&&f.size<4096){for(l=0;l3)a=true;switch(n[i].substr(n[i].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+n[i].substr(n[i].length-1));case"D":t*=24;case"H":t*=60;case"M":if(!a)throw new Error("Unsupported ISO Duration Field: M");else t*=60;case"S":break;}r+=t*parseInt(n[i],10)}return r}var L=new Date("2017-02-19T19:06:09.000Z");if(isNaN(L.getFullYear()))L=new Date("2/19/17");var U=L.getFullYear()==2017;function W(e,r){var t=new Date(e);if(U){if(r>0)t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3);else if(r<0)t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3);return t}if(e instanceof Date)return e;if(L.getFullYear()==1917&&!isNaN(t.getFullYear())){var a=t.getFullYear();if(e.indexOf(""+a)>-1)return t;t.setFullYear(t.getFullYear()+100);return t}var n=e.match(/\d+/g)||["2017","2","19","0","0","0"];var i=new Date(+n[0],+n[1]-1,+n[2],+n[3]||0,+n[4]||0,+n[5]||0);if(e.indexOf("Z")>-1)i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3);return i}function H(e){var r="";for(var t=0;t!=e.length;++t)r+=String.fromCharCode(e[t]);return r}function V(e){var r=[];for(var t=0;t!=e.length;++t)r.push(e.charCodeAt(t));return r}function G(e){if(typeof JSON!="undefined"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!="object"||e==null)return e;var r={};for(var t in e)if(e.hasOwnProperty(t))r[t]=G(e[t]);return r}function X(e,r){var t="";while(t.length8099)return t;if((n>0||i>1)&&a!=101)return r;if(e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/))return r;if(e.match(/[^-0-9:,\/\\]/))return t;return r}var K="abacaba".split(/(:?b)/i).length==5;function Y(e,r,t){if(K||typeof r=="string")return e.split(r);var a=e.split(r),n=[a[0]];for(var i=1;i\/]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;var ce=/<[\/\?]?[a-zA-Z0-9:]+(?:\s+[^"\s?>\/]+=(?:"[^"]*"|'[^']*'|[^'">\s]+))*\s?[\/\?]?>/g;if(!se.match(ce))ce=/<[^>]*>/g;var fe=/<\w*:/,oe=/<(\/?)\w+:/;function ue(e,r){var t={};var a=0,n=0;for(;a!==e.length;++a)if((n=e.charCodeAt(a))===32||n===10||n===13)break;if(!r)t[0]=e.substr(0,a);if(a===e.length)return t;var i=e.match(le),s=0,l="",c=0,f="",o="",u=1;if(i)for(c=0;c!=i.length;++c){o=i[c];for(n=0;n!=o.length;++n)if(o.charCodeAt(n)===61)break;f=o.substr(0,n);u=(a=o.charCodeAt(n+1))==34||a==39?1:0;l=o.substring(n+1+u,o.length-u);for(s=0;s!=f.length;++s)if(f.charCodeAt(s)===58)break;if(s===f.length){if(f.indexOf("_")>0)f=f.substr(0,f.indexOf("_"));t[f]=l}else{var h=(s===5&&f.substr(0,5)==="xmlns"?"xmlns":"")+f.substr(s+1);if(t[h]&&f.substr(s-3,3)=="ext")continue;t[h]=l}}return t}function he(e){return e.replace(oe,"<$1")}var de={""":'"',"'":"'",">":">","<":"<","&":"&"};var ve=D(de);var be=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/g,r=/_x([\da-fA-F]{4})_/g;return function t(a){var n=a+"",i=n.indexOf("-1?16:10))||e}).replace(r,function(e,r){return String.fromCharCode(parseInt(r,16))});var s=n.indexOf("]]>");return t(n.slice(0,i))+n.slice(i+9,s)+t(n.slice(s+3))}}();var pe=/[&<>'"]/g,me=/[\u0000-\u0008\u000b-\u001f]/g;function ge(e,r){var t=e+"";return t.replace(pe,function(e){return ve[e]}).replace(me,function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"})}function Ee(e){return ge(e).replace(/ /g,"_x0020_")}var Se=/[\u0000-\u001f]/g;function ke(e){var r=e+"";return r.replace(pe,function(e){return ve[e]}).replace(Se,function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"})}var Be=function(){var e=/&#(\d+);/g;function r(e,r){return String.fromCharCode(parseInt(r,10))}return function t(a){return a.replace(e,r)}}();var Ce=function(){return function e(r){return r.replace(/(\r\n|[\r\n])/g," ")}}();function we(e,r){switch(e){case 1:;case true:;case"1":;case"true":;case"TRUE":return true;default:return false;}}var Te=function tp(e){var r="",t=0,a=0,n=0,i=0,s=0,l=0;while(t191&&a<224){s=(a&31)<<6;s|=n&63;r+=String.fromCharCode(s);continue}i=e.charCodeAt(t++);if(a<240){r+=String.fromCharCode((a&15)<<12|(n&63)<<6|i&63);continue}s=e.charCodeAt(t++);l=((a&7)<<18|(n&63)<<12|(i&63)<<6|s&63)-65536;r+=String.fromCharCode(55296+(l>>>10&1023));r+=String.fromCharCode(56320+(l&1023))}return r};var Ie=function(e){var r=[],t=0,a=0,n=0;while(t>6)));r.push(String.fromCharCode(128+(a&63)));break;case a>=55296&&a<57344:a-=55296;n=e.charCodeAt(t++)-56320+(a<<10);r.push(String.fromCharCode(240+(n>>18&7)));r.push(String.fromCharCode(144+(n>>12&63)));r.push(String.fromCharCode(128+(n>>6&63)));r.push(String.fromCharCode(128+(n&63)));break;default:r.push(String.fromCharCode(224+(a>>12)));r.push(String.fromCharCode(128+(a>>6&63)));r.push(String.fromCharCode(128+(a&63)));}}return r.join("")};if(d){var xe=function ap(e){var r=new Buffer(2*e.length),t,a,n=1,i=0,s=0,l;for(a=0;a>>10&1023);t=56320+(t&1023)}if(s!==0){r[i++]=s&255;r[i++]=s>>>8;s=0}r[i++]=t%256;r[i++]=t>>>8}return r.slice(0,i).toString("ucs2")};var Ae="foo bar baz☃🍣";if(Te(Ae)==xe(Ae))Te=xe;var Re=function np(e){return Buffer(e,"binary").toString("utf8")};if(Te(Ae)==Re(Ae))Te=Re;Ie=function(e){return new Buffer(e,"utf8").toString("binary")}}var De=function(){var e={};return function r(t,a){var n=t+"|"+(a||"");if(e[n])return e[n];return e[n]=new RegExp("<(?:\\w+:)?"+t+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",a||"")}}();function Fe(e){return e.trim().replace(/\s+/g," ").replace(/<\s*[bB][rR]\s*\/?/g,"\n").replace(/<[^>]*>/g,"").replace(/ /g," ")}var Oe=function(){var e={};return function r(t){if(e[t]!==undefined)return e[t];return e[t]=new RegExp("<(?:vt:)?"+t+">([\\s\\S]*?)","g")}}();var Pe=/<\/?(?:vt:)?variant>/g,_e=/<(?:vt:)([^>]*)>([\s\S]*)"+r+""}function Le(e){return A(e).map(function(r){return" "+r+'="'+e[r]+'"'}).join("")}function Ue(e,r,t){return"<"+e+(x(t)?Le(t):"")+(x(r)?(r.match(Ne)?' xml:space="preserve"':"")+">"+r+""}function We(e,r){try{return e.toISOString().replace(/\.\d*/,"")}catch(t){if(r)throw t}return""}function He(e){switch(typeof e){case"string":return Ue("vt:lpwstr",e);case"number":return Ue((e|0)==e?"vt:i4":"vt:r8",String(e));case"boolean":return Ue("vt:bool",e?"true":"false");}if(e instanceof Date)return Ue("vt:filetime",We(e));throw new Error("Unable to serialize "+e)}var Ve={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};Ve.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];var Ge={o:"urn:schemas-microsoft-com:office:office",x:"urn:schemas-microsoft-com:office:excel",ss:"urn:schemas-microsoft-com:office:spreadsheet",dt:"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",mv:"http://macVmlSchemaUri",v:"urn:schemas-microsoft-com:vml",html:"http://www.w3.org/TR/REC-html40"};function Xe(e,r){var t=1-2*(e[r+7]>>>7);var a=((e[r+7]&127)<<4)+(e[r+6]>>>4&15);var n=e[r+6]&15;for(var i=5;i>=0;--i)n=n*256+e[r+i];if(a==2047)return n==0?t*Infinity:NaN;if(a==0)a=-1022;else{a-=1023;n+=Math.pow(2,52)}return t*Math.pow(2,a-52)*n}function ze(e,r,t){var a=(r<0||1/r==-Infinity?1:0)<<7,n=0,i=0;var s=a?-r:r;if(!isFinite(s)){n=2047;i=isNaN(r)?26985:0}else if(s==0)n=i=0;else{n=Math.floor(Math.log(s)/Math.LN2);i=s*Math.pow(2,52-n);if(n<=-1023&&(!isFinite(i)||i>4|a}var je=function(e){var r=[];for(var t=0;t0?Je(e,r+4,r+4+t-1):""};var rr=er;var tr=function(e,r){var t=2*vr(e,r);return t>0?Je(e,r+4,r+4+t-1):""};var ar=tr;var nr,ir;nr=ir=function ip(e,r){var t=vr(e,r);return t>0?Ye(e,r+4,r+4+t):""};var sr=function(e,r){var t=vr(e,r);return t>0?Je(e,r+4,r+4+t):""};var lr=sr;var cr,fr;cr=fr=function(e,r){return Xe(e,r)};var or=function sp(e){return Array.isArray(e)};if(d){Ye=function(e,r,t){if(!Buffer.isBuffer(e))return $e(e,r,t);return e.toString("utf16le",r,t).replace(m,"")};Qe=function(e,r,t){return Buffer.isBuffer(e)?e.toString("hex",r,r+t):Ze(e,r,t)};er=function lp(e,r){if(!Buffer.isBuffer(e))return rr(e,r);var t=e.readUInt32LE(r);return t>0?e.toString("utf8",r+4,r+4+t-1):""};tr=function cp(e,r){if(!Buffer.isBuffer(e))return ar(e,r);var t=2*e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t-1)};nr=function fp(e,r){if(!Buffer.isBuffer(e))return ir(e,r);var t=e.readUInt32LE(r);return e.toString("utf16le",r+4,r+4+t)};sr=function op(e,r){if(!Buffer.isBuffer(e))return lr(e,r);var t=e.readUInt32LE(r);return e.toString("utf8",r+4,r+4+t)};Je=function up(e,r,t){return Buffer.isBuffer(e)?e.toString("utf8",r,t):Je(e,r,t)};je=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):Ke(e)};p=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)};cr=function hp(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return fr(e,r)};or=function dp(e){return Buffer.isBuffer(e)||Array.isArray(e)}}if(typeof cptable!=="undefined"){Ye=function(e,r,t){return cptable.utils.decode(1200,e.slice(r,t)).replace(m,"")};Je=function(e,r,t){return cptable.utils.decode(65001,e.slice(r,t))};er=function(e,r){var a=vr(e,r);return a>0?cptable.utils.decode(t,e.slice(r+4,r+4+a-1)):""};tr=function(e,r){var t=2*vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};nr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t)):""};sr=function(e,r){var t=vr(e,r);return t>0?cptable.utils.decode(65001,e.slice(r+4,r+4+t)):""}}var ur=function(e,r){return e[r]};var hr=function(e,r){return e[r+1]*(1<<8)+e[r]};var dr=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var vr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var br=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var pr=function(e,r){return e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]};var mr=function(e){return(e.match(/../g)||[]).map(function(e){return parseInt(e,16)})};var gr=typeof Buffer!=="undefined"?function(e){return Buffer.isBuffer(e)?new Buffer(e,"hex"):mr(e)}:mr;function Er(e,r){var a="",n,i,s=[],l,c,o,u;switch(r){case"dbcs":u=this.l;if(d&&Buffer.isBuffer(this))a=this.slice(this.l,this.l+2*e).toString("utf16le");else for(o=0;o!=e;++o){a+=String.fromCharCode(hr(this,u));u+=2}e*=2;break;case"utf8":a=Je(this,this.l,this.l+e);break;case"utf16le":e*=2;a=Ye(this,this.l,this.l+e);break;case"wstr":if(typeof cptable!=="undefined")a=cptable.utils.decode(t,this.slice(this.l,this.l+2*e));else return Er.call(this,e,"dbcs");e=2*e;break;case"lpstr":a=er(this,this.l);e=5+a.length;break;case"lpwstr":a=tr(this,this.l);e=5+a.length;if(a[a.length-1]=="\0")e+=2;break;case"lpp4":e=4+vr(this,this.l);a=nr(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+vr(this,this.l);a=sr(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;a="";while((l=ur(this,this.l+e++))!==0)s.push(f(l));a=s.join("");break;case"_wstr":e=0;a="";while((l=hr(this,this.l+e))!==0){s.push(f(l));e+=2}e+=2;a=s.join("");break;case"dbcs-cont":a="";u=this.l;for(o=0;o!=e;++o){if(this.lens&&this.lens.indexOf(u)!==-1){l=ur(this,u);this.l=u+1;c=Er.call(this,e-o,l?"dbcs-cont":"sbcs-cont");return s.join("")+c}s.push(f(hr(this,u)));u+=2}a=s.join("");e*=2;break;case"sbcs-cont":a="";u=this.l;for(o=0;o!=e;++o){if(this.lens&&this.lens.indexOf(u)!==-1){l=ur(this,u);this.l=u+1;c=Er.call(this,e-o,l?"dbcs-cont":"sbcs-cont");return s.join("")+c}s.push(f(ur(this,u)));u+=1}a=s.join("");break;default:switch(e){case 1:n=ur(this,this.l);this.l++;return n;case 2:n=(r==="i"?dr:hr)(this,this.l);this.l+=2;return n;case 4:;case-4:if(r==="i"||(this[this.l+3]&128)===0){n=(e>0?br:pr)(this,this.l);this.l+=4;return n}else{i=vr(this,this.l);this.l+=4}return i;case 8:;case-8:if(r==="f"){if(e==8)i=cr(this,this.l);else i=cr([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0);this.l+=8;return i}else e=8;case 16:a=Qe(this,this.l,e);break;};}this.l+=e;return a}var Sr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var kr=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var Br=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function Cr(e,r,t){var a=0,n=0;if(t==="dbcs"){for(n=0;n!=r.length;++n)Br(this,r.charCodeAt(n),this.l+2*n);a=2*r.length}else if(t==="sbcs"){r=r.replace(/[^\x00-\x7F]/g,"_");for(n=0;n!=r.length;++n)this[this.l+n]=r.charCodeAt(n)&255;a=r.length}else if(t==="hex"){for(;n>8}while(this.l>>=8;this[this.l+1]=r&255;break;case 3:a=3;this[this.l]=r&255;r>>>=8;this[this.l+1]=r&255;r>>>=8;this[this.l+2]=r&255;break;case 4:a=4;Sr(this,r,this.l);break;case 8:a=8;if(t==="f"){ze(this,r,this.l);break};case 16:break;case-4:a=4;kr(this,r,this.l);break;}this.l+=a;return this}function wr(e,r){var t=Qe(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function Tr(e,r){e.l=r;e._R=Er;e.chk=wr;e._W=Cr}function Ir(e,r){e.l+=r}function xr(e,r){if(typeof console!="undefined")console.log(e.slice(e.l,e.l+r));e.l+=r}function Ar(e,r){e.l+=r}function Rr(e){var r=v(e);Tr(r,0);return r}function Dr(e,r,t){if(!e)return;var a,n,i;Tr(e,e.l||0);var s=e.length,l=0,c=0;while(e.la.l)a=a.slice(0,a.l);if(a.length>0)e.push(a);a=null};var i=function o(e){if(a&&e=128?1:0)+1+a;if(a>=128)++i;if(a>=16384)++i;if(a>=2097152)++i;var s=e.next(i);if(n<=127)s._W(1,n);else{s._W(1,(n&127)+128);s._W(1,n>>7)}for(var l=0;l!=4;++l){if(a>=128){s._W(1,(a&127)+128);a>>=7}else{s._W(1,a);break}}if(a>0&&or(t))e.push(t)}function Pr(e,r,t){var a=G(e);if(r.s){if(a.cRel)a.c+=r.s.c;if(a.rRel)a.r+=r.s.r}else{a.c+=r.c;a.r+=r.r}if(!t||t.biff<12){while(a.c>=256)a.c-=256;while(a.r>=65536)a.r-=65536}return a}function _r(e,r,t){var a=G(e);a.s=Pr(a.s,r.s,t);a.e=Pr(a.e,r.s,t);return a}function yr(e){var r=$r(e);if(e.cRel===0)r=zr(r);if(e.rRel===0)r=Hr(r);return r}function Nr(e,r){if(e.s.r==0&&!e.s.rRel){if(e.e.r==(r.biff>=12?1048575:65535)&&!e.e.rRel){return(e.s.cRel?"":"$")+Xr(e.s.c)+":"+(e.e.cRel?"":"$")+Xr(e.e.c)}}if(e.s.c==0&&!e.s.cRel){if(e.e.c==(r.biff>=12?65535:255)&&!e.e.cRel){return(e.s.rRel?"":"$")+Wr(e.s.r)+":"+(e.e.rRel?"":"$")+Wr(e.e.r)}}return yr(e.s)+":"+yr(e.e)}var Mr={};var Lr=function(e,r){var t;if(typeof r!=="undefined")t=r;else if(typeof require!=="undefined"){try{t=undefined}catch(a){t=null}}e.rc4=function(e,r){var t=new Array(256);var a=0,n=0,i=0,s=0;for(n=0;n!=256;++n)t[n]=n;for(n=0;n!=256;++n){i=i+t[n]+e[n%e.length].charCodeAt(0)&255;s=t[n];t[n]=t[i];t[i]=s}n=i=0;var l=Buffer(r.length);for(a=0;a!=r.length;++a){n=n+1&255;i=(i+t[n])%256;s=t[n];t[n]=t[i];t[i]=s;l[a]=r[a]^t[t[n]+t[i]&255]}return l};e.md5=function(e){if(!t)throw new Error("Unsupported crypto");return t.createHash("md5").update(e).digest("hex")}};Lr(Mr,typeof crypto!=="undefined"?crypto:undefined);function Ur(e){return parseInt(Vr(e),10)-1}function Wr(e){return""+(e+1)}function Hr(e){return e.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function Vr(e){return e.replace(/\$(\d+)$/,"$1")}function Gr(e){var r=jr(e),t=0,a=0;for(;a!==r.length;++a)t=26*t+r.charCodeAt(a)-64;return t-1}function Xr(e){var r="";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function zr(e){return e.replace(/^([A-Z])/,"$$$1")}function jr(e){return e.replace(/^\$([A-Z])/,"$1")}function Kr(e){return e.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function Yr(e){var r=Kr(e);return{c:Gr(r[0]),r:Ur(r[1])}}function $r(e){return Xr(e.c)+Wr(e.r)}function Qr(e){return zr(Hr(e))}function Zr(e){return jr(Vr(e))}function Jr(e){var r=e.split(":").map(Yr);return{s:r[0],e:r[r.length-1]}}function qr(e,r){if(typeof r==="undefined"||typeof r==="number"){return qr(e.s,e.e)}if(typeof e!=="string")e=$r(e);if(typeof r!=="string")r=$r(r);return e==r?e:e+":"+r}function et(e){var r={s:{c:0,r:0},e:{c:0,r:0}};var t=0,a=0,n=0;var i=e.length;for(t=0;a26)break;t=26*t+n}r.s.c=--t;for(t=0;a9)break;t=10*t+n}r.s.r=--t;if(a===i||e.charCodeAt(++a)===58){r.e.c=r.s.c;r.e.r=r.s.r;return r}for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-64)<1||n>26)break;t=26*t+n}r.e.c=--t;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-48)<0||n>9)break;t=10*t+n}r.e.r=--t;return r}function rt(e,r){var t=e.t=="d"&&r instanceof Date;if(e.z!=null)try{return e.w=E.format(e.z,t?y(r):r)}catch(a){}try{return e.w=E.format((e.XF||{}).numFmtId||(t?14:0),t?y(r):r)}catch(a){return""+r}}function tt(e,r,t){if(e==null||e.t==null||e.t=="z")return"";if(e.w!==undefined)return e.w;if(e.t=="d"&&!e.z&&t&&t.dateNF)e.z=t.dateNF;if(r==undefined)return rt(e,e.v);return rt(e,r)}function at(e,r){var t=r&&r.sheet?r.sheet:"Sheet1";var a={};a[t]=e;return{SheetNames:[t],Sheets:a}}function nt(e,r){var t=r||{};if(o!=null&&t.dense==null)t.dense=o;var a=t.dense?[]:{};var n={s:{c:1e7,r:1e7},e:{c:0,r:0}};for(var i=0;i!=e.length;++i){for(var s=0;s!=e[i].length;++s){if(typeof e[i][s]==="undefined")continue;var l={v:e[i][s]};if(Array.isArray(l.v)){l.f=e[i][s][1];l.v=l.v[0]}if(n.s.r>i)n.s.r=i;if(n.s.c>s)n.s.c=s;if(n.e.r0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}function ct(e,r){return{ich:e._R(2),ifnt:e._R(2)}}function ft(e,r){if(!r)r=Rr(4);r._W(2,e.ich||0);r._W(2,e.ifnt||0);return r}function ot(e,r){var t=e.l;var a=e._R(1);var n=st(e);var i=[];var s={t:n,h:n};if((a&1)!==0){var l=e._R(4);for(var c=0;c!=l;++c)i.push(ct(e));s.r=i}else s.r=[{ich:0,ifnt:0}];e.l=t+r;return s}function ut(e,r){var t=false;if(r==null){t=true;r=Rr(15+4*e.t.length)}r._W(1,0);lt(e.t,r);return t?r.slice(0,r.l):r}var ht=ot;function dt(e,r){var t=false;if(r==null){t=true;r=Rr(23+4*e.t.length)}r._W(1,1);lt(e.t,r);r._W(4,1);ft({ich:0,ifnt:0},r);return t?r.slice(0,r.l):r}function vt(e){var r=e._R(4);var t=e._R(2);t+=e._R(1)<<16;var a=e._R(1);return{c:r,iStyleRef:t}}function bt(e,r){if(r==null)r=Rr(8);r._W(-4,e.c);r._W(3,e.iStyleRef||e.s);r._W(1,0);return r}var pt=st;var mt=lt;function gt(e){var r=e._R(4);return r===0||r===4294967295?"":e._R(r,"dbcs")}function Et(e,r){var t=false;if(r==null){t=true;r=Rr(127)}r._W(4,e.length>0?e.length:4294967295);if(e.length>0)r._W(0,e,"dbcs");return t?r.slice(0,r.l):r}var St=st;var kt=lt;var Bt=gt;var Ct=Et;function wt(e){var r=e.slice(e.l,e.l+4);var t=r[0]&1,a=r[0]&2;e.l+=4;r[0]&=252;var n=a===0?cr([0,0,0,0,r[0],r[1],r[2],r[3]],0):br(r,0)>>2;return t?n/100:n}function Tt(e,r){if(r==null)r=Rr(4);var t=0,a=0,n=e*100;if(e==(e|0)&&e>=-(1<<29)&&e<1<<29){a=1}else if(n==(n|0)&&n>=-(1<<29)&&n<1<<29){a=1;t=1}if(a)r._W(-4,((t?n:e)<<2)+(t+2));else throw new Error("unsupported RkNumber "+e)}function It(e){var r={s:{},e:{}};r.s.r=e._R(4);r.e.r=e._R(4); +r.s.c=e._R(4);r.e.c=e._R(4);return r}function xt(e,r){if(!r)r=Rr(16);r._W(4,e.s.r);r._W(4,e.e.r);r._W(4,e.s.c);r._W(4,e.e.c);return r}var At=It;var Rt=xt;function Dt(e,r){return e._R(8,"f")}function Ft(e,r){return(r||Rr(8))._W(8,e,"f")}var Ot={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var Pt=F(Ot);function _t(e,r){var t={};var a=e._R(1);var n=a&1;var i=a>>>1;var s=e._R(1);var l=e._R(2,"i");var c=e._R(1);var f=e._R(1);var o=e._R(1);var u=e._R(1);switch(i){case 0:t.auto=1;break;case 1:t.index=s;var h=aa[s];if(h)t.rgb=hl(h);break;case 2:t.rgb=hl([c,f,o]);break;case 3:t.theme=s;break;}if(l!=0)t.tint=l>0?l/32767:l/32768;return t}function yt(e,r){if(!r)r=Rr(8);if(!e||e.auto){r._W(4,0);r._W(4,0);return r}if(e.index){r._W(1,2);r._W(1,e.index)}else if(e.theme){r._W(1,6);r._W(1,e.theme)}else{r._W(1,5);r._W(1,0)}var t=e.tint||0;if(t>0)t*=32767;else if(t<0)t*=32768;r._W(2,t);if(!e.rgb){r._W(2,0);r._W(1,0);r._W(1,0)}else{var a=e.rgb||"FFFFFF";r._W(1,parseInt(a.substr(0,2),16));r._W(1,parseInt(a.substr(2,2),16));r._W(1,parseInt(a.substr(4,2),16));r._W(1,255)}return r}function Nt(e,r,t){var a=e._R(1);e.l++;var n={fItalic:a&2,fStrikeout:a&8,fOutline:a&16,fShadow:a&32,fCondense:a&64,fExtend:a&128};return n}function Mt(e,r){if(!r)r=Rr(2);var t=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);r._W(1,t);r._W(1,0);return r}var Lt=2;var Ut=3;var Wt=11;var Ht=12;var Vt=19;var Gt=21;var Xt=30;var zt=64;var jt=71;var Kt=4096;var Yt=80;var $t=81;var Qt=[Yt,$t];var Zt={1:{n:"CodePage",t:Lt},2:{n:"Category",t:Yt},3:{n:"PresentationFormat",t:Yt},4:{n:"ByteCount",t:Ut},5:{n:"LineCount",t:Ut},6:{n:"ParagraphCount",t:Ut},7:{n:"SlideCount",t:Ut},8:{n:"NoteCount",t:Ut},9:{n:"HiddenCount",t:Ut},10:{n:"MultimediaClipCount",t:Ut},11:{n:"Scale",t:Wt},12:{n:"HeadingPair",t:Kt|Ht},13:{n:"DocParts",t:Kt|Xt},14:{n:"Manager",t:Yt},15:{n:"Company",t:Yt},16:{n:"LinksDirty",t:Wt},17:{n:"CharacterCount",t:Ut},19:{n:"SharedDoc",t:Wt},22:{n:"HLinksChanged",t:Wt},23:{n:"AppVersion",t:Ut,p:"version"},26:{n:"ContentType",t:Yt},27:{n:"ContentStatus",t:Yt},28:{n:"Language",t:Yt},29:{n:"Version",t:Yt},255:{}};var Jt={1:{n:"CodePage",t:Lt},2:{n:"Title",t:Yt},3:{n:"Subject",t:Yt},4:{n:"Author",t:Yt},5:{n:"Keywords",t:Yt},6:{n:"Comments",t:Yt},7:{n:"Template",t:Yt},8:{n:"LastAuthor",t:Yt},9:{n:"RevNumber",t:Yt},10:{n:"EditTime",t:zt},11:{n:"LastPrinted",t:zt},12:{n:"CreatedDate",t:zt},13:{n:"ModifiedDate",t:zt},14:{n:"PageCount",t:Ut},15:{n:"WordCount",t:Ut},16:{n:"CharCount",t:Ut},17:{n:"Thumbnail",t:jt},18:{n:"ApplicationName",t:Xt},19:{n:"DocumentSecurity",t:Ut},255:{}};var qt={2147483648:{n:"Locale",t:Vt},2147483651:{n:"Behavior",t:Vt},1919054434:{}};(function(){for(var e in qt)if(qt.hasOwnProperty(e))Zt[e]=Jt[e]=qt[e]})();var ea={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var ra=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function ta(e){return e.map(function(e){return[e>>16&255,e>>8&255,e&255]})}var aa=ta([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var na={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"};var ia=function(){var e={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};A(e).forEach(function(r){if(!e[r].xlsm)e[r].xlsm=e[r].xlsx});A(e).forEach(function(r){A(e[r]).forEach(function(t){na[e[r][t]]=r})});return e}();var sa=O(na);Ve.CT="http://schemas.openxmlformats.org/package/2006/content-types";function la(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""}}function ca(e,r){var t=la();if(!e||!e.match)return t;var a={};(e.match(ce)||[]).forEach(function(e){var r=ue(e);switch(r[0].replace(fe,"<")){case"0?t.calcchains[0]:"";t.sst=t.strs.length>0?t.strs[0]:"";t.style=t.styles.length>0?t.styles[0]:"";t.defaults=a;delete t.calcchains;return t}var fa=Ue("Types",null,{xmlns:Ve.CT,"xmlns:xsd":Ve.xsd,"xmlns:xsi":Ve.xsi});var oa=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",sa.rels[0]]].map(function(e){return Ue("Default",null,{Extension:e[0],ContentType:e[1]})});function ua(e,r){var t=[],a;t[t.length]=se;t[t.length]=fa;t=t.concat(oa);var n=function(n){if(e[n]&&e[n].length>0){a=e[n][0];t[t.length]=Ue("Override",null,{PartName:(a[0]=="/"?"":"/")+a,ContentType:ia[n][r.bookType||"xlsx"]})}};var i=function(a){(e[a]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:ia[a][r.bookType||"xlsx"]})})};var s=function(r){(e[r]||[]).forEach(function(e){t[t.length]=Ue("Override",null,{PartName:(e[0]=="/"?"":"/")+e,ContentType:sa[r][0]})})};n("workbooks");i("sheets");i("charts");s("themes");["strs","styles"].forEach(n);["coreprops","extprops","custprops"].forEach(s);s("vba");s("comments");s("drawings");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var ha={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function da(e){var r=e.lastIndexOf("/");return e.substr(0,r+1)+"_rels/"+e.substr(r+1)+".rels"}function va(e,r){if(!e)return e;if(r.charAt(0)!=="/"){r="/"+r}var t={};var a={};(e.match(ce)||[]).forEach(function(e){var n=ue(e);if(n[0]==="2){r[r.length]="";r[1]=r[1].replace("/>",">")}return r.join("")}function ma(e,r,t,a,n){if(!n)n={};if(!e["!id"])e["!id"]={};if(r<0)for(r=1;e["!id"]["rId"+r];++r){}n.Id="rId"+r;n.Type=a;n.Target=t;if(n.Type==ha.HLINK)n.TargetMode="External";if(e["!id"][n.Id])throw new Error("Cannot rewrite rId "+r);e["!id"][n.Id]=n;e[("/"+n.Target).replace("//","/")]=n;return r}var ga="application/vnd.oasis.opendocument.spreadsheet";function Ea(e,r){var t=uv(e);var a;var n;while(a=hv.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=ue(a[0],false);if(n.path=="/"&&n.type!==ga)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function Sa(e,r){var t=[se];t.push('\n');t.push(' \n');for(var a=0;a\n');t.push("");return t.join("")}function ka(e,r,t){return[' \n',' \n'," \n"].join("")}function Ba(e,r){return[' \n',' \n'," \n"].join("")}function Ca(e,r){var t=[se];t.push('\n');for(var a=0;a!=e.length;++a){t.push(ka(e[a][0],e[a][1]));t.push(Ba("",e[a][0]))}t.push(ka("","Document","pkg"));t.push("");return t.join("")}var wa=function(){var e='Sheet'+"JS "+r.version+"";return function t(r,a){return e}}();var Ta=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];Ve.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";ha.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var Ia=function(){var e=new Array(Ta.length);for(var r=0;r]*>([\\s\\S]*?)")}return e}();function xa(e){var r={};e=Te(e);for(var t=0;t0)r[a[1]]=n[1];if(a[2]==="date"&&r[a[1]])r[a[1]]=W(r[a[1]])}return r}var Aa=Ue("cp:coreProperties",null,{"xmlns:cp":Ve.CORE_PROPS,"xmlns:dc":Ve.dc,"xmlns:dcterms":Ve.dcterms,"xmlns:dcmitype":Ve.dcmitype,"xmlns:xsi":Ve.xsi});function Ra(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;a[a.length]=t?Ue(e,r,t):Me(e,r)}function Da(e,r){var t=r||{};var a=[se,Aa],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)Ra("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:We(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)Ra("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:We(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=Ta.length;++i){var s=Ta[i];var l=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(l===true)l="1";else if(l===false)l="0";else if(typeof l=="number")l=String(l);if(l!=null)Ra(s[0],l,null,a,n)}if(a.length>2){a[a.length]="";a[1]=a[1].replace("/>",">")}return a.join("")}var Fa=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];Ve.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";ha.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function Oa(e,r,t){var a={};if(!r)r={};e=Te(e);Fa.forEach(function(t){switch(t[2]){case"string":r[t[1]]=(e.match(De(t[0]))||[])[1];break;case"bool":r[t[1]]=(e.match(De(t[0]))||[])[1]==="true";break;case"raw":var n=e.match(new RegExp("<"+t[0]+"[^>]*>([\\s\\S]*?)"));if(n&&n.length>0)a[t[1]]=n[1];break;}});if(a.HeadingPairs&&a.TitlesOfParts){var n=ye(a.HeadingPairs,t);var i=ye(a.TitlesOfParts,t).map(function(e){return e.v});var s=0,l=0;if(i.length>0)for(var c=0;c!==n.length;c+=2){l=+n[c+1].v;switch(n[c].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Werkbladen":r.Worksheets=l;r.SheetNames=i.slice(s,s+l);break;case"Named Ranges":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":r.NamedRanges=l;r.DefinedNames=i.slice(s,s+l);break;case"Charts":;case"Diagramme":r.Chartsheets=l;r.ChartNames=i.slice(s,s+l);break;}s+=l}}return r}var Pa=Ue("Properties",null,{xmlns:Ve.EXT_PROPS,"xmlns:vt":Ve.vt});function _a(e,r){var t=[],a={},n=Ue;if(!e)e={};e.Application="SheetJS";t[t.length]=se;t[t.length]=Pa;Fa.forEach(function(r){if(e[r[1]]===undefined)return;var a;switch(r[2]){case"string":a=String(e[r[1]]);break;case"bool":a=e[r[1]]?"true":"false";break;}if(a!==undefined)t[t.length]=n(r[0],a)});t[t.length]=n("HeadingPairs",n("vt:vector",n("vt:variant","Worksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"}));t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map(function(e){return""+ge(e)+""}).join(""),{size:e.Worksheets,baseType:"lpstr"}));if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}Ve.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";ha.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var ya=/<[^>]+>[^<]*/g;function Na(e,r){var t={},a="";var n=e.match(ya);if(n)for(var i=0;i!=n.length;++i){var s=n[i],l=ue(s);switch(l[0]){case"":a=null;break;default:if(s.indexOf("");var f=c[0].substring(4),o=c[1];switch(f){case"lpstr":;case"bstr":;case"lpwstr":t[a]=be(o);break;case"bool":t[a]=we(o,"");break;case"i1":;case"i2":;case"i4":;case"i8":;case"int":;case"uint":t[a]=parseInt(o,10);break;case"r4":;case"r8":;case"decimal":t[a]=parseFloat(o);break;case"filetime":;case"date":t[a]=W(o);break;case"cy":;case"error":t[a]=be(o);break;default:if(f.slice(-1)=="/")break;if(r.WTF&&typeof console!=="undefined")console.warn("Unexpected",s,f,c);}}else if(s.substr(0,2)==="2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}var Ua={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"};var Wa=D(Ua);function Ha(e,r,t){r=Wa[r]||r;e[r]=t}function Va(e,r){var t=[];A(Ua).map(function(e){for(var r=0;r'+i.join("")+""}function Xa(e){var r=e._R(4),t=e._R(4);return new Date((t/1e7*Math.pow(2,32)+r/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function za(e,r,t){var a=e._R(0,"lpstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function ja(e,r,t){var a=e._R(0,"lpwstr");if(t)e.l+=4-(a.length+1&3)&3;return a}function Ka(e,r,t){if(r===31)return ja(e);return za(e,r,t)}function Ya(e,r,t){return Ka(e,r,t===false?0:4)}function $a(e,r){if(!r)throw new Error("VtUnalignedString must have positive length");return Ka(e,r,0)}function Qa(e){var r=e._R(4);var t=[];for(var a=0;a!=r;++a)t[a]=e._R(0,"lpstr");return t}function Za(e){return Qa(e)}function Ja(e){var r=sn(e,$t);var t=sn(e,Ut);return[r,t]}function qa(e){var r=e._R(4);var t=[];for(var a=0;a!=r/2;++a)t.push(Ja(e));return t}function en(e){return qa(e)}function rn(e,r){var t=e._R(4);var a={};for(var n=0;n!=t;++n){var i=e._R(4);var s=e._R(4);a[i]=e._R(s,r===1200?"utf16le":"utf8").replace(m,"").replace(g,"!")}if(e.l&3)e.l=e.l>>2+1<<2;return a}function tn(e){var r=e._R(4);var t=e.slice(e.l,e.l+r);if((r&3)>0)e.l+=4-(r&3)&3;return t}function an(e){var r={};r.Size=e._R(4);e.l+=r.Size;return r}function nn(e,r){}function sn(e,r,t){var a=e._R(2),n,i=t||{};e.l+=2;if(r!==Ht)if(a!==r&&Qt.indexOf(r)===-1)throw new Error("Expected type "+r+" saw "+a);switch(r===Ht?a:r){case 2:n=e._R(2,"i");if(!i.raw)e.l+=2;return n;case 3:n=e._R(4,"i");return n;case 11:return e._R(4)!==0;case 19:n=e._R(4);return n;case 30:return za(e,a,4).replace(m,"");case 31:return ja(e);case 64:return Xa(e);case 65:return tn(e);case 71:return an(e);case 80:return Ya(e,a,!i.raw).replace(m,"");case 81:return $a(e,a).replace(m,"");case 4108:return en(e);case 4126:return Za(e);default:throw new Error("TypedPropertyValue unrecognized type "+r+" "+a);}}function ln(e,r){var t=e.l;var a=e._R(4);var i=e._R(4);var s=[],l=0;var c=0;var f=-1,o={};for(l=0;l!=i;++l){var u=e._R(4);var h=e._R(4);s[l]=[u,h+t]}var d={};for(l=0;l!=i;++l){if(e.l!==s[l][1]){var v=true;if(l>0&&r)switch(r[s[l-1][0]].t){case 2:if(e.l+2===s[l][1]){e.l+=2;v=false}break;case 80:if(e.l<=s[l][1]){e.l=s[l][1];v=false}break;case 4108:if(e.l<=s[l][1]){e.l=s[l][1];v=false}break;}if(!r&&e.l<=s[l][1]){v=false;e.l=s[l][1]}if(v)throw new Error("Read Error: Expected address "+s[l][1]+" at "+e.l+" :"+l)}if(r){var b=r[s[l][0]];d[b.n]=sn(e,b.t,{raw:true});if(b.p==="version")d[b.n]=String(d[b.n]>>16)+"."+String(d[b.n]&65535);if(b.n=="CodePage")switch(d[b.n]){case 0:d[b.n]=1252;case 874:;case 932:;case 936:;case 949:;case 950:;case 1250:;case 1251:;case 1253:;case 1254:;case 1255:;case 1256:;case 1257:;case 1258:;case 1e4:;case 1200:;case 1201:;case 1252:;case 65e3:;case-536:;case 65001:;case-535:n(c=d[b.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[b.n]);}}else{if(s[l][0]===1){c=d.CodePage=sn(e,Lt);n(c);if(f!==-1){var p=e.l;e.l=s[f][1];o=rn(e,c);e.l=p}}else if(s[l][0]===0){if(c===0){f=l;e.l=s[l+1][1];continue}o=rn(e,c)}else{var m=o[s[l][0]];var g;switch(e[e.l]){case 65:e.l+=4;g=tn(e);break;case 30:e.l+=4;g=Ya(e,e[e.l-4]);break;case 31:e.l+=4;g=Ya(e,e[e.l-4]);break;case 3:e.l+=4;g=e._R(4,"i");break;case 19:e.l+=4;g=e._R(4);break;case 5:e.l+=4;g=e._R(8,"f");break;case 11:e.l+=4;g=hn(e,4);break;case 64:e.l+=4;g=W(Xa(e));break;default:throw new Error("unparsed value: "+e[e.l]);}d[m]=g}}}e.l=t+a;return d}function cn(e,r){var t=e.content;if(!t)return{};Tr(t,0);var a,n,i,s,l=0;t.chk("feff","Byte Order: ");var c=t._R(2);var f=t._R(4);t.chk(I.utils.consts.HEADER_CLSID,"CLSID: ");a=t._R(4);if(a!==1&&a!==2)throw new Error("Unrecognized #Sets: "+a);n=t._R(16);s=t._R(4);if(a===1&&s!==t.l)throw new Error("Length mismatch: "+s+" !== "+t.l);else if(a===2){i=t._R(16);l=t._R(4)}var o=ln(t,r);var u={SystemIdentifier:f};for(var h in o)u[h]=o[h];u.FMTID=n;if(a===1)return u;if(t.l!==l)throw new Error("Length mismatch 2: "+t.l+" !== "+l);var d;try{d=ln(t,null)}catch(v){}for(h in d)u[h]=d[h];u.FMTID=[n,i];return u}function fn(e,r){e._R(r);return null}function on(e,r){if(!r)r=Rr(e);for(var t=0;t=12?2:1);var i=1,s="sbcs-cont";var l=t;if(a&&a.biff>=8)t=1200;if(!a||a.biff==8){var c=e._R(1);if(c){i=2;s="dbcs-cont"}}else if(a.biff==12){i=2;s="wstr"}var f=n?e._R(n,s):"";t=l;return f}function Sn(e){var r=t;t=1200;var a=e._R(2),n=e._R(1);var i=n&1,s=n&4,l=n&8;var c=1+(n&1);var f=0,o;var u={};if(l)f=e._R(2);if(s)o=e._R(4);var h=n&1?"dbcs-cont":"sbcs-cont";var d=a===0?"":e._R(a,h);if(l)e.l+=4*f;if(s)e.l+=o;u.t=d;if(!l){u.raw=""+u.t+"";u.r=u.t}t=r;return u}function kn(e,r,t){var a;if(t){if(t.biff>=2&&t.biff<=5)return e._R(r,"sbcs-cont");if(t.biff>=12)return e._R(r,"dbcs-cont")}var n=e._R(1);if(n===0){a=e._R(r,"sbcs-cont")}else{a=e._R(r,"dbcs-cont")}return a}function Bn(e,r,t){var a=e._R(t&&t.biff==2?1:2);if(a===0){e.l++;return""}return kn(e,a,t)}function Cn(e,r,t){if(t.biff>5)return Bn(e,r,t);var a=e._R(1);if(a===0){e.l++;return""}return e._R(a,"sbcs-cont")}function wn(e,r,t){var a=e._R(1);e.l++;var n=e._R(2);e.l+=2;return[a,n]}function Tn(e){var r=e._R(4),t=e.l;var a=false;if(r>24){e.l+=r-24;if(e._R(16)==="795881f43b1d7f48af2c825dc4852763")a=true;e.l=t}var n=e._R((a?r-24:r)>>1,"utf16le").replace(m,"");if(a)e.l+=24;return n}function In(e,r){var t=e._R(2);var a=e._R(4);var n=e._R(a,"cstr");var i=e._R(2);var s=e._R(2);var l=e._R(4);if(l===0)return n.replace(/\\/g,"/");var c=e._R(4);var f=e._R(2);var o=e._R(c>>1,"utf16le").replace(m,"");return o}function xn(e,r){var t=e._R(16);r-=16;switch(t){case"e0c9ea79f9bace118c8200aa004ba90b":return Tn(e,r);case"0303000000000000c000000000000046":return In(e,r);default:throw new Error("Unsupported Moniker "+t);}}function An(e,r){var t=e._R(4);var a=e._R(t,"utf16le").replace(m,"");return a}function Rn(e,r){var t=e.l+r;var a=e._R(4);if(a!==2)throw new Error("Unrecognized streamVersion: "+a);var n=e._R(2);e.l+=2;var i,s,l,c,f,o,u;if(n&16)i=An(e,t-e.l);if(n&128)s=An(e,t-e.l);if((n&257)===257)l=An(e,t-e.l);if((n&257)===1)c=xn(e,t-e.l);if(n&8)f=An(e,t-e.l);if(n&32)o=e._R(16);if(n&64)u=Xa(e);e.l=t;var h=s||l||c;if(f)h+="#"+f;return{Target:h}}function Dn(e,r){var t=e._R(1),a=e._R(1),n=e._R(1),i=e._R(1);return[t,a,n,i]}function Fn(e,r){var t=Dn(e,r);t[3]=0;return t}function On(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);return{r:t,c:a,ixfe:n}}function Pn(e,r,t,a){if(!a)a=Rr(6);a._W(2,e);a._W(2,r);a._W(2,t||0);return a}function _n(e){var r=e._R(2);var t=e._R(2);e.l+=8;return{type:r,flags:t}}function yn(e,r,t){return r===0?"":Cn(e,r,t)}function Nn(e,r,t){var a=t.biff>8?4:2;var n=e._R(a),i=e._R(a,"i"),s=e._R(a,"i");return[n,i,s]}function Mn(e,r){var t=e._R(2);var a=wt(e);return[t,a]}function Ln(e,r,t){e.l+=4;r-=4;var a=e.l+r;var n=En(e,r,t);var i=e._R(2);a-=e.l;if(i!==a)throw new Error("Malformed AddinUdf: padding = "+a+" != "+i);e.l+=i;return n}function Un(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(2);var i=e._R(2);return{s:{c:n,r:t},e:{c:i,r:a}}}function Wn(e,r){var t=e._R(2);var a=e._R(2);var n=e._R(1);var i=e._R(1);return{s:{c:n,r:t},e:{c:i,r:a}}}var Hn=Wn;function Vn(e,r){e.l+=4; +var t=e._R(2);var a=e._R(2);var n=e._R(2);e.l+=12;return[a,t,n]}function Gn(e,r){var t={};e.l+=4;e.l+=16;t.fSharedNote=e._R(2);e.l+=4;return t}function Xn(e,r){var t={};e.l+=4;e.cf=e._R(2);return t}function zn(e,r){e.l+=2;e.l+=e._R(2)}var jn={0:zn,4:zn,5:zn,6:zn,7:Xn,8:zn,9:zn,10:zn,11:zn,12:zn,13:Gn,14:zn,15:zn,16:zn,17:zn,18:zn,19:zn,20:zn,21:Vn};function Kn(e,r,t){var a=e.l+r;var n=[];while(e.l=2){t.dt=e._R(2);e.l-=2}switch(t.BIFFVer){case 1536:;case 1280:;case 2:;case 7:break;default:if(r>6)throw new Error("Unexpected BIFF Ver "+t.BIFFVer);}e._R(r);return t}function $n(e,r,t){var a=1536,n=16;switch(t.bookType){case"biff8":break;case"biff5":a=1280;n=8;break;case"biff4":a=4;n=6;break;case"biff3":a=3;n=6;break;case"biff2":a=2;n=4;break;default:throw new Error("unsupported BIFF version");}var i=Rr(n);i._W(2,a);i._W(2,r);if(n>4)i._W(2,29282);if(n>6)i._W(2,1997);if(n>8){i._W(2,49161);i._W(2,1);i._W(2,1798);i._W(2,0)}return i}function Qn(e,r){if(r===0)return 1200;var t;if((t=e._R(2))!==1200){}return 1200}function Zn(e,r,t){if(t.enc){e.l+=r;return""}var a=e.l;var n=Bn(e,0,t);e._R(r+a-e.l);return n}function Jn(e,r){var t=!r||r.biff==8;var a=Rr(t?112:54);a._W(r.biff==8?2:1,7);a._W(1,0);a._W(4,859007059);a._W(4,5458548);while(a.l=8?2:1;var a=Rr(8+t*e.name.length);a._W(4,e.pos);a._W(1,e.hs||0);a._W(1,e.dt);a._W(1,e.name.length);if(r.biff>=8)a._W(1,1);a._W(t*e.name.length,e.name,r.biff<8?"sbcs":"utf16le");return a.slice(0,a.l)}function ri(e,r){var t=e.l+r;var a=e._R(4);var n=e._R(4);var i=[];for(var s=0;s!=n&&e.l>15);n&=32767}var i={Unsynced:a&1,DyZero:(a&2)>>1,ExAsc:(a&4)>>2,ExDsc:(a&8)>>3};return[i,n]}function li(e,r){var t=e._R(2),a=e._R(2),n=e._R(2),i=e._R(2);var s=e._R(2),l=e._R(2),c=e._R(2);var f=e._R(2),o=e._R(2);return{Pos:[t,a],Dim:[n,i],Flags:s,CurTab:l,FirstTab:c,Selected:f,TabRatio:o}}function ci(e){var r=Rr(18);r._W(2,0);r._W(2,0);r._W(2,29280);r._W(2,17600);r._W(2,56);r._W(2,0);r._W(2,0);r._W(2,1);r._W(2,500);return r}function fi(e,r,t){var a={dyHeight:e._R(2),fl:e._R(2)};switch(t&&t.biff||8){case 2:break;case 3:;case 4:e.l+=2;break;default:e.l+=10;break;}a.name=En(e,0,t);return a}function oi(e,r){var t=On(e);t.isst=e._R(4);return t}function ui(e,r,t){var a=e.l+r;var n=On(e,6);if(t.biff==2)e.l++;var i=Bn(e,a-e.l,t);n.val=i;return n}function hi(e,r,t,a){var n=!a||a.biff==8;var i=Rr(6+2+ +n+(1+n)*t.length);Pn(e,r,0,i);i._W(2,t.length);if(n)i._W(1,1);i._W((1+n)*t.length,t,n?"utf16le":"sbcs");return i}function di(e,r,t){var a=e._R(2);var n=Cn(e,0,t);return[a,n]}var vi=Cn;function bi(e,r,t){var a=e.l+r;var n=t.biff==8||!t.biff?4:2;var i=e._R(n),s=e._R(n);var l=e._R(2),c=e._R(2);e.l=a;return{s:{r:i,c:l},e:{r:s,c:c}}}function pi(e,r){var t=r.biff==8||!r.biff?4:2;var a=Rr(2*t+6);a._W(t,e.s.r);a._W(t,e.e.r+1);a._W(2,e.s.c);a._W(2,e.e.c+1);a._W(2,0);return a}function mi(e,r){var t=e._R(2),a=e._R(2);var n=Mn(e);return{r:t,c:a,ixfe:n[0],rknum:n[1]}}function gi(e,r){var t=e.l+r-2;var a=e._R(2),n=e._R(2);var i=[];while(e.l>26];if(!a.cellStyles)return n;n.alc=i&7;n.fWrap=i>>3&1;n.alcV=i>>4&7;n.fJustLast=i>>7&1;n.trot=i>>8&255;n.cIndent=i>>16&15;n.fShrinkToFit=i>>20&1;n.iReadOrder=i>>22&2;n.fAtrNum=i>>26&1;n.fAtrFnt=i>>27&1;n.fAtrAlc=i>>28&1;n.fAtrBdr=i>>29&1;n.fAtrPat=i>>30&1;n.fAtrProt=i>>31&1;n.dgLeft=s&15;n.dgRight=s>>4&15;n.dgTop=s>>8&15;n.dgBottom=s>>12&15;n.icvLeft=s>>16&127;n.icvRight=s>>23&127;n.grbitDiag=s>>30&3;n.icvTop=l&127;n.icvBottom=l>>7&127;n.icvDiag=l>>14&127;n.dgDiag=l>>21&15;n.icvFore=c&127;n.icvBack=c>>7&127;n.fsxButton=c>>14&1;return n}function ki(e,r,t){return Si(e,r,0,t)}function Bi(e,r,t){return Si(e,r,1,t)}function Ci(e,r,t){var a={};a.ifnt=e._R(2);a.numFmtId=e._R(2);a.flags=e._R(2);a.fStyle=a.flags>>2&1;r-=6;a.data=Si(e,r,a.fStyle,t);return a}function wi(e,r){e.l+=4;var t=[e._R(2),e._R(2)];if(t[0]!==0)t[0]--;if(t[1]!==0)t[1]--;if(t[0]>7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}function Ti(e){var r=Rr(8);r._W(4,0);r._W(2,e[0]?e[0]+1:0);r._W(2,e[1]?e[1]+1:0);return r}function Ii(e,r,t){var a=On(e,6);if(t.biff==2)++e.l;var n=mn(e,2);a.val=n;a.t=n===true||n===false?"b":"e";return a}function xi(e,r,t,a,n){var i=Rr(8);Pn(e,r,0,i);gn(t,n,i);return i}function Ai(e,r){var t=On(e,6);var a=Dt(e,8);t.val=a;return t}function Ri(e,r,t,a){var n=Rr(14);Pn(e,r,0,n);Ft(t,n);return n}var Di=yn;function Fi(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(2);t.sbcch=i;if(i==1025||i==14849)return[i,n];if(i<1||i>255)throw new Error("Unexpected SupBook type: "+i);var s=kn(e,i);var l=[];while(a>e.l)l.push(Bn(e));return[i,n,s,l]}function Oi(e,r,t){var a=e._R(2);var n;var i={fBuiltIn:a&1,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=Ln(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}var Pi=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function _i(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var l=e._R(t&&t.biff==2?1:2);var c=0;if(!t||t.biff>=5){e.l+=2;c=e._R(2);e.l+=4}var f=kn(e,s,t);if(n&32)f=Pi[f.charCodeAt(0)];var o=a-e.l;if(t&&t.biff==2)--o;var u=a==e.l||l===0?[]:fu(e,o,t,l);return{chKey:i,Name:f,itab:c,rgce:u}}function yi(e,r,t){if(t.biff<8)return Ni(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(Nn(e,t.biff>8?12:6,t));var s=[];return a}function Ni(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=En(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function Mi(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=kn(e,a,t);var s=kn(e,n,t);return[i,s]}function Li(e,r,t){var a=Wn(e,6);e.l++;var n=e._R(1);r-=8;return[ou(e,r,t),n]}function Ui(e,r,t){var a=Hn(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,lu(e,r,t,a)]}function Wi(e,r){var t=e._R(4)!==0;var a=e._R(4)!==0;var n=e._R(4);return[t,a,n]}function Hi(e,r,t){if(t.biff<8)return;var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var l=Cn(e,0,t);if(t.biff<8)e._R(1);return[{r:a,c:n},l,s,i]}function Vi(e,r,t){return Hi(e,r,t)}function Gi(e,r){var t=[];var a=e._R(2);while(a--)t.push(Un(e,r));return t}function Xi(e,r,t){if(t&&t.biff<8)return ji(e,r,t);var a=Vn(e,22);var n=Kn(e,r-22,a[1]);return{cmo:a,ft:n}}var zi=[];zi[8]=function(e,r,t){var a=e.l+r;e.l+=10;var n=e._R(2);e.l+=4;var i=e._R(2);e.l+=2;var s=e._R(2);e.l+=4;var l=e._R(1);e.l+=l;e.l=a;return{fmt:n}};function ji(e,r,t){var a=e._R(4);var n=e._R(2);var i=e._R(2);var s=e._R(2);var l=e._R(2);var c=e._R(2);var f=e._R(2);var o=e._R(2);var u=e._R(2);var h=e._R(2);var d=e._R(2);var v=e._R(2);var b=e._R(2);e.l+=6;r-=36;var p=[];p.push((zi[n]||Ir)(e,r,t));return{cmo:[i,n,s],ft:p}}function Ki(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=wn(e,6,t);var l=e._R(2);var c=e._R(2);var f=vn(e,2);var o=e._R(2);e.l+=o;for(var u=1;u=(h?l:2*l))break}if(n.length!==l&&n.length!==l*2){throw new Error("cchText: "+l+" != "+n.length)}e.l=a+r;return{t:n}}catch(v){e.l=a+r;return{t:n}}}function Yi(e,r){var t=Un(e,8);e.l+=16;var a=Rn(e,r-24);return[t,a]}function $i(e,r){var t=e.l+r;e._R(2);var a=Un(e,8);var n=e._R((r-10)/2,"dbcs-cont");n=n.replace(m,"");return[a,n]}function Qi(e,r){var t=[],a;a=e._R(2);t[0]=ea[a]||a;a=e._R(2);t[1]=ea[a]||a;return t}function Zi(e){if(!e)e=Rr(4);e._W(2,1);e._W(2,1);return e}function Ji(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Fn(e,8));return a}function qi(e,r){var t=e._R(2);var a=[];while(t-- >0)a.push(Fn(e,8));return a}function es(e,r){e.l+=2;var t={cxfs:0,crc:0};t.cxfs=e._R(2);t.crc=e._R(4);return t}function rs(e,r,t){if(!t.cellStyles)return Ir(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var l=e._R(a);var c=e._R(2);if(a==2)e.l+=2;return{s:n,e:i,w:s,ixfe:l,flags:c}}function ts(e,r,t){var a={};e.l+=16;a.header=Dt(e,8);a.footer=Dt(e,8);e.l+=2;return a}function as(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function ns(e){var r=Rr(2*e);for(var t=0;t0){if(n[n.l]===42){n.l+=d;continue}++n.l;a[++B]=[];C=0;for(C=0;C!=g.length;++C){var w=n.slice(n.l,n.l+g[C].len);n.l+=g[C].len;Tr(w,0);var T=cptable.utils.decode(m,w);switch(g[C].type){case"C":a[B][C]=cptable.utils.decode(m,w);a[B][C]=a[B][C].trim();break;case"D":if(T.length===8)a[B][C]=new Date(+T.substr(0,4),+T.substr(4,2)-1,+T.substr(6,2));else a[B][C]=T;break;case"F":a[B][C]=parseFloat(T.trim());break;case"+":;case"I":a[B][C]=c?w._R(-4,"i")^2147483648:w._R(4,"i");break;case"L":switch(T.toUpperCase()){case"Y":;case"T":a[B][C]=true;break;case"N":;case"F":a[B][C]=false;break;case" ":;case"?":a[B][C]=false;break;default:throw new Error("DBF Unrecognized L:|"+T+"|");}break;case"M":if(!s)throw new Error("DBF Unexpected MEMO for type "+i.toString(16));a[B][C]="##MEMO##"+(c?parseInt(T.trim(),10):w._R(4));break;case"N":a[B][C]=+T.replace(/\u0000/g,"").trim();break;case"@":a[B][C]=new Date(w._R(-8,"f")-621356832e5);break;case"T":a[B][C]=new Date((w._R(4)-2440588)*864e5+w._R(4));break;case"Y":a[B][C]=w._R(4,"i")/1e4;break;case"O":a[B][C]=-w._R(-8,"f");break;case"B":if(l&&g[C].len==8){a[B][C]=w._R(8,"f");break};case"G":;case"P":w.l+=g[C].len;break;case"0":if(g[C].name==="_NullFlags")break;default:throw new Error("DBF Unsupported data type "+g[C].type);}}}if(i!=2)if(n.l0)switch(g){case"ID":break;case"E":break;case"B":break;case"O":break;case"P":if(m[1].charAt(0)=="P")c.push(p.substr(3).replace(/;;/g,";"));break;case"C":for(s=1;s0){u[a].hpt=v;u[a].hpx=Ol(v)}else if(v===0)u[a].hidden=true;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+p);}if(B<1)f=null;break;default:if(r&&r.WTF)throw new Error("SYLK bad record "+p);}}if(u.length>0)o["!rows"]=u;if(h.length>0)o["!cols"]=h;return[l,o]}function t(r,t){var a=e(r,t);var n=a[0],i=a[1];var s=nt(n,t);A(i).forEach(function(e){s[e]=i[e]});return s}function a(e,r){return at(t(e,r),r)}function n(e,r,t,a,n){var i="C;Y"+(t+1)+";X"+(a+1)+";K";switch(e.t){case"n":i+=e.v||0;if(e.f&&!e.F)i+=";E"+hf(e.f,{r:t,c:a});break;case"b":i+=e.v?"TRUE":"FALSE";break;case"e":i+=e.w||e.v;break;case"d":i+='"'+(e.w||e.v)+'"';break;case"s":i+='"'+e.v.replace(/"/g,"")+'"';break;}return i}function i(e,r){r.forEach(function(r,t){var a="F;W"+(t+1)+" "+(t+1)+" ";if(r.hidden)a+="0";else{if(typeof r.width=="number")r.wpx=Sl(r.width);if(typeof r.wpx=="number")r.wch=kl(r.wpx);if(typeof r.wch=="number")a+=Math.round(r.wch)}if(a.charAt(a.length-1)!=" ")e.push(a)})}function s(e,r){r.forEach(function(r,t){var a="F;";if(r.hidden)a+="M0;";else if(r.hpt)a+="M"+20*r.hpt+";";else if(r.hpx)a+="M"+20*Fl(r.hpx)+";";if(a.length>2)e.push(a+"R"+(t+1))})}function l(e,r){var t=["ID;PWXL;N;E"],a=[];var l=et(e["!ref"]),c;var f=Array.isArray(e);var o="\r\n";t.push("P;PGeneral");t.push("F;P0;DG0G8;M255");if(e["!cols"])i(t,e["!cols"]);if(e["!rows"])s(t,e["!rows"]);t.push("B;Y"+(l.e.r-l.s.r+1)+";X"+(l.e.c-l.s.c+1)+";D"+[l.s.c,l.s.r,l.e.c,l.e.r].join(" "));for(var u=l.s.r;u<=l.e.r;++u){for(var h=l.s.c;h<=l.e.c;++h){var d=$r({r:u,c:h});c=f?(e[u]||[])[h]:e[d];if(!c||c.v==null&&(!c.f||c.F))continue;a.push(n(c,e,u,h,r))}}return t.join(o)+o+a.join(o)+o+"E"+o}return{to_workbook:a,to_sheet:t,from_sheet:l}}();var Ss=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(H(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=e.split("\n"),a=-1,n=-1,i=0,s=[];for(;i!==t.length;++i){if(t[i].trim()==="BOT"){s[++a]=[];n=0;continue}if(a<0)continue;var l=t[i].trim().split(",");var c=l[0],f=l[1];++i;var o=t[i].trim();switch(+c){case-1:if(o==="BOT"){s[++a]=[];n=0;continue}else if(o!=="EOD")throw new Error("Unrecognized DIF special command "+o);break;case 0:if(o==="TRUE")s[a][n]=true;else if(o==="FALSE")s[a][n]=false;else if(!isNaN(z(f)))s[a][n]=z(f);else if(!isNaN(j(f).getDate()))s[a][n]=W(f);else s[a][n]=f;++n;break;case 1:o=o.substr(1,o.length-2);s[a][n++]=o!==""?o:null;break;}if(o==="EOD")break}return s}function t(r,t){return nt(e(r,t),t)}function a(e,r){return at(t(e,r),r)}var n=function(){var e=function t(e,r,a,n,i){e.push(r);e.push(a+","+n);e.push('"'+i.replace(/"/g,'""')+'"')};var r=function a(e,r,t,n){e.push(r+","+t);e.push(r==1?'"'+n.replace(/"/g,'""')+'"':n)};return function n(t,a){var n=[];var i=et(t["!ref"]),s;var l=Array.isArray(t);e(n,"TABLE",0,1,"sheetjs");e(n,"VECTORS",0,i.e.r-i.s.r+1,"");e(n,"TUPLES",0,i.e.c-i.s.c+1,"");e(n,"DATA",0,0,"");for(var c=i.s.r;c<=i.e.r;++c){r(n,-1,0,"BOT");for(var f=i.s.c;f<=i.e.c;++f){var o=$r({r:c,c:f});s=l?(t[c]||[])[f]:t[o];if(!s){r(n,1,0,"");continue}switch(s.t){case"n":var h=u?s.w:s.v;if(!h&&s.v!=null)h=s.v;if(h==null){if(u&&s.f&&!s.F)r(n,1,0,"="+s.f);else r(n,1,0,"")}else r(n,0,h,"V");break;case"b":r(n,0,s.v?1:0,s.v?"TRUE":"FALSE");break;case"s":r(n,1,0,!u||isNaN(s.v)?s.v:'="'+s.v+'"');break;case"d":if(!s.w)s.w=E.format(s.z||E._table[14],y(W(s.v)));if(u)r(n,0,s.w,"V");else r(n,1,0,s.w);break;default:r(n,1,0,"");}}}r(n,-1,0,"EOD");var d="\r\n";var v=n.join(d);return v}}();return{to_workbook:a,to_sheet:t,from_sheet:n}}();var ks=function(){function e(e,r,t,a,n){if(n.raw)r[t][a]=e;else if(e==="TRUE")r[t][a]=true;else if(e==="FALSE")r[t][a]=false;else if(e===""){}else if(!isNaN(z(e)))r[t][a]=z(e);else if(!isNaN(j(e).getDate()))r[t][a]=W(e);else r[t][a]=e}function r(r,t){var a=t||{};var n=[];if(!r||r.length===0)return n;var i=r.split(/[\r\n]/);var s=i.length-1;while(s>=0&&i[s].length===0)--s;var l=10,c=0;var f=0;for(;f<=s;++f){c=i[f].indexOf(" ");if(c==-1)c=i[f].length;else c++;l=Math.max(l,c)}for(f=0;f<=s;++f){n[f]=[];var o=0;e(i[f].slice(0,l).trim(),n,f,o,a);for(o=1;o<=(i[f].length-l)/10+1;++o)e(i[f].slice(l+(o-1)*10,l+o*10).trim(),n,f,o,a)}return n}var t={44:",",9:"\t",59:";"};var a={44:3,9:2,59:1};function n(e){var r={},n=false,i=0,s=0;for(;i0)m();i["!ref"]=qr(s);return i}function s(e,t){if(e.substr(0,4)=="sep=")return i(e,t);if(e.indexOf("\t")>=0||e.indexOf(",")>=0)return i(e,t);return nt(r(e,t),t)}function l(e,r){var t="",a=r.type=="string"?[0,0,0,0]:wb(e,r);switch(r.type){case"base64":t=h.decode(e);break;case"binary":t=e;break;case"buffer":t=e.toString("binary");break;case"array":t=H(e);break;case"string":t=e;break;default:throw new Error("Unrecognized type "+r.type);}if(a[0]==239&&a[1]==187&&a[2]==191)t=Te(t.slice(3));return s(t,r)}function c(e,r){return at(l(e,r),r)}function f(e,r){var t=[];var a=et(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){var l=[];for(var c=a.s.c;c<=a.e.c;++c){var f=$r({r:s,c:c});n=i?(e[s]||[])[c]:e[f];if(!n||n.v==null){l.push(" ");continue}var o=(n.w||(tt(n),n.w)||"").substr(0,10);while(o.length<10)o+=" ";l.push(o+(c===0?" ":""))}t.push(l.join(""))}return t.join("\n")}return{to_workbook:c,to_sheet:l,from_sheet:f}}();function Bs(e,r){var t=r||{},a=!!t.WTF;t.WTF=true;try{var n=Es.to_workbook(e,t);t.WTF=a;return n}catch(i){t.WTF=a;if(!i.message.match(/SYLK bad record ID/)&&a)throw i;return ks.to_workbook(e,r)}}var Cs=function(){function e(e,r,t){if(!e)return;Tr(e,e.l||0);var a=t.Enum||k;while(e.l=4096)a.qpro=true;break;case 6:f=e;break;case 15:if(!a.qpro)e[1].v=e[1].v.substr(1);case 13:;case 14:;case 16:;case 51:if(o==14&&(e[2]&112)==112&&(e[2]&15)>1&&(e[2]&15)<15){e[1].z=a.dateNF||E._table[14];if(a.cellDates){e[1].t="d";e[1].v=N(e[1].v)}}if(a.dense){if(!n[e[0].r])n[e[0].r]=[];n[e[0].r][e[0].c]=e[1]}else n[$r(e[0])]=e[1];break;}else switch(o){case 22:e[1].v=e[1].v.substr(1);case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>s){n["!ref"]=qr(f);l[i]=n;n=a.dense?[]:{};f={s:{r:0,c:0},e:{r:0,c:0}};s=e[3];i="Sheet"+(s+1);c.push(i)}n[$r(e[0])]=e[1];if(f.e.c>1;if(t[1].v&1){switch(a&7){case 1:a=(a>>3)*500;break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(a&7);}}t[1].v=a;return t}function v(e,r){var t=f(e,r);var a=e._R(4);var n=e._R(4);var i=e._R(2);if(i==65535){t[1].v=0;return t}var s=i&32768;i=(i&32767)-16446;t[1].v=(i>0?n<>>-i)+(i>-32?a<>>-(i+32));return t}function p(e,r){var t=v(e,14);e.l+=r-14;return t}function m(e,r){var t=f(e,r);var a=e._R(4);t[1].v=a>>6;return t}function g(e,r){var t=f(e,r);var a=e._R(8,"f");t[1].v=a;return t}function S(e,r){var t=g(e,14);e.l+=r-10;return t}var k={0:{n:"BOF",f:vn},1:{n:"EOF",f:Ir},2:{n:"CALCMODE",f:Ir},3:{n:"CALCORDER",f:Ir},4:{n:"SPLIT",f:Ir},5:{n:"SYNC",f:Ir},6:{n:"RANGE",f:a},7:{n:"WINDOW1",f:Ir},8:{n:"COLW1",f:Ir},9:{n:"WINTWO",f:Ir},10:{n:"COLW2",f:Ir},11:{n:"NAME",f:Ir},12:{n:"BLANK",f:Ir},13:{n:"INTEGER",f:s},14:{n:"NUMBER",f:l},15:{n:"LABEL",f:i},16:{n:"FORMULA",f:c},24:{n:"TABLE",f:Ir},25:{n:"ORANGE",f:Ir},26:{n:"PRANGE",f:Ir},27:{n:"SRANGE",f:Ir},28:{n:"FRANGE",f:Ir},29:{n:"KRANGE1",f:Ir},32:{n:"HRANGE",f:Ir},35:{n:"KRANGE2",f:Ir},36:{n:"PROTEC",f:Ir},37:{n:"FOOTER",f:Ir},38:{n:"HEADER",f:Ir},39:{n:"SETUP",f:Ir},40:{n:"MARGINS",f:Ir},41:{n:"LABELFMT",f:Ir},42:{n:"TITLES",f:Ir},43:{n:"SHEETJS",f:Ir},45:{n:"GRAPH",f:Ir},46:{n:"NGRAPH",f:Ir},47:{n:"CALCCOUNT",f:Ir},48:{n:"UNFORMATTED",f:Ir},49:{n:"CURSORW12",f:Ir},50:{n:"WINDOW",f:Ir},51:{n:"STRING",f:i},55:{n:"PASSWORD",f:Ir},56:{n:"LOCKED",f:Ir},60:{n:"QUERY",f:Ir},61:{n:"QUERYNAME",f:Ir},62:{n:"PRINT",f:Ir},63:{n:"PRINTNAME",f:Ir},64:{n:"GRAPH2",f:Ir},65:{n:"GRAPHNAME",f:Ir},66:{n:"ZOOM",f:Ir},67:{n:"SYMSPLIT",f:Ir},68:{n:"NSROWS",f:Ir},69:{n:"NSCOLS",f:Ir},70:{n:"RULER",f:Ir},71:{n:"NNAME",f:Ir},72:{n:"ACOMM",f:Ir},73:{n:"AMACRO",f:Ir},74:{n:"PARSE",f:Ir},255:{n:"",f:Ir}};var B={0:{n:"BOF",f:Ir},1:{n:"EOF",f:Ir},3:{n:"??",f:Ir},4:{n:"??",f:Ir},5:{n:"??",f:Ir},6:{n:"??",f:Ir},7:{n:"??",f:Ir},9:{n:"??",f:Ir},10:{n:"??",f:Ir},11:{n:"??",f:Ir},12:{n:"??",f:Ir},14:{n:"??",f:Ir},15:{n:"??",f:Ir},16:{n:"??",f:Ir},17:{n:"??",f:Ir},18:{n:"??",f:Ir},19:{n:"??",f:Ir},21:{n:"??",f:Ir},22:{n:"LABEL16",f:u},23:{n:"NUMBER17",f:v},24:{n:"NUMBER18",f:d},25:{n:"FORMULA19",f:p},26:{n:"??",f:Ir},27:{n:"??",f:Ir},28:{n:"??",f:Ir},29:{n:"??",f:Ir},30:{n:"??",f:Ir},31:{n:"??",f:Ir},33:{n:"??",f:Ir},37:{n:"NUMBER25",f:m},39:{n:"NUMBER27",f:g},40:{n:"FORMULA28",f:S},255:{n:"",f:Ir}};return{to_workbook:r}}();var ws={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var Ts=function vp(){var e=De("t"),r=De("rPr"),t=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/,n=/\r\n/g;var i=function l(e,r,t){var a={},n=65001,i="";var s=e.match(ce),l=0;if(s)for(;l!=s.length;++l){var c=ue(s[l]);switch(c[0].replace(/\w*:/g,"")){case"":;case"":a.shadow=1;break;case"":break;case"":;case"":a.outline=1;break;case"":break;case"":;case"":a.strike=1;break;case"":break;case"":;case"":a.u=1;break;case"":break;case"":;case"":a.b=1;break;case"":break;case"":;case"":a.i=1;break;case"":break;case"');if(a.b){r.push("");t.push("")}if(a.i){r.push("");t.push("")}if(a.strike){r.push("");t.push("")}if(i=="superscript")i="sup";else if(i=="subscript")i="sub";if(i!=""){r.push("<"+i+">");t.push("")}t.push("");return n};function s(t){var a=[[],"",[]];var s=t.match(e),l=65001;if(!x(s))return"";a[1]=s[1];var c=t.match(r);if(x(c))l=i(c[1],a[0],a[2]);return a[0].join("")+a[1].replace(n,"
    ")+a[2].join("")}return function c(e){return e.replace(t,"").split(a).map(s).join("")}}();var Is=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,xs=/<(?:\w+:)?r>/;var As=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Rs(e,r){var t=r?r.cellHTML:true;var a={};if(!e)return null;var n;if(e.match(/^\s*<(?:\w+:)?t[^>]*>/)){a.t=be(Te(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||""));a.r=Te(e);if(t)a.h=ke(a.t)}else if(n=e.match(xs)){a.r=Te(e);a.t=be(Te((e.replace(As,"").match(Is)||[]).join("").replace(ce,"")));if(t)a.h=Ts(a.r)}return a}var Ds=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/;var Fs=/<(?:\w+:)?(?:si|sstItem)>/g;var Os=/<\/(?:\w+:)?(?:si|sstItem)>/;function Ps(e,r){var t=[],a="";if(!e)return t;var n=e.match(Ds);if(x(n)){a=n[2].replace(Fs,"").split(Os);for(var i=0;i!=a.length;++i){var s=Rs(a[i].trim(),r);if(s!=null)t[t.length]=s}n=ue(n[1]);t.Count=n.count;t.Unique=n.uniqueCount}return t}ha.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var _s=/^\s|\s$|[\t\n\r]/;function ys(e,r){if(!r.bookSST)return"";var t=[se];t[t.length]=Ue("sst",null,{xmlns:Ve.main[0],count:e.Count,uniqueCount:e.Unique});for(var a=0;a!=e.length;++a){if(e[a]==null)continue;var n=e[a];var i="";if(n.r)i+=n.r;else{i+=""}i+="";t[t.length]=i}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Ns(e,r){return[e._R(4),e._R(4)]}function Ms(e,r){var t=[];var a=false;Dr(e,function n(e,i,s){switch(s){case 159:t.Count=e[0];t.Unique=e[1];break;case 19:t.push(e);break;case 160:return true;case 35:a=true;break;case 36:a=false;break;default:if(i.indexOf("Begin")>0){}else if(i.indexOf("End")>0){}if(!a||r.WTF)throw new Error("Unexpected record "+s+" "+i);}});return t}function Ls(e,r){if(!r)r=Rr(8);r._W(4,e.Count);r._W(4,e.Unique);return r}var Us=ut;function Ws(e,r){var t=Fr();Or(t,"BrtBeginSst",Ls(e));for(var a=0;a=4)e.l+=r-4;return t}function Gs(e,r){var t={};t.id=e._R(0,"lpp4");t.R=Vs(e,4);t.U=Vs(e,4);t.W=Vs(e,4);return t}function Xs(e){var r=e._R(4);var t=e.l+r-4;var a={};var n=e._R(4);var i=[];while(n-- >0){var s={};s.t=e._R(4);s.v=e._R(0,"lpp4");i.push(s)}a.name=e._R(0,"lpp4");a.comps=i;return a}function zs(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(Xs(e));return t}function js(e,r){var t=[];e.l+=4;var a=e._R(4);while(a-- >0)t.push(e._R(0,"lpp4"));return t}function Ks(e,r){var t={};var a=e._R(4);var n=e.l+a-4;e.l+=4;t.id=e._R(0,"lpp4");t.name=e._R(0,"lpp4");t.R=Vs(e,4);t.U=Vs(e,4);t.W=Vs(e,4);return t}function Ys(e,r){var t=Ks(e);t.ename=e._R(0,"8lpp4");t.blksz=e._R(4);t.cmode=e._R(4);if(e._R(4)!=4)throw new Error("Bad !Primary record");return t}function $s(e,r){var t=e.l+r;var a={};a.Flags=e._R(4)&63;e.l+=4;a.AlgID=e._R(4);var n=false;switch(a.AlgID){case 26126:;case 26127:;case 26128:n=a.Flags==36;break;case 26625:n=a.Flags==4;break;case 0:n=a.Flags==16||a.Flags==4||a.Flags==36;break;default:throw"Unrecognized encryption algorithm: "+a.AlgID;}if(!n)throw new Error("Encryption Flags/AlgID mismatch");a.AlgIDHash=e._R(4);a.KeySize=e._R(4);a.ProviderType=e._R(4);e.l+=8;a.CSPName=e._R(t-e.l>>1,"utf16le").slice(0,-1);e.l=t;return a}function Qs(e,r){var t={};e.l+=4;t.Salt=e.slice(e.l,e.l+16);e.l+=16;t.Verifier=e.slice(e.l,e.l+16);e.l+=16;var a=e._R(4);t.VerifierHash=e.slice(e.l,e.l+a);e.l+=a;return t}function Zs(e,r){var t=Vs(e);switch(t.Minor){case 2:return[t.Minor,Js(e,t)];case 3:return[t.Minor,qs(e,t)];case 4:return[t.Minor,el(e,t)];}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}function Js(e,r){var t=e._R(4);if((t&63)!=36)throw new Error("EncryptionInfo mismatch");var a=e._R(4);var n=e.l+a;var i=$s(e,a);var s=Qs(e,e.length-e.l);return{t:"Std",h:i,v:s}}function qs(e,r){throw new Error("File is password-protected: ECMA-376 Extensible")}function el(e,r){e.l+=4;return e._R(e.length-e.l,"utf8")}function rl(e,r){var t={};var a=t.EncryptionVersionInfo=Vs(e,4);r-=4;if(a.Minor!=2)throw new Error("unrecognized minor version code: "+a.Minor);if(a.Major>4||a.Major<2)throw new Error("unrecognized major version code: "+a.Major);t.Flags=e._R(4);r-=4;var n=e._R(4);r-=4;t.EncryptionHeader=$s(e,n);r-=n;t.EncryptionVerifier=Qs(e,r);return t}function tl(e,r){var t={};var a=t.EncryptionVersionInfo=Vs(e,4);r-=4;if(a.Major!=1||a.Minor!=1)throw"unrecognized version code "+a.Major+" : "+a.Minor;t.Salt=e._R(16);t.EncryptedVerifier=e._R(16);t.EncryptedVerifierHash=e._R(16);return t}function al(e){var r=0,t;var a=Hs(e);var n=a.length+1,i,s;var l,c,f;t=v(n);t[0]=a.length;for(i=1;i!=n;++i)t[i]=a[i-1];for(i=n-1;i>=0;--i){s=t[i];l=(r&16384)===0?0:1;c=r<<1&32767;f=l|c;r=f^s}return r^52811}var nl=function(){var e=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0];var r=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163];var t=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628];var a=function(e){return(e/2|e*128)&255};var n=function(e,r){return a(e^r)};var i=function(e){var a=r[e.length-1];var n=104;for(var i=e.length-1;i>=0;--i){var s=e[i];for(var l=0;l!=7;++l){if(s&64)a^=t[n];s*=2;--n}}return a};return function(r){var t=Hs(r);var a=i(t);var s=t.length;var l=v(16);for(var c=0;c!=16;++c)l[c]=0;var f,o,u;if((s&1)===1){f=a>>8;l[s]=n(e[0],f);--s;f=a&255;o=t[t.length-1];l[s]=n(o,f)}while(s>0){--s;f=a>>8;l[s]=n(t[s],f);--s;f=a&255;l[s]=n(t[s],f)}s=15;u=15-t.length;while(u>0){f=a>>8;l[s]=n(e[u],f);--s;--u;f=a&255;l[s]=n(t[s],f);--s;--u}return l}}();var il=function(e,r,t,a,n){if(!n)n=r;if(!a)a=nl(e);var i,s;for(i=0;i!=r.length;++i){s=r[i];s^=a[t];s=(s>>5|s<<3)&255;n[i]=s;++t}return[n,t,a]};var sl=function(e){var r=0,t=nl(e);return function(e){var a=il("",e,r,t);r=a[1];return a[0]}};function ll(e,r,t,a){var n={key:vn(e),verificationBytes:vn(e)};if(t.password)n.verifier=al(t.password);a.valid=n.verificationBytes===n.verifier;if(a.valid)a.insitu=sl(t.password);return n}function cl(e,r,t){var a=t||{};a.Info=e._R(2);e.l-=2;if(a.Info===1)a.Data=tl(e,r);else a.Data=rl(e,r);return a}function fl(e,r,t){var a={Type:t.biff>=8?e._R(2):0};if(a.Type)cl(e,r-2,a);else ll(e,r-2,t,a);return a}var ol=function(){function e(e,t){switch(t.type){case"base64":return r(h.decode(e),t);case"binary":return r(e,t);case"buffer":return r(e.toString("binary"),t);case"array":return r(H(e),t);}throw new Error("Unrecognized type "+t.type)}function r(e,r){var t=r||{};var a={};var n={s:{c:0,r:0},e:{c:0,r:0}};if(!e.match(/\\trowd/))throw new Error("RTF missing table");a["!ref"]=qr(n);return a}function t(r,t){return at(e(r,t),t)}function a(e,r){var t=["{\\rtf1\\ansi"];var a=et(e["!ref"]),n;var i=Array.isArray(e);for(var s=a.s.r;s<=a.e.r;++s){t.push("\\trowd\\trautofit1");for(var l=a.s.c;l<=a.e.c;++l)t.push("\\cellx"+(l+1));t.push("\\pard\\intbl");for(l=a.s.c;l<=a.e.c;++l){var c=$r({r:s,c:l});n=i?(e[s]||[])[l]:e[c];if(!n||n.v==null&&(!n.f||n.F))continue;t.push(" "+(n.w||(tt(n),n.w)));t.push("\\cell")}t.push("\\pard\\intbl\\row")}return t.join("")+"}"}return{to_workbook:t,to_sheet:e,from_sheet:a}}();function ul(e){var r=e.substr(e[0]==="#"?1:0,6);return[parseInt(r.substr(0,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(4,2),16)]}function hl(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().substr(1)}function dl(e){var r=e[0]/255,t=e[1]/255,a=e[2]/255;var n=Math.max(r,t,a),i=Math.min(r,t,a),s=n-i;if(s===0)return[0,0,r];var l=0,c=0,f=n+i;c=s/(f>1?2-f:f);switch(n){case r:l=((t-a)/s+6)%6;break;case t:l=(a-r)/s+2;break;case a:l=(r-t)/s+4;break;}return[l/6,c,f/2]}function vl(e){var r=e[0],t=e[1],a=e[2];var n=t*2*(a<.5?a:1-a),i=a-n/2;var s=[i,i,i],l=6*r;var c;if(t!==0)switch(l|0){case 0:;case 6:c=n*l;s[0]+=n;s[1]+=c;break;case 1:c=n*(2-l);s[0]+=c;s[1]+=n;break;case 2:c=n*(l-2);s[1]+=n;s[2]+=c;break;case 3:c=n*(4-l);s[1]+=c;s[2]+=n;break;case 4:c=n*(l-4);s[2]+=n;s[0]+=c;break;case 5:c=n*(6-l);s[2]+=c;s[0]+=n;break;}for(var f=0;f!=3;++f)s[f]=Math.round(s[f]*255);return s}function bl(e,r){if(r===0)return e;var t=dl(ul(e));if(r<0)t[2]=t[2]*(1+r);else t[2]=1-(1-t[2])*(1-r);return hl(vl(t))}var pl=6,ml=15,gl=1,El=pl;function Sl(e){return Math.floor((e+Math.round(128/El)/256)*El)}function kl(e){return Math.floor((e-5)/El*100+.5)/100}function Bl(e){return Math.round((e*El+5)/El*256)/256}function Cl(e){return((e-5)/El*100+.5)/100}function wl(e){return(e*El+5)/El*256/256}function Tl(e){return Bl(kl(Sl(e)))}function Il(e){var r=Math.abs(e-Tl(e)),t=El;if(r>.005)for(El=gl;El.5)t--;if(Math.abs(t)":;case"":break;case"":;case"":n={};if(t.diagonalUp){n.diagonalUp=t.diagonalUp}if(t.diagonalDown){n.diagonalDown=t.diagonalDown}r.Borders.push(n);break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in borders");}})}function yl(e,r,t,a){r.Fills=[];var n={};e[0].match(ce).forEach(function(e){var t=ue(e);switch(t[0]){case"":;case"":break;case"":;case"":n={};r.Fills.push(n);break;case"":break;case"":break;case"":r.Fills.push(n);n={};break;case"":if(t.patternType)n.patternType=t.patternType;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":break;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+t[0]+" in fills");}})}function Nl(e,r,t,a){r.Fonts=[];var n={};e[0].match(ce).forEach(function(e){var i=ue(e);switch(i[0]){case"":;case"":break;case"":break;case"
    ":;case"":r.Fonts.push(n);n={};break;case"":;case"":break;case"":n.bold=1;break;case"":n.italic=1;break;case"":n.underline=1;break;case"":n.strike=1;break;case"":n.outline=1;break;case"":n.shadow=1;break;case"":n.condense=1;break;case"":n.extend=1;break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;case"":;case"":break;default:if(a&&a.WTF)throw new Error("unrecognized "+i[0]+" in fonts");}})}function Ml(e,r,t){r.NumberFmt=[];var a=A(E._table);for(var n=0;n":;case"":;case"":break;case"0){if(c>392){for(c=392;c>60;--c)if(r.NumberFmt[c]==null)break;r.NumberFmt[c]=l}E.load(l,c)}}break;case"":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function Ll(e,r){var t=[""];[[5,8],[23,26],[41,44],[50,392]].forEach(function(r){for(var a=r[0];a<=r[1];++a)if(e[a]!=null)t[t.length]=Ue("numFmt",null,{numFmtId:a,formatCode:ge(e[a])})});if(t.length===1)return"";t[t.length]="";t[0]=Ue("numFmts",null,{count:t.length-2}).replace("/>",">");return t.join("")}var Ul=["numFmtId","fillId","fontId","borderId","xfId"];var Wl=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function Hl(e,r,t){r.CellXf=[];var a;e[0].match(ce).forEach(function(e){var n=ue(e),i=0;switch(n[0]){case"":;case"":;case"":break;case"":a=n;delete a[0];for(i=0;i392){for(i=392;i>60;--i)if(r.NumberFmt[a.numFmtId]==r.NumberFmt[i]){a.numFmtId=i;break}}r.CellXf.push(a);break;case"":break;case"":var s={};if(n.vertical)s.vertical=n.vertical;if(n.horizontal)s.horizontal=n.horizontal;if(n.textRotation!=null)s.textRotation=n.textRotation;if(n.indent)s.indent=n.indent;if(n.wrapText)s.wrapText=n.wrapText;a.alignment=s;break;case"":break;case"":;case"":break;case"":break;case"";if(r.length===2)return"";r[0]=Ue("cellXfs",null,{count:r.length-2}).replace("/>",">");return r.join("")}var Gl=function bp(){var e=/]*)>[\S\s]*?<\/numFmts>/;var r=/]*)>[\S\s]*?<\/cellXfs>/;var t=/]*)>[\S\s]*?<\/fills>/;var a=/]*)>[\S\s]*?<\/fonts>/;var n=/]*)>[\S\s]*?<\/borders>/;return function i(s,l,c){var f={};if(!s)return f;s=s.replace(//gm,"").replace(//gm,"");var o;if(o=s.match(e))Ml(o,f,c);if(o=s.match(a))Nl(o,f,l,c);if(o=s.match(t))yl(o,f,l,c);if(o=s.match(n))_l(o,f,l,c);if(o=s.match(r))Hl(o,f,c);return f}}();var Xl=Ue("styleSheet",null,{xmlns:Ve.main[0],"xmlns:vt":Ve.vt});ha.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function zl(e,r){var t=[se,Xl],a;if(e.SSF&&(a=Ll(e.SSF))!=null)t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';if(a=Vl(r.cellXfs))t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function jl(e,r){var t=e._R(2);var a=st(e,r-2);return[t,a]}function Kl(e,r,t){if(!t)t=Rr(6+4*r.length);t._W(2,e);lt(r,t);return t.length>t.l?t.slice(0,t.l):t}function Yl(e,r,t){var a={};a.sz=e._R(2)/20;var n=Nt(e,2,t);if(n.fCondense)a.condense=1;if(n.fExtend)a.extend=1;if(n.fShadow)a.shadow=1;if(n.fOutline)a.outline=1;if(n.fStrikeout)a.strike=1;if(n.fItalic)a.italic=1;var i=e._R(2);if(i===700)a.bold=1;switch(e._R(2)){case 1:a.vertAlign="superscript";break;case 2:a.vertAlign="subscript";break;}var s=e._R(1);if(s!=0)a.underline=s;var l=e._R(1);if(l>0)a.family=l;var c=e._R(1);if(c>0)a.charset=c;e.l++;a.color=_t(e,8);switch(e._R(1)){case 1:a.scheme="major";break;case 2:a.scheme="minor";break;}a.name=st(e,r-21);return a}function $l(e,r){if(!r)r=Rr(25+4*32);r._W(2,e.sz*20);Mt(e,r);r._W(2,e.bold?700:400);var t=0;if(e.vertAlign=="superscript")t=1;else if(e.vertAlign=="subscript")t=2;r._W(2,t);r._W(1,e.underline||0);r._W(1,e.family||0);r._W(1,e.charset||0);r._W(1,0);yt(e.color,r);var a=0;if(e.scheme=="major")a=1;if(e.scheme=="minor")a=2;r._W(1,a);lt(e.name,r);return r.length>r.l?r.slice(0,r.l):r}var Ql=["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];var Zl=D(Ql);var Jl=Ir;function ql(e,r){if(!r)r=Rr(4*3+8*7+16*1);var t=Zl[e.patternType];if(t==null)t=40;r._W(4,t);var a=0;if(t!=40){yt({auto:1},r);yt({auto:1},r);for(;a<12;++a)r._W(4,0)}else{for(;a<4;++a)r._W(4,0);for(;a<12;++a)r._W(4,0)}return r.length>r.l?r.slice(0,r.l):r}function ec(e,r){var t=e._R(2);var a=e._R(2);Ir(e,r-4);return{ixfe:t,numFmtId:a}}function rc(e,r,t){if(!t)t=Rr(16);t._W(2,r||0);t._W(2,e.numFmtId||0);t._W(2,0);t._W(2,0);t._W(2,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);t._W(1,0);return t}function tc(e,r){if(!r)r=Rr(10);r._W(1,0);r._W(1,0);r._W(4,0);r._W(4,0);return r}var ac=Ir;function nc(e,r){if(!r)r=Rr(51);r._W(1,0);tc(null,r);tc(null,r);tc(null,r);tc(null,r);tc(null,r);return r.length>r.l?r.slice(0,r.l):r}function ic(e,r){if(!r)r=Rr(12+4*10);r._W(4,e.xfId);r._W(2,1);r._W(1,+e.builtinId);r._W(1,0);Et(e.name||"",r);return r.length>r.l?r.slice(0,r.l):r}function sc(e,r,t){var a=Rr(4+256*2*4);a._W(4,e);Et(r,a);Et(t,a);return a.length>a.l?a.slice(0,a.l):a}function lc(e,r,t){var a={};a.NumberFmt=[];for(var n in E._table)a.NumberFmt[n]=E._table[n];a.CellXf=[];a.Fonts=[];var i=[];var s=false;Dr(e,function l(e,n,c){switch(c){case 44:a.NumberFmt[e[0]]=e[1];E.load(e[1],e[0]);break;case 43:a.Fonts.push(e);if(e.color.theme!=null&&r&&r.themeElements&&r.themeElements.clrScheme){e.color.rgb=bl(r.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0)}break;case 1025:break;case 45:break;case 46:break;case 47:if(i[i.length-1]=="BrtBeginCellXFs"){a.CellXf.push(e)}break;case 48:;case 507:;case 572:;case 475:break;case 1171:;case 2102:;case 1130:;case 512:;case 2095:break;case 35:s=true;break;case 36:s=false;break;case 37:i.push(n);break;case 38:i.pop();break;default:if((n||"").indexOf("Begin")>0)i.push(n);else if((n||"").indexOf("End")>0)i.pop();else if(!s||t.WTF)throw new Error("Unexpected record "+c+" "+n);}});return a}function cc(e,r){if(!r)return;var t=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(e){for(var a=e[0];a<=e[1];++a)if(r[a]!=null)++t});if(t==0)return;Or(e,"BrtBeginFmts",it(t));[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(r[a]!=null)Or(e,"BrtFmt",Kl(a,r[a]))});Or(e,"BrtEndFmts")}function fc(e,r){var t=1;if(t==0)return;Or(e,"BrtBeginFonts",it(t));Or(e,"BrtFont",$l({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"}));Or(e,"BrtEndFonts")}function oc(e,r){var t=2;if(t==0)return;Or(e,"BrtBeginFills",it(t));Or(e,"BrtFill",ql({patternType:"none"}));Or(e,"BrtFill",ql({patternType:"gray125"}));Or(e,"BrtEndFills")}function uc(e,r){var t=1;if(t==0)return;Or(e,"BrtBeginBorders",it(t));Or(e,"BrtBorder",nc({}));Or(e,"BrtEndBorders")}function hc(e,r){var t=1;Or(e,"BrtBeginCellStyleXFs",it(t));Or(e,"BrtXF",rc({numFmtId:0,fontId:0,fillId:0,borderId:0},65535));Or(e,"BrtEndCellStyleXFs")}function dc(e,r){Or(e,"BrtBeginCellXFs",it(r.length));r.forEach(function(r){Or(e,"BrtXF",rc(r,0))});Or(e,"BrtEndCellXFs")}function vc(e,r){var t=1;Or(e,"BrtBeginStyles",it(1));Or(e,"BrtStyle",ic({xfId:0,builtinId:0,name:"Normal"}));Or(e,"BrtEndStyles")}function bc(e,r){var t=0;Or(e,"BrtBeginDXFs",it(t));Or(e,"BrtEndDXFs")}function pc(e,r){var t=0;Or(e,"BrtBeginTableStyles",sc(t,"TableStyleMedium9","PivotStyleMedium4"));Or(e,"BrtEndTableStyles")}function mc(e,r){return}function gc(e,r){var t=Fr();Or(t,"BrtBeginStyleSheet");cc(t,e.SSF);fc(t,e);oc(t,e);uc(t,e);hc(t,e);dc(t,r.cellXfs);vc(t,e);bc(t,e);pc(t,e);mc(t,e);Or(t,"BrtEndStyleSheet");return t.end()}ha.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function Ec(e,r,t){r.themeElements.clrScheme=[];var a={};(e[0].match(ce)||[]).forEach(function(e){var n=ue(e);switch(n[0]){case"":break;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":;case"":if(n[0].charAt(1)==="/"){r.themeElements.clrScheme.push(a);a={}}else{a.name=n[0].substring(3,n[0].length-1)}break;default:if(t&&t.WTF)throw new Error("Unrecognized "+n[0]+" in clrScheme");}})}function Sc(e,r,t){}function kc(e,r,t){}var Bc=/]*)>[\s\S]*<\/a:clrScheme>/;var Cc=/]*)>[\s\S]*<\/a:fontScheme>/;var wc=/]*)>[\s\S]*<\/a:fmtScheme>/;function Tc(e,r,t){r.themeElements={};var a;[["clrScheme",Bc,Ec],["fontScheme",Cc,Sc],["fmtScheme",wc,kc]].forEach(function(n){if(!(a=e.match(n[1])))throw new Error(n[0]+" not found in themeElements");n[2](a,r,t)})}var Ic=/]*)>[\s\S]*<\/a:themeElements>/;function xc(e,r){if(!e||e.length===0)return xc(Ac());var t;var a={};if(!(t=e.match(Ic)))throw new Error("themeElements not found in theme");Tc(t[0],a,r);return a}function Ac(e,r){if(r&&r.themeXLSX)return r.themeXLSX;var t=[se];t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]=''; +t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]='';t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]='';t[t.length]="";t[t.length]="";t[t.length]="";t[t.length]="";return t.join("")}function Rc(e,r,t){var a=e._R(4);if(a===124226)return;e.l+=r-4}function Dc(e,r){return e._R(4)}function Fc(e,r){var t={};t.xclrType=e._R(2);t.nTintShade=e._R(2);switch(t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=Oc(e,4);break;case 2:t.xclrValue=Dn(e,4);break;case 3:t.xclrValue=Dc(e,4);break;case 4:e.l+=4;break;}e.l+=8;return t}function Oc(e,r){return Ir(e,r)}function Pc(e,r){return Ir(e,r)}function _c(e,r){var t=e._R(2);var a=e._R(2);var n=[t];switch(t){case 4:;case 5:;case 7:;case 8:;case 9:;case 10:;case 11:;case 13:n[1]=Fc(e,a);break;case 6:n[1]=Pc(e,a);break;case 14:;case 15:n[1]=e._R(a===5?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+a);}return n}function yc(e,r){var t=e.l+r;e.l+=2;var a=e._R(2);e.l+=2;var n=e._R(2);var i=[];while(n-- >0)i.push(_c(e,t-e.l));return{ixfe:a,ext:i}}function Nc(e,r){r.forEach(function(e){switch(e[0]){case 4:break;case 5:break;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:break;case 13:break;case 14:break;case 15:break;}})}function Mc(e,r,t){var a=[];if(!e)return a;var n=0,i=1;(e.match(ce)||[]).forEach(function(e){var r=ue(e);switch(r[0]){case"":;case"":break;case"0){}else if((r||"").indexOf("End")>0){}else if(!n||t.WTF)throw new Error("Unexpected record "+s+" "+r);}});return a}function Hc(e,r){}function Vc(e,r,t){var a=t||{}}function Gc(e,r,t){if(!e)return e;var a=t||{};var n=false,i=false;Dr(e,function s(e,r,t){if(i)return;switch(t){case 359:;case 363:;case 364:;case 366:;case 367:;case 368:;case 369:;case 370:;case 371:;case 472:;case 577:;case 578:;case 579:;case 580:;case 581:;case 582:;case 583:;case 584:;case 585:;case 586:;case 587:break;case 35:n=true;break;case 36:n=false;break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!n||a.WTF)throw new Error("Unexpected record "+t.toString(16)+" "+r);}},a)}ha.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";ha.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";function Xc(e,r){if(!e)return"??";var t=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return r["!id"][t].Target}var zc=1024;function jc(e,r){var t=[21600,21600];var a=["m0,0l0",t[1],t[0],t[1],t[0],"0xe"].join(",");var n=[Ue("xml",null,{"xmlns:v":Ge.v,"xmlns:o":Ge.o,"xmlns:x":Ge.x,"xmlns:mv":Ge.mv}).replace(/\/>/,">"),Ue("o:shapelayout",Ue("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ue("v:shapetype",[Ue("v:stroke",null,{joinstyle:"miter"}),Ue("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:t.join(","),path:a})];while(zc",Ue("v:fill",Ue("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}),{color2:"#BEFF82",angle:"-180",type:"gradient"}),Ue("v:shadow",null,{on:"t",obscured:"t"}),Ue("v:path",null,{"o:connecttype":"none"}),'
    ','',"","",Me("x:Anchor",[e.c,0,e.r,0,e.c+3,100,e.r+5,100].join(",")),Me("x:AutoFill","False"),Me("x:Row",String(e.r)),Me("x:Column",String(e.c)),"","",""])});n.push("");return n.join("")}ha.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";function Kc(e,r,t,a,n){for(var i=0;i!=r.length;++i){var s=r[i];var l=zd(ee(e,s.replace(/^\//,""),true),s,n);if(!l||!l.length)continue;var c=A(t);for(var f=0;f!=c.length;++f){var o=c[f];var u=a[o];if(u){var h=u[s];if(h)Yc(o,t[o],l)}}}}function Yc(e,r,t){var a=Array.isArray(r);var n,i;t.forEach(function(e){if(a){i=Yr(e.ref);if(!r[i.r])r[i.r]=[];n=r[i.r][i.c]}else n=r[e.ref];if(!n){n={};if(a)r[i.r][i.c]=n;else r[e.ref]=n;var t=et(r["!ref"]||"BDWGO1000001:A1");var s=Yr(e.ref);if(t.s.r>s.r)t.s.r=s.r;if(t.e.rs.c)t.s.c=s.c;if(t.e.c/))return[];var t=[];var a=[];var n=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^>]*>(.*)/);if(r)t.push(r[1])});var i=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e,n){if(e===""||e.trim()==="")return;var i=e.match(/<(?:\w+:)?comment[^>]*>/);if(!i)return;var s=ue(i[0]);var l={author:s.authorId&&t[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid};var c=Yr(s.ref);if(r.sheetRows&&r.sheetRows<=c.r)return;var f=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/);var o=!!f&&!!f[1]&&Rs(f[1])||{r:"",t:"",h:""};l.r=o.r;if(o.r=="")o.t=o.h="";l.t=o.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)l.h=o.h;a.push(l)});return a}var Qc=Ue("comments",null,{xmlns:Ve.main[0]});function Zc(e,r){var t=[se,Qc];var a=[];t.push("");e.map(function(e){return e[1]}).forEach(function(e){e.map(function(e){return ge(e.a)}).forEach(function(e){if(a.indexOf(e)>-1)return;a.push(e);t.push(""+e+"")})});t.push("");t.push("");e.forEach(function(e){e[1].forEach(function(r){t.push('');t.push(Me("t",r.t==null?"":r.t));t.push("")})});t.push("");if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Jc(e,r){var t={};t.iauthor=e._R(4);var a=At(e,16);t.rfx=a.s;t.ref=$r(a.s);e.l+=16;return t}function qc(e,r){if(r==null)r=Rr(36);r._W(4,e[1].iauthor);Rt(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var ef=st;function rf(e){return lt(e.slice(0,54))}function tf(e,r){var t=[];var a=[];var n={};var i=false;Dr(e,function s(e,l,c){switch(c){case 632:a.push(e);break;case 635:n=e;break;case 637:n.t=e.t;n.h=e.h;n.r=e.r;break;case 636:n.author=a[n.iauthor];delete n.iauthor;if(r.sheetRows&&r.sheetRows<=n.rfx.r)break;if(!n.t)n.t="";delete n.rfx;t.push(n);break;case 35:i=true;break;case 36:i=false;break;case 37:break;case 38:break;default:if((l||"").indexOf("Begin")>0){}else if((l||"").indexOf("End")>0){}else if(!i||r.WTF)throw new Error("Unexpected record "+c+" "+l);}});return t}function af(e,r){var t=Fr();var a=[];Or(t,"BrtBeginComments");{Or(t,"BrtBeginCommentAuthors");e.forEach(function(e){e[1].forEach(function(e){if(a.indexOf(e.a)>-1)return;a.push(e.a.slice(0,54));Or(t,"BrtCommentAuthor",rf(e.a))})});Or(t,"BrtEndCommentAuthors")}{Or(t,"BrtBeginCommentList");e.forEach(function(e){e[1].forEach(function(r){r.iauthor=a.indexOf(r.a);var n={s:Yr(e[0]),e:Yr(e[0])};Or(t,"BrtBeginComment",qc([n,r]));if(r.t&&r.t.length>0)Or(t,"BrtCommentText",dt(r));Or(t,"BrtEndComment");delete r.iauthor})});Or(t,"BrtEndCommentList")}Or(t,"BrtEndComments");return t.end()}function nf(e){var r=I.utils.cfb_new({root:"R"});e.FullPaths.forEach(function(t,a){if(t.slice(-1)==="/"||!t.match(/_VBA_PROJECT_CUR/))return;var n=t.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");I.utils.cfb_add(r,n,e.FileIndex[a].content)});return I.write(r)}ha.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet";ha.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";function sf(e,r,t,a,n,i){return{"!type":"dialog"}}function lf(e,r,t,a,n,i){return{"!type":"dialog"}}function cf(e,r,t,a,n,i){return{"!type":"macro"}}function ff(e,r,t,a,n,i){return{"!type":"macro"}}var of=function(){var e=/(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g;var r={r:0,c:0};function t(e,t,a,n,i,s){var l=n.length>0?parseInt(n,10)|0:0,c=s.length>0?parseInt(s,10)|0:0;if(c<0&&i.length===0)c=0;var f=false,o=false;if(i.length>0||s.length==0)f=true;if(f)c+=r.c;else--c;if(a.length>0||n.length==0)o=true;if(o)l+=r.r;else--l;return t+(f?"":"$")+Xr(c)+(o?"":"$")+Wr(l)}return function a(n,i){r=i;return n.replace(e,t)}}();var uf=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)([1-9]\d{0,5}|10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6])(?![_.\(A-Za-z0-9])/g;var hf=function(){return function e(r,t){return r.replace(uf,function(e,r,a,n,i,s,l,c){var f=Gr(n)-t.c;var o=Ur(s)-t.r;return r+"R"+(o==0?"":"["+o+"]")+"C"+(f==0?"":"["+f+"]")})}}();function df(e,r){return e.replace(uf,function(e,t,a,n,i,s,l,c){return t+(a=="$"?a+n:Xr(Gr(n)+r.c))+(i=="$"?i+s:Wr(Ur(s)+r.r))})}function vf(e,r,t){var a=Jr(r),n=a.s,i=Yr(t);var s={r:i.r-n.r,c:i.c-n.c};return df(e,s)}function bf(e){if(e.length==1)return false;return true}function pf(e){return function(r,t){r.l+=e;return}}function mf(e){e.l+=1;return}function gf(e,r){var t=e._R(r==1?1:2);return[t&16383,t>>14&1,t>>15&1]}function Ef(e,r,t){var a=2;if(t){if(t.biff>=2&&t.biff<=5)return Sf(e,r,t);else if(t.biff==12)a=4}var n=e._R(a),i=e._R(a);var s=gf(e,2);var l=gf(e,2);return{s:{r:n,c:s[0],cRel:s[1],rRel:s[2]},e:{r:i,c:l[0],cRel:l[1],rRel:l[2]}}}function Sf(e){var r=gf(e,2),t=gf(e,2);var a=e._R(1);var n=e._R(1);return{s:{r:r[0],c:a,cRel:r[1],rRel:r[2]},e:{r:t[0],c:n,cRel:t[1],rRel:t[2]}}}function kf(e,r){var t=e._R(r==12?4:2),a=e._R(r==12?4:2);var n=gf(e,2);var i=gf(e,2);return{s:{r:t,c:n[0],cRel:n[1],rRel:n[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}function Bf(e,r,t){if(t&&t.biff>=2&&t.biff<=5)return Cf(e,r,t);var a=e._R(t&&t.biff==12?4:2);var n=gf(e,2);return{r:a,c:n[0],cRel:n[1],rRel:n[2]}}function Cf(e,r,t){var a=gf(e,2);var n=e._R(1);return{r:a[0],c:n,cRel:a[1],rRel:a[2]}}function wf(e,r,t){var a=e._R(2);var n=e._R(2);return{r:a,c:n&255,fQuoted:!!(n&16384),cRel:n>>15,rRel:n>>15}}function Tf(e,r,t){var a=t&&t.biff?t.biff:8;if(a>=2&&a<=5)return If(e,r,t);var n=e._R(a>=12?4:2);var i=e._R(2);var s=(i&32768)>>15,l=(i&16384)>>14;i&=16383;if(l==1)while(n>524287)n-=1048576;if(s==1)while(i>8191)i=i-16384;return{r:n,c:i,cRel:s,rRel:l}}function If(e,r){var t=e._R(2);var a=e._R(1);var n=(t&32768)>>15,i=(t&16384)>>14;t&=16383;if(n==1&&t>=8192)t=t-16384;if(i==1&&a>=128)a=a-256;return{r:t,c:a,cRel:i,rRel:n}}function xf(e,r,t){var a=(e[e.l++]&96)>>5;var n=Ef(e,t.biff>=2&&t.biff<=5?6:8,t);return[a,n]}function Af(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2,"i");var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}var s=Ef(e,i,t);return[a,n,s]}function Rf(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t&&t.biff>8?12:8;return[a]}function Df(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=8;if(t)switch(t.biff){case 5:e.l+=12;i=6;break;case 12:i=12;break;}e.l+=i;return[a,n]}function Ff(e,r,t){var a=(e[e.l++]&96)>>5;var n=kf(e,t&&t.biff>8?12:8,t);return[a,n]}function Of(e,r,t){var a=(e[e.l++]&96)>>5;e.l+=t.biff==2?6:t.biff==12?14:7;return[a]}function Pf(e,r){var t=e[e.l+1]&1;var a=1;e.l+=4;return[t,a]}function _f(e,r,t){e.l+=2;var a=e._R(t&&t.biff==2?1:2);var n=[];for(var i=0;i<=a;++i)n.push(e._R(t&&t.biff==2?1:2));return n}function yf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Nf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=2;return[a,e._R(t&&t.biff==2?1:2)]}function Mf(e,r){var t=e[e.l+1]&255?1:0;e.l+=2;return[t,e._R(2)]}function Lf(e,r,t){var a=e[e.l+1]&255?1:0;e.l+=t&&t.biff==2?3:4;return[a]}function Uf(e,r){var t=e._R(1),a=e._R(1);return[t,a]}function Wf(e,r){e._R(2);return Uf(e,2)}function Hf(e,r){e._R(2);return Uf(e,2)}function Vf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=Bf(e,0,t);return[n,i]}function Gf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=Tf(e,0,t);return[a,n]}function Xf(e,r,t){var a=(e[e.l]&96)>>5;e.l+=1;var n=e._R(2);var i=Bf(e,0,t);return[a,n,i]}function zf(e,r,t){var a=e[e.l]&31;var n=(e[e.l]&96)>>5;e.l+=1;var i=e._R(t&&t.biff<=3?1:2);return[ku[i],Su[i],n]}function jf(e,r,t){e.l++;var a=e._R(1),n=t&&t.biff<=3?[0,e._R(1)]:Kf(e);return[a,(n[0]===0?Su:Eu)[n[1]]]}function Kf(e,r){return[e[e.l+1]>>7,e._R(2)&32767]}function Yf(e,r,t){e.l+=t&&t.biff==2?3:4;return}var $f=mf;function Qf(e,r,t){e.l++;if(t&&t.biff==12)return[e._R(4,"i"),0];var a=e._R(2);var n=e._R(t&&t.biff==2?1:2);return[a,n]}function Zf(e,r){e.l++;return Ot[e._R(1)]}function Jf(e,r){e.l++;return e._R(2)}function qf(e,r){e.l++;return e._R(1)!==0}function eo(e,r){e.l++;return Dt(e,8)}function ro(e,r,t){e.l++;return En(e,r-1,t)}function to(e,r){var t=[e._R(1)];if(r==12)switch(t[0]){case 2:t[0]=4;break;case 4:t[0]=16;break;case 0:t[0]=1;break;case 1:t[0]=2;break;}switch(t[0]){case 4:t[1]=hn(e,1)?"TRUE":"FALSE";e.l+=7;break;case 16:t[1]=Ot[e[e.l]];e.l+=8;break;case 0:e.l+=8;break;case 1:t[1]=Dt(e,8);break;case 2:t[1]=Cn(e,0,{biff:r>0&&r<8?2:r});break;}return t}function ao(e,r){var t=e._R(2);var a=[];for(var n=0;n!=t;++n)a.push(Un(e,8));return a}function no(e,r,t){var a=0,n=0;if(t.biff==12){a=e._R(4);n=e._R(4)}else{n=1+e._R(1);a=1+e._R(2)}if(t.biff>=2&&t.biff<8){--a;if(--n==0)n=256}for(var i=0,s=[];i!=a&&(s[i]=[]);++i)for(var l=0;l!=n;++l)s[i][l]=to(e,t.biff);return s}function io(e,r,t){var a=e._R(1)>>>5&3;var n=!t||t.biff>=8?4:2;var i=e._R(n);switch(t.biff){case 2:e.l+=5;break;case 3:;case 4:e.l+=8;break;case 5:e.l+=12;break;}return[a,0,i]}function so(e,r,t){if(t.biff==5)return lo(e,r,t);var a=e._R(1)>>>5&3;var n=e._R(2);var i=e._R(4);return[a,n,i]}function lo(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(2,"i");e.l+=8;var i=e._R(2);e.l+=12;return[a,n,i]}function co(e,r,t){var a=e._R(1)>>>5&3;e.l+=t&&t.biff==2?3:4;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function fo(e,r,t){var a=e._R(1)>>>5&3;var n=e._R(t&&t.biff==2?1:2);return[a,n]}function oo(e,r,t){var a=e._R(1)>>>5&3;e.l+=4;if(t.biff==12)e.l+=2;return[a]}function uo(e,r,t){var a=(e[e.l++]&96)>>5;var n=e._R(2);var i=4;if(t)switch(t.biff){case 5:throw new Error("PtgRefErr3d -- 5");case 12:i=6;break;}e.l+=i;return[a,n]}var ho=mf;var vo=mf;var bo=mf;var po=mf;var mo=mf;var go=mf;var Eo=mf;var So=mf;var ko=mf;var Bo=mf;var Co=mf;var wo=mf;var To=mf;var Io=mf;var xo=mf;var Ao=mf;var Ro=mf;var Do=mf;var Fo=mf;var Oo=Ir;var Po=Ir;var _o=Ir;function yo(e,r,t){e.l+=2;return[wf(e,4,t)]}function No(e,r,t){e.l+=6;return[]}var Mo=yo;var Lo=No;var Uo=No;var Wo=yo;function Ho(e,r,t){e.l+=2;return[vn(e),e._R(2)&1]}var Vo=yo;var Go=Ho;var Xo=No;var zo=yo;var jo=yo;function Ko(e,r,t){e.l+=2;var a=e._R(2);e.l+=10;return{}}function Yo(e,r,t){e.l+=2;return[e._R(4)]}var $o={1:{n:"PtgExp",f:Qf},2:{n:"PtgTbl",f:_o},3:{n:"PtgAdd",f:ho},4:{n:"PtgSub",f:Ao},5:{n:"PtgMul",f:Bo},6:{n:"PtgDiv",f:vo},7:{n:"PtgPower",f:Io},8:{n:"PtgConcat",f:$f},9:{n:"PtgLt",f:So},10:{n:"PtgLe",f:Eo},11:{n:"PtgEq",f:bo},12:{n:"PtgGe",f:po},13:{n:"PtgGt",f:mo},14:{n:"PtgNe",f:Co},15:{n:"PtgIsect",f:go},16:{n:"PtgUnion",f:Do},17:{n:"PtgRange",f:xo},18:{n:"PtgUplus",f:Fo},19:{n:"PtgUminus",f:Ro},20:{n:"PtgPercent",f:To},21:{n:"PtgParen",f:wo},22:{n:"PtgMissArg",f:ko},23:{n:"PtgStr",f:ro},28:{n:"PtgErr",f:Zf},29:{n:"PtgBool",f:qf},30:{n:"PtgInt",f:Jf},31:{n:"PtgNum",f:eo},32:{n:"PtgArray",f:Of},33:{n:"PtgFunc",f:zf},34:{n:"PtgFuncVar",f:jf},35:{n:"PtgName",f:io},36:{n:"PtgRef",f:Vf},37:{n:"PtgArea",f:xf},38:{n:"PtgMemArea",f:co},39:{n:"PtgMemErr",f:Oo},40:{n:"PtgMemNoMem",f:Po},41:{n:"PtgMemFunc",f:fo},42:{n:"PtgRefErr",f:oo},43:{n:"PtgAreaErr",f:Rf},44:{n:"PtgRefN",f:Gf},45:{n:"PtgAreaN",f:Ff},57:{n:"PtgNameX",f:so},58:{n:"PtgRef3d",f:Xf},59:{n:"PtgArea3d",f:Af},60:{n:"PtgRefErr3d",f:uo},61:{n:"PtgAreaErr3d",f:Df},255:{}};var Qo={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};(function(){for(var e in Qo)$o[e]=$o[Qo[e]]})();var Zo={1:{n:"PtgElfLel",f:Ho},2:{n:"PtgElfRw",f:zo},3:{n:"PtgElfCol",f:Mo},6:{n:"PtgElfRwV",f:jo},7:{n:"PtgElfColV",f:Wo},10:{n:"PtgElfRadical",f:Vo},11:{n:"PtgElfRadicalS",f:Xo},13:{n:"PtgElfColS",f:Lo},15:{n:"PtgElfColSV",f:Uo},16:{n:"PtgElfRadicalLel",f:Go},25:{n:"PtgList",f:Ko},29:{n:"PtgSxName",f:Yo},255:{}};var Jo={1:{n:"PtgAttrSemi",f:Lf},2:{n:"PtgAttrIf",f:Nf},4:{n:"PtgAttrChoose",f:_f},8:{n:"PtgAttrGoto",f:yf},16:{n:"PtgAttrSum",f:Yf},32:{n:"PtgAttrBaxcel",f:Pf},64:{n:"PtgAttrSpace",f:Wf},65:{n:"PtgAttrSpaceSemi",f:Hf},128:{n:"PtgAttrIfError",f:Mf},255:{}};Jo[33]=Jo[32];function qo(e,r,t,a){if(a.biff<8)return Ir(e,r);var n=e.l+r;var i=[];for(var s=0;s!==t.length;++s){switch(t[s][0]){case"PtgArray":t[s][1]=no(e,0,a);i.push(t[s][1]);break;case"PtgMemArea":t[s][2]=ao(e,t[s][1]);i.push(t[s][2]);break;case"PtgExp":if(a&&a.biff==12){t[s][1][1]=e._R(4);i.push(t[s][1])}break;case"PtgList":;case"PtgElfRadicalS":;case"PtgElfColS":;case"PtgElfColSV":throw"Unsupported "+t[s][0];default:break;}}r=n-e.l;if(r!==0)i.push(Ir(e,r));return i}function eu(e,r,t){var a=e.l+r;var n,i,s=[];while(a!=e.l){r=a-e.l;i=e[e.l];n=$o[i];if(i===24||i===25){i=e[e.l+1];n=(i===24?Zo:Jo)[i]}if(!n||!n.f){Ir(e,r)}else{s.push([n.n,n.f(e,r,t)])}}return s}function ru(e){var r=[];for(var t=0;t=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"};function au(e){if(!e)return"";if(e.indexOf(" ")>-1)return"'"+e+"'";return e}function nu(e,r,t){return e.SheetNames[r]}function iu(e,r,t){return au(nu(e,r,t))}function su(e,r,t,a,n){var i={s:{c:0,r:0},e:{c:0,r:0}};var s=[],l,c,f,o,u=0,h=0,d,v="";if(!e[0]||!e[0][0])return"";var b=-1,p="";for(var m=0,g=e[0].length;m=0){switch(e[0][b][1][0]){case 0:p=X(" ",e[0][b][1][1]);break;case 1:p=X("\r",e[0][b][1][1]);break;default:p="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][b][1][0]);}c=c+p;b=-1}s.push(c+tu[E[0]]+l);break;case"PtgIsect":l=s.pop();c=s.pop();s.push(c+" "+l);break;case"PtgUnion":l=s.pop();c=s.pop();s.push(c+","+l);break;case"PtgRange":l=s.pop();c=s.pop();s.push(c+":"+l);break;case"PtgAttrChoose":break;case"PtgAttrGoto":break;case"PtgAttrIf":break;case"PtgAttrIfError":break;case"PtgRef":f=E[1][0];o=Pr(E[1][1],i,n);s.push(yr(o));break;case"PtgRefN":f=E[1][0];o=t?Pr(E[1][1],t,n):E[1][1];s.push(yr(o));break;case"PtgRef3d":f=E[1][0];u=E[1][1];o=Pr(E[1][2],i,n);v=iu(a,u,n);var S=v;s.push(v+"!"+yr(o));break;case"PtgFunc":;case"PtgFuncVar":var k=E[1][0],B=E[1][1];if(!k)k=0;var C=k==0?[]:s.slice(-k);s.length-=k;if(B==="User")B=C.shift();s.push(B+"("+C.join(",")+")");break;case"PtgBool":s.push(E[1]?"TRUE":"FALSE");break;case"PtgInt":s.push(E[1]);break;case"PtgNum":s.push(String(E[1]));break;case"PtgStr":s.push('"'+E[1]+'"');break;case"PtgErr":s.push(E[1]);break;case"PtgAreaN":f=E[1][0];d=_r(E[1][1],i,n);s.push(Nr(d,n));break;case"PtgArea":f=E[1][0];d=_r(E[1][1],i,n);s.push(Nr(d,n));break;case"PtgArea3d":f=E[1][0];u=E[1][1];d=E[1][2];v=a&&a[1]?a[1][u+1]:"**MISSING**";s.push(v+"!"+Nr(d,n));break;case"PtgAttrSum":s.push("SUM("+s.pop()+")");break;case"PtgAttrSemi":break;case"PtgName":h=E[1][2];var w=(a.names||[])[h-1]||(a[0]||[])[h];var T=w?w.Name:"SH33TJSERR7"+String(h);if(T in Bu)T=Bu[T];s.push(T);break;case"PtgNameX":var I=E[1][1];h=E[1][2];var x;if(n.biff<=5){if(I<0)I=-I;if(a[I])x=a[I][h]}else{var A=a.SheetNames[I];var R="";if(((a[I]||[])[0]||[])[0]==14849){}else if(((a[I]||[])[0]||[])[0]==1025){if(a[I][h]&&a[I][h].itab>0){R=a.SheetNames[a[I][h].itab-1]+"!"}}else R=a.SheetNames[h-1]+"!";if(a[I]&&a[I][h])R+=a[I][h].Name;else if(a[0]&&a[0][h])R+=a[0][h].Name;else R+="SH33TJSERRX";s.push(R);break}if(!x)x={Name:"SH33TJSERRY"};s.push(x.Name);break;case"PtgParen":var D="(",F=")";if(b>=0){p="";switch(e[0][b][1][0]){case 2:D=X(" ",e[0][b][1][1])+D;break;case 3:D=X("\r",e[0][b][1][1])+D;break;case 4:F=X(" ",e[0][b][1][1])+F;break;case 5:F=X("\r",e[0][b][1][1])+F;break;default:if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][b][1][0]);}b=-1}s.push(D+s.pop()+F);break;case"PtgRefErr":s.push("#REF!");break;case"PtgRefErr3d":s.push("#REF!");break;case"PtgExp":o={c:E[1][1],r:E[1][0]};var O={c:t.c,r:t.r};if(a.sharedf[$r(o)]){var P=a.sharedf[$r(o)];s.push(su(P,i,O,a,n))}else{var _=false;for(l=0;l!=a.arrayf.length;++l){c=a.arrayf[l];if(o.cc[0].e.c)continue;if(o.rc[0].e.r)continue;s.push(su(c[1],i,O,a,n));_=true;break}if(!_)s.push(E[1])}break;case"PtgArray":s.push("{"+ru(E[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":;case"PtgAttrSpaceSemi":b=m;break;case"PtgTbl":break;case"PtgMemErr":break;case"PtgMissArg":s.push("");break;case"PtgAreaErr":s.push("#REF!");break;case"PtgAreaErr3d":s.push("#REF!");break;case"PtgMemFunc":break;case"PtgMemNoMem":throw new Error("Unrecognized Formula Token: "+String(E));case"PtgElfCol":;case"PtgElfColS":;case"PtgElfColSV":;case"PtgElfColV":;case"PtgElfLel":;case"PtgElfRadical":;case"PtgElfRadicalLel":;case"PtgElfRadicalS":;case"PtgElfRw":;case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgAttrBaxcel":throw new Error("Unrecognized Formula Token: "+String(E));case"PtgSxName":throw new Error("Unrecognized Formula Token: "+String(E));case"PtgList":throw new Error("Unrecognized Formula Token: "+String(E));default:throw new Error("Unrecognized Formula Token: "+String(E));}var y=["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"];if(b>=0&&y.indexOf(e[0][m][0])==-1){E=e[0][b];var N=true;switch(E[1][0]){case 4:N=false;case 0:p=X(" ",E[1][1]);break;case 5:N=false;case 1:p=X("\r",E[1][1]);break;default:p="";if(n.WTF)throw new Error("Unexpected PtgAttrSpaceType "+E[1][0]);}s.push((N?p:"")+s.pop()+(N?"":p));b=-1}}if(s.length>1&&n.WTF)throw new Error("bad formula stack");return s[0]}function lu(e,r,t,a){var n=e.l+r,i=t.biff==2?1:2;var s,l=e._R(i);if(l==65535)return[[],Ir(e,r-2)];var c=eu(e,l,t);if(r!==l+i)s=qo(e,r-l-i,c,t);return[c,s]}function cu(e,r,t){var a=e.l+r,n=t.biff==2?1:2;var i,s=e._R(n);if(s==65535)return[[],Ir(e,r-2)];var l=eu(e,s,t);if(r!==s+n)i=qo(e,r-s-n,l,t);return[l,i]}function fu(e,r,t,a){var n=e.l+r;var i=eu(e,a,t);var s;if(n!==e.l)s=qo(e,n-e.l,i,t);return[i,s]}function ou(e,r,t){var a=e.l+r;var n,i=e._R(2);var s=eu(e,i,t);if(i==65535)return[[],Ir(e,r-2)];if(r!==i+2)n=qo(e,a-i-2,s,t);return[s,n]}function uu(e){var r;if(hr(e,e.l+6)!==65535)return[Dt(e),"n"];switch(e[e.l]){case 0:e.l+=8;return["String","s"];case 1:r=e[e.l+2]===1;e.l+=8;return[r,"b"];case 2:r=e[e.l+2];e.l+=8;return[r,"e"];case 3:e.l+=8;return["","s"];}return[]}function hu(e,r,t){var a=e.l+r;var n=On(e,6);if(t.biff==2)++e.l;var i=uu(e,8);var s=e._R(1);if(t.biff!=2){e._R(1);if(t.biff>=5){var l=e._R(4)}}var c=cu(e,a-e.l,t);return{cell:n,val:i[0],formula:c,shared:s>>3&1,tt:i[1]}}function du(e,r,t){var a=e.l+r;var n=e._R(4);var i=eu(e,n,t);var s=e._R(4);var l=s>0?qo(e,s,i,t):null;return[i,l]}var vu=du;var bu=du;var pu=du;var mu=du;var gu={1:"REFERENCE",2:"VALUE",3:"ARRAY"};var Eu={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY", +227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"};var Su={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"};var ku={2:1,3:1,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,90:1,97:2,98:1,99:1,101:3,102:3,105:1,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};var Bu={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFNA":"IFNA","_xlfn.IFERROR":"IFERROR","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function Cu(e){if(e.substr(0,3)=="of:")e=e.substr(3);if(e.charCodeAt(0)==61){e=e.substr(1);if(e.charCodeAt(0)==61)e=e.substr(1)}e=e.replace(/COM\.MICROSOFT\./g,"");e=e.replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,function(e,r){return r.replace(/\./g,"")});e=e.replace(/\[.(#[A-Z]*[?!])\]/g,"$1");return e.replace(/[;~]/g,",").replace(/\|/g,";")}function wu(e){var r="of:="+e.replace(uf,"$1[.$2$3$4$5]").replace(/\]:\[/g,":");return r.replace(/;/g,"|").replace(/,/g,";")}function Tu(e){var r=e.split(":");var t=r[0].split(".")[0];return[t,r[0].split(".")[1]+":"+r[1].split(".")[1]]}var Iu={};var xu={};ha.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];function Au(e,r){for(var t=0,a=e.length;t-1){t.width=Bl(a);t.customWidth=1}else if(r.width!=null)t.width=r.width;if(r.hidden)t.hidden=true;return t}function Du(e,r){if(!e)return;var t=[.7,.7,.75,.75,.3,.3];if(r=="xlml")t=[1,1,1,1,.5,.5];if(e.left==null)e.left=t[0];if(e.right==null)e.right=t[1];if(e.top==null)e.top=t[2];if(e.bottom==null)e.bottom=t[3];if(e.header==null)e.header=t[4];if(e.footer==null)e.footer=t[5]}function Fu(e,r,t){var a=t.revssf[r.z!=null?r.z:"General"];var n=60,i=e.length;if(a==null&&t.ssf){for(;n<392;++n)if(t.ssf[n]==null){E.load(r.z,n);t.ssf[n]=r.z;t.revssf[r.z]=a=n;break}}for(n=0;n!=i;++n)if(e[n].numFmtId===a)return n;e[i]={numFmtId:a,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return i}function Ou(e,r,t,a,n,i){if(e.t==="z")return;if(e.t==="d"&&typeof e.v==="string")e.v=W(e.v);try{if(a.cellNF)e.z=E._table[r]}catch(s){if(a.WTF)throw s}if(!a||a.cellText!==false)try{if(e.t==="e")e.w=e.w||Ot[e.v];else if(r===0){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else if(e.t==="d"){var l=y(e.v);if((l|0)===l)e.w=E._general_int(l);else e.w=E._general_num(l)}else if(e.v===undefined)return"";else e.w=E._general(e.v,xu)}else if(e.t==="d")e.w=E.format(r,y(e.v),xu);else e.w=E.format(r,e.v,xu)}catch(s){if(a.WTF)throw s}if(!a.cellStyles)return;if(t!=null)try{e.s=i.Fills[t];if(e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb){e.s.fgColor.rgb=bl(n.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0);if(a.WTF)e.s.fgColor.raw_rgb=n.themeElements.clrScheme[e.s.fgColor.theme].rgb}if(e.s.bgColor&&e.s.bgColor.theme){e.s.bgColor.rgb=bl(n.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0);if(a.WTF)e.s.bgColor.raw_rgb=n.themeElements.clrScheme[e.s.bgColor.theme].rgb}}catch(s){if(a.WTF&&i.Fills)throw s}}function Pu(e,r){var t=et(r);if(t.s.r<=t.e.r&&t.s.c<=t.e.c&&t.s.r>=0&&t.s.c>=0)e["!ref"]=qr(t)}var _u=/<(?:\w:)?mergeCell ref="[A-Z0-9:]+"\s*[\/]?>/g;var yu=/<(?:\w+:)?sheetData>([\s\S]*)<\/(?:\w+:)?sheetData>/;var Nu=/<(?:\w:)?hyperlink [^>]*>/gm;var Mu=/"(\w*:\w*)"/;var Lu=/<(?:\w:)?col[^>]*[\/]?>/g;var Uu=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g;var Wu=/<(?:\w:)?pageMargins[^>]*\/>/g;function Hu(e,r,t,a,n,i){if(!e)return e;if(o!=null&&r.dense==null)r.dense=o;var s=r.dense?[]:{};var l={s:{r:2e6,c:2e6},e:{r:0,c:0}};var c="",f="";var u=e.match(yu);if(u){c=e.substr(0,u.index);f=e.substr(u.index+u[0].length)}else c=f=e;var h=(c.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(h>0){var d=c.substr(h,50).match(Mu);if(d)Pu(s,d[1])}var v=[];if(r.cellStyles){var b=c.match(Lu);if(b)Ku(v,b)}if(u)qu(u[1],s,r,l,n,i);var p=f.match(Uu);if(p)s["!autofilter"]=$u(p[0]);var m=[];var g=f.match(_u);if(g)for(h=0;h!=g.length;++h)m[h]=et(g[h].substr(g[h].indexOf('"')+1));var E=f.match(Nu);if(E)Xu(s,E,t);var S=f.match(Wu);if(S)s["!margins"]=zu(ue(S[0]));if(!s["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r)s["!ref"]=qr(l);if(r.sheetRows>0&&s["!ref"]){var k=et(s["!ref"]);if(r.sheetRows<+k.e.r){k.e.r=r.sheetRows-1;if(k.e.r>l.e.r)k.e.r=l.e.r;if(k.e.rl.e.c)k.e.c=l.e.c;if(k.e.c0)s["!cols"]=v;if(m.length>0)s["!merges"]=m;return s}function Vu(e){if(e.length===0)return"";var r='';for(var t=0;t!=e.length;++t)r+='';return r+""}function Gu(e){var r={sheet:1};var t=["objects","scenarios","selectLockedCells","selectUnlockedCells"];var a=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"];t.forEach(function(t){if(e[t]!=null&&e[t])r[t]="1"});a.forEach(function(t){if(e[t]!=null&&!e[t])r[t]="0"});if(e.password)r.password=al(e.password).toString(16).toUpperCase();return Ue("sheetProtection",null,r)}function Xu(e,r,t){var a=Array.isArray(e);for(var n=0;n!=r.length;++n){var i=ue(Te(r[n]),true);if(!i.ref)return;var s=t?t["!id"][i.id]:null;if(s){i.Target=s.Target;if(i.location)i.Target+="#"+i.location;i.Rel=s}else{i.Target=i.location;s={Target:i.location,TargetMode:"Internal"};i.Rel=s}if(i.tooltip){i.Tooltip=i.tooltip;delete i.tooltip}var l=et(i.ref);for(var c=l.s.r;c<=l.e.r;++c)for(var f=l.s.c;f<=l.e.c;++f){var o=$r({c:f,r:c});if(a){if(!e[c])e[c]=[];if(!e[c][f])e[c][f]={t:"z",v:undefined};e[c][f].l=i}else{if(!e[o])e[o]={t:"z",v:undefined};e[o].l=i}}}}function zu(e){var r={};["left","right","top","bottom","header","footer"].forEach(function(t){if(e[t])r[t]=parseFloat(e[t])});return r}function ju(e){Du(e);return Ue("pageMargins",null,e)}function Ku(e,r){var t=false;for(var a=0;a!=r.length;++a){var n=ue(r[a],true);if(n.hidden)n.hidden=we(n.hidden);var i=parseInt(n.min,10)-1,s=parseInt(n.max,10)-1;delete n.min;delete n.max;n.width=+n.width;if(!t&&n.width){t=true;Il(n.width)}Al(n);while(i<=s)e[i++]=G(n)}}function Yu(e,r){var t=[""],a,n;for(var i=0;i!=r.length;++i){if(!(a=r[i]))continue;t[t.length]=Ue("col",null,Ru(i,a))}t[t.length]="";return t.join("")}function $u(e){var r={ref:(e.match(/ref="([^"]*)"/)||[])[1]};return r}function Qu(e){return Ue("autoFilter",null,{ref:e.ref})}function Zu(e,r,t,a){return Ue("sheetViews",Ue("sheetView",null,{workbookViewId:"0"}),{})}function Ju(e,r,t,a,n,i){if(e.v===undefined&&e.f===undefined||e.t==="z")return"";var s="";var l=e.t,c=e.v;switch(e.t){case"b":s=e.v?"1":"0";break;case"n":s=""+e.v;break;case"e":s=Ot[e.v];break;case"d":if(a.cellDates)s=W(e.v,-1).toISOString();else{e=G(e);e.t="n";s=""+(e.v=y(W(e.v)))}if(typeof e.z==="undefined")e.z=E._table[14];break;default:s=e.v;break;}var f=Me("v",ge(s)),o={r:r};var u=Fu(a.cellXfs,e,a);if(u!==0)o.s=u;switch(e.t){case"n":break;case"d":o.t="d";break;case"b":o.t="b";break;case"e":o.t="e";break;default:if(e.v==null){delete e.t;break}if(a.bookSST){f=Me("v",""+Au(a.Strings,e.v));o.t="s";break}o.t="str";break;}if(e.t!=l){e.t=l;e.v=c}if(e.f){var h=e.F&&e.F.substr(0,r.length)==r?{t:"array",ref:e.F}:null;f=Ue("f",ge(e.f),h)+(e.v!=null?f:"")}if(e.l)t["!links"].push([r,e.l]);if(e.c)t["!comments"].push([r,e.c]);return Ue("c",f,o)}var qu=function pp(){var e=/<(?:\w+:)?c[ >]/,r=/<\/(?:\w+:)?row>/;var t=/r=["']([^"']*)["']/,a=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/;var n=/ref=["']([^"']*)["']/;var i=De("v"),s=De("f");return function l(c,f,o,u,h,d){var v=0,b="",p=[],m=[],g=0,S=0,k=0,B="",C;var w,T=0,I=0;var x,A;var R=0,D=0;var F=Array.isArray(d.CellXf),O;var P=[];var _=[];var M=Array.isArray(f);var L=[],U={},H=false;for(var V=c.split(r),G=0,X=V.length;G!=X;++G){b=V[G].trim();var z=b.length;if(z===0)continue;for(v=0;vT-1)u.s.r=T-1;if(u.e.r":"")+b;if(m!=null&&m.length===2){g=0;B=m[1];for(S=0;S!=B.length;++S){if((k=B.charCodeAt(S)-64)<1||k>26)break;g=26*g+k}--g;I=g}else++I;for(S=0;S!=b.length;++S)if(b.charCodeAt(S)===62)break;++S;w=ue(b.substr(0,S),true);if(!w.r)w.r=$r({r:T-1,c:I});B=b.substr(S);C={t:""};if((m=B.match(i))!=null&&m[1]!=="")C.v=be(m[1]);if(o.cellFormula){if((m=B.match(s))!=null&&m[1]!==""){C.f=be(Te(m[1])).replace(/_xlfn\./,"");if(m[0].indexOf('t="array"')>-1){C.F=(B.match(n)||[])[1];if(C.F.indexOf(":")>-1)P.push([et(C.F),C.F])}else if(m[0].indexOf('t="shared"')>-1){A=ue(m[0]);_[parseInt(A.si,10)]=[A,be(Te(m[1]))]}}else if(m=B.match(/]*\/>/)){A=ue(m[0]);if(_[A.si])C.f=vf(_[A.si][1],_[A.si][0].ref,w.r)}var j=Yr(w.r);for(S=0;S=P[S][0].s.r&&j.r<=P[S][0].e.r)if(j.c>=P[S][0].s.c&&j.c<=P[S][0].e.c)C.F=P[S][1]}if(w.t==null&&C.v===undefined){if(C.f||C.F){C.v=0;C.t="n"}else if(!o.sheetStubs)continue;else C.t="z"}else C.t=w.t||"n";if(u.s.c>g)u.s.c=g;if(u.e.c0)f["!rows"]=L}}();function eh(e,r,t,a,n){var i=[],s=[],l=et(e["!ref"]),c,f,o="",u=[],h=0,d=0,v=e["!rows"];var b=Array.isArray(e);var p={r:o},m,g=-1;for(d=l.s.c;d<=l.e.c;++d)u[d]=Xr(d);for(h=l.s.r;h<=l.e.r;++h){s=[];o=Wr(h);for(d=l.s.c;d<=l.e.c;++d){f=u[d]+o;var E=b?(e[h]||[])[d]:e[f];if(E===undefined)continue;if((c=Ju(E,f,e,r,t,a))!=null)s.push(c)}if(s.length>0||v&&v[h]){p={r:o};if(v&&v[h]){m=v[h];if(m.hidden)p.hidden=1;g=-1;if(m.hpx)g=Fl(m.hpx);else if(m.hpt)g=m.hpt;if(g>-1){p.ht=g;p.customHeight=1}if(m.level){p.outlineLevel=m.level}}i[i.length]=Ue("row",s.join(""),p)}}if(v)for(;h-1){p.ht=g;p.customHeight=1}if(m.level){p.outlineLevel=m.level}i[i.length]=Ue("row","",p)}}return i.join("")}var rh=Ue("worksheet",null,{xmlns:Ve.main[0],"xmlns:r":Ve.r});function th(e,r,t,a){var n=[se,rh];var i=t.SheetNames[e],s=0,l="";var c=t.Sheets[i];if(c==null)c={};var f=c["!ref"];if(f==null)f="A1";if(!a)a={};c["!comments"]=[];c["!drawing"]=[];n[n.length]=Ue("sheetPr",null,{codeName:ge(t.SheetNames[e])});n[n.length]=Ue("dimension",null,{ref:f});n[n.length]=Zu(c,r,e,t);if(r.sheetFormat)n[n.length]=Ue("sheetFormatPr",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||"16",baseColWidth:r.sheetFormat.baseColWidth||"10",outlineLevelRow:r.sheetFormat.outlineLevelRow||"7"});if(c["!cols"]!=null&&c["!cols"].length>0)n[n.length]=Yu(c,c["!cols"]);n[s=n.length]="";c["!links"]=[];if(c["!ref"]!=null){l=eh(c,r,e,t,a);if(l.length>0)n[n.length]=l}if(n.length>s+1){n[n.length]="";n[s]=n[s].replace("/>",">")}if(c["!protect"]!=null)n[n.length]=Gu(c["!protect"]);if(c["!autofilter"]!=null)n[n.length]=Qu(c["!autofilter"]);if(c["!merges"]!=null&&c["!merges"].length>0)n[n.length]=Vu(c["!merges"]);var o=-1,u,h=-1;if(c["!links"].length>0){n[n.length]="";c["!links"].forEach(function(e){if(!e[1].Target)return;h=ma(a,-1,ge(e[1].Target).replace(/#.*$/,""),ha.HLINK);u={ref:e[0],"r:id":"rId"+h};if((o=e[1].Target.indexOf("#"))>-1)u.location=ge(e[1].Target.substr(o+1));if(e[1].Tooltip)u.tooltip=ge(e[1].Tooltip);n[n.length]=Ue("hyperlink",null,u)});n[n.length]=""}delete c["!links"];if(c["!margins"]!=null)n[n.length]=ju(c["!margins"]);var d=n.length;n[n.length]="";if(c["!drawing"].length>0){h=ma(a,-1,"../drawings/drawing"+(e+1)+".xml",ha.DRAW);n[n.length]=Ue("drawing",null,{"r:id":"rId"+h})}else delete c["!drawing"];if(c["!comments"].length>0){h=ma(a,-1,"../drawings/vmlDrawing"+(e+1)+".vml",ha.VML);n[n.length]=Ue("legacyDrawing",null,{"r:id":"rId"+h});c["!legacy"]=h}if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function ah(e,r){var t={};var a=e.l+r;t.r=e._R(4);e.l+=4;var n=e._R(2);e.l+=1;var i=e._R(1);e.l=a;if(i&7)t.level=i&7;if(i&16)t.hidden=true;if(i&32)t.hpt=n/20;return t}function nh(e,r,t){var a=Rr(17+8*16);var n=(t["!rows"]||[])[e]||{};a._W(4,e);a._W(4,0);var i=320;if(n.hpx)i=Fl(n.hpx)*20;else if(n.hpt)i=n.hpt*20;a._W(2,i);a._W(1,0);var s=0;if(n.level)s|=n.level;if(n.hidden)s|=16;if(n.hpx||n.hpt)s|=32;a._W(1,s);a._W(1,0);var l=0,c=a.l;a.l+=4;var f={r:e,c:0};for(var o=0;o<16;++o){if(r.s.c>o+1<<10||r.e.ca.l?a.slice(0,a.l):a}function ih(e,r,t,a){var n=nh(a,t,r);if(n.length>17||(r["!rows"]||[])[a])Or(e,"BrtRowHdr",n)}var sh=At;var lh=Rt;function ch(e,r){}function fh(e,r){var t={};e.l+=19;t.name=pt(e,r-19);return t}function oh(e,r){if(r==null)r=Rr(84+4*e.length);for(var t=0;t<3;++t)r._W(1,0);yt({auto:1},r);r._W(-4,-1);r._W(-4,-1);mt(e,r);return r.slice(0,r.l)}function uh(e,r){var t=vt(e);return[t]}function hh(e,r,t){if(t==null)t=Rr(8);return bt(r,t)}function dh(e,r){var t=vt(e);var a=e._R(1);return[t,a,"b"]}function vh(e,r,t){if(t==null)t=Rr(9);bt(r,t);t._W(1,e.v?1:0);return t}function bh(e,r){var t=vt(e);var a=e._R(1);return[t,a,"e"]}function ph(e,r){var t=vt(e);var a=e._R(4);return[t,a,"s"]}function mh(e,r,t){if(t==null)t=Rr(12);bt(r,t);t._W(4,r.v);return t}function gh(e,r){var t=vt(e);var a=Dt(e);return[t,a,"n"]}function Eh(e,r,t){if(t==null)t=Rr(16);bt(r,t);Ft(e.v,t);return t}function Sh(e,r){var t=vt(e);var a=wt(e);return[t,a,"n"]}function kh(e,r,t){if(t==null)t=Rr(12);bt(r,t);Tt(e.v,t);return t}function Bh(e,r){var t=vt(e);var a=st(e);return[t,a,"str"]}function Ch(e,r,t){if(t==null)t=Rr(12+4*e.v.length);bt(r,t);lt(e.v,t);return t.length>t.l?t.slice(0,t.l):t}function wh(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var l=bu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}function Th(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var l=bu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}function Ih(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=Dt(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var l=bu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}function xh(e,r,t){var a=e.l+r;var n=vt(e);n.r=t["!row"];var i=st(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var l=bu(e,a-e.l,t);s[3]=su(l,null,n,t.supbooks,t)}else e.l=a;return s}var Ah=At;var Rh=Rt;function Dh(e,r){if(r==null)r=Rr(4);r._W(4,e);return r}function Fh(e,r,t){var a=e.l+r;var n=At(e,16);var i=gt(e);var s=st(e);var l=st(e);var c=st(e);e.l=a;var f={rfx:n,relId:i,loc:s,display:c};if(l)f.Tooltip=l;return f}function Oh(e,r,t){if(t==null)t=Rr(50+4*e[1].Target.length);Rt({s:Yr(e[0]),e:Yr(e[0])},t);Ct("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.substr(a+1);lt(n||"",t);lt(e[1].Tooltip||"",t);lt("",t);return t.slice(0,t.l)}function Ph(e,r,t){var a=e.l+r;var n=It(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var l=vu(e,a-e.l,t);s[1]=l}else e.l=a;return s}function _h(e,r,t){var a=e.l+r;var n=At(e,16);var i=[n];if(t.cellFormula){var s=mu(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function yh(e,r,t){if(t==null)t=Rr(18);var a=Ru(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;t._W(1,n);t._W(1,0);return t}var Nh=["left","right","top","bottom","header","footer"];function Mh(e,r,t){var a={};Nh.forEach(function(r){ +a[r]=Dt(e,8)});return a}function Lh(e,r){if(r==null)r=Rr(6*8);Du(e);Nh.forEach(function(t){Ft(e[t],r)});return r}function Uh(e,r){if(r==null)r=Rr(30);r._W(2,924);r._W(4,0);r._W(4,0);r._W(4,0);r._W(1,0);r._W(1,0);r._W(2,0);r._W(2,100);r._W(2,0);r._W(2,0);r._W(2,0);r._W(4,0);return r}function Wh(e,r){if(r==null)r=Rr(16*4+2);r._W(2,e.password?al(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function Hh(e,r,t,a,n,i){if(!e)return e;var s=r||{};if(!t)t={"!id":{}};if(o!=null&&s.dense==null)s.dense=o;var l=s.dense?[]:{};var c;var f={s:{r:2e6,c:2e6},e:{r:0,c:0}};var u=false,h=false;var d,v,b,p,m,g,S,k,B;var C=[];s.biff=12;s["!row"]=0;var w=0,T=false;var I=[];var x={};var A=[[]];A.sharedf=x;A.arrayf=I;A.SheetNames=a.SheetNames||a.Sheets.map(function(e){return e.name});s.supbooks=A;for(var R=0;R=o[0].s.r&&d.r<=o[0].e.r)if(m>=o[0].s.c&&m<=o[0].e.c){v.F=qr(o[0]);T=true}}if(!T&&e.length>3)v.f=e[3]}if(f.s.r>d.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.rd.r)f.s.r=d.r;if(f.s.c>m)f.s.c=m;if(f.e.r=e.s){D[e.e--]={width:e.w/256,hidden:!!(e.flags&1)};if(!_){_=true;Il(e.w/256)}Al(D[e.e+1])}break;case 161:l["!autofilter"]={ref:qr(e)};break;case 476:l["!margins"]=e;break;case 485:;case 175:;case 644:;case 625:;case 562:;case 396:;case 1112:;case 1146:;case 471:;case 1050:;case 649:;case 1105:;case 49:;case 589:;case 607:;case 564:;case 1055:;case 168:;case 174:;case 1180:;case 499:;case 64:;case 1053:;case 550:;case 171:;case 167:;case 1177:;case 169:;case 1181:;case 551:;case 552:;case 661:;case 639:;case 478:;case 151:;case 537:;case 477:;case 536:;case 1103:;case 680:;case 1104:;case 1024:;case 152:;case 663:;case 535:;case 678:;case 504:;case 1043:;case 428:;case 170:;case 50:;case 2070:;case 1045:;case 147:break;case 35:u=true;break;case 36:u=false;break;case 37:break;case 38:break;default:if((r||"").indexOf("Begin")>0){}else if((r||"").indexOf("End")>0){}else if(!u||s.WTF)throw new Error("Unexpected record "+a+" "+r);}},s);delete s.supbooks;delete s["!row"];if(!l["!ref"]&&(f.s.r<2e6||c&&(c.e.r>0||c.e.c>0||c.s.r>0||c.s.c>0)))l["!ref"]=qr(c||f);if(s.sheetRows&&l["!ref"]){var y=et(l["!ref"]);if(s.sheetRows<+y.e.r){y.e.r=s.sheetRows-1;if(y.e.r>f.e.r)y.e.r=f.e.r;if(y.e.rf.e.c)y.e.c=f.e.c;if(y.e.c0)l["!merges"]=C;if(D.length>0)l["!cols"]=D;if(F.length>0)l["!rows"]=F;return l}function Vh(e,r,t,a,n,i){if(r.v===undefined)return"";var s="";switch(r.t){case"b":s=r.v?"1":"0";break;case"d":r=G(r);r.z=r.z||E._table[14];r.v=y(W(r.v));r.t="n";break;case"n":;case"e":s=""+r.v;break;default:s=r.v;break;}var l={r:t,c:a};l.s=Fu(n.cellXfs,r,n);if(r.l)i["!links"].push([$r(l),r.l]);if(r.c)i["!comments"].push([$r(l),r.c]);switch(r.t){case"s":;case"str":if(n.bookSST){s=Au(n.Strings,r.v);l.t="s";l.v=s;Or(e,"BrtCellIsst",mh(r,l))}else{l.t="str";Or(e,"BrtCellSt",Ch(r,l))}return;case"n":if(r.v==(r.v|0)&&r.v>-1e3&&r.v<1e3)Or(e,"BrtCellRk",kh(r,l));else Or(e,"BrtCellReal",Eh(r,l));return;case"b":l.t="b";Or(e,"BrtCellBool",vh(r,l));return;case"e":l.t="e";break;}Or(e,"BrtCellBlank",hh(r,l))}function Gh(e,r,t,a,n){var i=et(r["!ref"]||"A1"),s,l="",c=[];Or(e,"BrtBeginSheetData");var f=Array.isArray(r);var o=i.e.r;if(r["!rows"])o=Math.max(i.e.r,r["!rows"].length-1);for(var u=i.s.r;u<=o;++u){l=Wr(u);ih(e,r,i,u);if(u<=i.e.r)for(var h=i.s.c;h<=i.e.c;++h){if(u===i.s.r)c[h]=Xr(h);s=c[h]+l;var d=f?(r[u]||[])[h]:r[s];if(!d)continue;Vh(e,d,u,h,a,r)}}Or(e,"BrtEndSheetData")}function Xh(e,r){if(!r||!r["!merges"])return;Or(e,"BrtBeginMergeCells",Dh(r["!merges"].length));r["!merges"].forEach(function(r){Or(e,"BrtMergeCell",Rh(r))});Or(e,"BrtEndMergeCells")}function zh(e,r,t,a,n){if(!r||!r["!cols"])return;Or(e,"BrtBeginColInfos");r["!cols"].forEach(function(r,t){if(r)Or(e,"BrtColInfo",yh(t,r))});Or(e,"BrtEndColInfos")}function jh(e,r,t){r["!links"].forEach(function(r){if(!r[1].Target)return;var a=ma(t,-1,r[1].Target.replace(/#.*$/,""),ha.HLINK);Or(e,"BrtHLink",Oh(r,a))});delete r["!links"]}function Kh(e,r,t,a){if(r["!comments"].length>0){var n=ma(a,-1,"../drawings/vmlDrawing"+(t+1)+".vml",ha.VML);Or(e,"BrtLegacyDrawing",Ct("rId"+n));r["!legacy"]=n}}function Yh(e,r){if(!r["!autofilter"])return;Or(e,"BrtBeginAFilter",Rt(Jr(r["!autofilter"].ref)));Or(e,"BrtEndAFilter")}function $h(e,r){Or(e,"BrtBeginWsViews");{Or(e,"BrtBeginWsView",Uh(r));Or(e,"BrtEndWsView")}Or(e,"BrtEndWsViews")}function Qh(e,r){}function Zh(e,r){if(!r["!protect"])return;Or(e,"BrtSheetProtection",Wh(r["!protect"]))}function Jh(e,r,t,a){var n=Fr();var i=t.SheetNames[e],s=t.Sheets[i]||{};var l=et(s["!ref"]||"A1");s["!links"]=[];s["!comments"]=[];Or(n,"BrtBeginSheet");Or(n,"BrtWsProp",oh(i));Or(n,"BrtWsDim",lh(l));$h(n,s);Qh(n,s);zh(n,s,e,r,t);Gh(n,s,e,r,t);Zh(n,s);Yh(n,s);Xh(n,s);jh(n,s,a);if(s["!margins"])Or(n,"BrtMargins",Lh(s["!margins"]));Kh(n,s,e,a);Or(n,"BrtEndSheet");return n.end()}function qh(e){var r=[];(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach(function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);if(!t)return;r[+t[1]]=+t[2]});var t=be((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return[r,t]}function ed(e,r,t,a,n,i){var s=i||{"!type":"chart"};if(!e)return i;var l=0,c=0,f="A";var o={s:{r:2e6,c:2e6},e:{r:0,c:0}};(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach(function(e){var r=qh(e);o.s.r=o.s.c=0;o.e.c=l;f=Xr(l);r[0].forEach(function(e,t){s[f+Wr(t)]={t:"n",v:e,z:r[1]};c=t});if(o.e.r0)s["!ref"]=qr(o);return s}ha.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";var rd=Ue("chartsheet",null,{xmlns:Ve.main[0],"xmlns:r":Ve.r});function td(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var l;if(l=e.match(/drawing r:id="(.*?)"/))s["!rel"]=l[1];if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function ad(e,r,t,a){var n=[se,rd];n[n.length]=Ue("drawing",null,{"r:id":"rId1"});ma(a,-1,"../drawings/drawing"+(e+1)+".xml",ha.DRAW);if(n.length>2){n[n.length]="";n[1]=n[1].replace("/>",">")}return n.join("")}function nd(e,r,t,a,n,i){if(!e)return e;if(!t)t={"!id":{}};var s={"!type":"chart","!chart":null,"!rel":""};var l=[];var c=false;Dr(e,function f(e,t,a){switch(a){case 550:s["!rel"]=e;break;case 562:;case 652:;case 651:;case 669:;case 679:;case 551:;case 552:;case 476:break;case 35:c=true;break;case 36:c=false;break;case 37:l.push(t);break;case 38:l.pop();break;default:if((t||"").indexOf("Begin")>0)l.push(t);else if((t||"").indexOf("End")>0)l.pop();else if(!c||r.WTF)throw new Error("Unexpected record "+a+" "+t);}},r);if(t["!id"][s["!rel"]])s["!chart"]=t["!id"][s["!rel"]];return s}function id(e,r,t,a){var n=Fr();Or(n,"BrtBeginSheet");Or(n,"BrtEndSheet");return n.end()}var sd=[["allowRefreshQuery",false,"bool"],["autoCompressPictures",true,"bool"],["backupFile",false,"bool"],["checkCompatibility",false,"bool"],["codeName",""],["date1904",false,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",false,"bool"],["hidePivotFieldList",false,"bool"],["promptedSolutions",false,"bool"],["publishItems",false,"bool"],["refreshAllConnections",false,"bool"],["saveExternalLinkValues",true,"bool"],["showBorderUnselectedTables",true,"bool"],["showInkAnnotation",true,"bool"],["showObjects","all"],["showPivotChartFilter",false,"bool"],["updateLinks","userSet"]];var ld=[["activeTab",0,"int"],["autoFilterDateGrouping",true,"bool"],["firstSheet",0,"int"],["minimized",false,"bool"],["showHorizontalScroll",true,"bool"],["showSheetTabs",true,"bool"],["showVerticalScroll",true,"bool"],["tabRatio",600,"int"],["visibility","visible"]];var cd=[];var fd=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var od=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function ud(e,r){for(var t=0;t!=e.length;++t){var a=e[t];for(var n=0;n!=r.length;++n){var i=r[n];if(a[i[0]]==null)a[i[0]]=i[1];else switch(i[2]){case"bool":if(typeof a[i[0]]=="string")a[i[0]]=we(a[i[0]],i[0]);break;case"int":if(typeof a[i[0]]=="string")a[i[0]]=parseInt(a[i[0]],10);break;}}}}function hd(e,r){for(var t=0;t!=r.length;++t){var a=r[t];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case"bool":if(typeof e[a[0]]=="string")e[a[0]]=we(e[a[0]],a[0]);break;case"int":if(typeof e[a[0]]=="string")e[a[0]]=parseInt(e[a[0]],10);break;}}}function dd(e){hd(e.WBProps,sd);hd(e.CalcPr,fd);ud(e.WBView,ld);ud(e.Sheets,cd);xu.date1904=we(e.WBProps.date1904,"date1904")}function vd(e){if(!e.Workbook)return"false";if(!e.Workbook.WBProps)return"false";return we(e.Workbook.WBProps.date1904)?"true":"false"}var bd="][*?/\\".split("");function pd(e,r){if(e.length>31){if(r)return false;throw new Error("Sheet names cannot exceed 31 chars")}var t=true;bd.forEach(function(a){if(e.indexOf(a)==-1)return;if(!r)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");t=false});return t}function md(e){e.forEach(function(r,t){pd(r);for(var a=0;a":break;case"":;case"":break;case"":break;case"":sd.forEach(function(e){if(o[e[0]]==null)return;switch(e[2]){case"bool":t.WBProps[e[0]]=we(o[e[0]],e[0]);break;case"int":t.WBProps[e[0]]=parseInt(o[e[0]],10);break;default:t.WBProps[e[0]]=o[e[0]];}});break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":break;case"":;case"":a=false;break;case"":{i.Ref=e.slice(s,f);t.Names.push(i)}break;case"":break;case"":delete o[0];t.CalcPr=o;break;case"":break;case"":;case"":;case"":break;case"":;case"":;case"":break;case"":;case"":break;case"":break;case"":break;case"":;case"":break;case"":;case"":;case"":break;case"":a=false;break;case"":a=true;break;case"":a=false;break;case"0;var n={codeName:"ThisWorkbook"};if(e.Workbook&&e.Workbook.WBProps){if(e.Workbook.WBProps.codeName)n.codeName=e.Workbook.WBProps.codeName;sd.forEach(function(r){if(e.Workbook.WBProps[r[0]]==null)return;if(e.Workbook.WBProps[r[0]]==r[1])return;n[r[0]]=e.Workbook.WBProps[r[0]]})}t[t.length]=Ue("workbookPr",null,n);t[t.length]="";var i=e.Workbook&&e.Workbook.Sheets||[];for(var s=0;s!=e.SheetNames.length;++s){var l={name:ge(e.SheetNames[s].substr(0,31))};l.sheetId=""+(s+1);l["r:id"]="rId"+(s+1);if(i[s])switch(i[s].Hidden){case 1:l.state="hidden";break;case 2:l.state="veryHidden";break;}t[t.length]=Ue("sheet",null,l)}t[t.length]="";if(a){t[t.length]="";if(e.Workbook&&e.Workbook.Names)e.Workbook.Names.forEach(function(e){var r={name:e.Name};if(e.Comment)r.comment=e.Comment;if(e.Sheet!=null)r.localSheetId=""+e.Sheet;if(!e.Ref)return;t[t.length]=Ue("definedName",String(e.Ref),r)});t[t.length]=""}if(t.length>2){t[t.length]="";t[1]=t[1].replace("/>",">")}return t.join("")}function Cd(e,r){var t={};t.Hidden=e._R(4);t.iTabID=e._R(4);t.strRelID=Bt(e,r-8);t.name=st(e);return t}function wd(e,r){if(!r)r=Rr(127);r._W(4,e.Hidden);r._W(4,e.iTabID);Ct(e.strRelID,r);lt(e.name.substr(0,31),r);return r.length>r.l?r.slice(0,r.l):r}function Td(e,r){var t={};var a=e._R(4);t.defaultThemeVersion=e._R(4);var n=r>8?st(e):"";if(n.length>0)t.codeName=n;t.autoCompressPictures=!!(a&65536);t.backupFile=!!(a&64);t.checkCompatibility=!!(a&4096);t.date1904=!!(a&1);t.filterPrivacy=!!(a&8);t.hidePivotFieldList=!!(a&1024);t.promptedSolutions=!!(a&16);t.publishItems=!!(a&2048);t.refreshAllConnections=!!(a&262144);t.saveExternalLinkValues=!!(a&128);t.showBorderUnselectedTables=!!(a&4);t.showInkAnnotation=!!(a&32);t.showObjects=["all","placeholders","none"][a>>13&3];t.showPivotChartFilter=!!(a&32768);t.updateLinks=["userSet","never","always"][a>>8&3];return t}function Id(e,r){if(!r)r=Rr(72);var t=0;if(e){if(e.filterPrivacy)t|=8}r._W(4,t);r._W(4,0);mt("ThisWorkbook",r);return r.slice(0,r.l)}function xd(e,r){var t={};e._R(4);t.ArchID=e._R(4);e.l+=r-8;return t}function Ad(e,r,t){var a=e.l+r;var n=e._R(4);var i=e._R(1);var s=e._R(4);var l=St(e);var c=pu(e,0,t);var f=gt(e);e.l=a;var o={Name:l,Ptg:c,Comment:f};if(s<268435455)o.Sheet=s;return o}function Rd(e,r){var t={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var a=false,n;if(!r)r={};r.biff=12;var i=[];var s=[];s.SheetNames=[];Dr(e,function l(e,n,c){switch(c){case 156:s.SheetNames.push(e.name);t.Sheets.push(e);break;case 153:t.WBProps=e;break;case 39:e.Ref=su(e.Ptg,null,null,s,r);delete e.Ptg;i.push(e);break;case 1036:break;case 357:;case 358:;case 355:;case 667:;case 362:;case 361:break;case 2071:;case 534:;case 677:;case 158:;case 157:;case 610:;case 2050:;case 155:;case 548:;case 676:;case 128:;case 665:;case 2128:;case 2125:;case 549:;case 2053:;case 596:;case 2076:;case 2075:;case 2082:;case 397:;case 154:;case 1117:;case 553:;case 2091:break;case 35:a=true;break;case 36:a=false;break;case 37:break;case 38:break;case 16:break;default:if((n||"").indexOf("Begin")>0){}else if((n||"").indexOf("End")>0){}else if(!a||r.WTF)throw new Error("Unexpected record "+c+" "+n);}},r);dd(t);t.Names=i;return t}function Dd(e,r,t){Or(e,"BrtBeginBundleShs");for(var a=0;a!=r.SheetNames.length;++a){var n=r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[a]&&r.Workbook.Sheets[a].Hidden||0;var i={Hidden:n,iTabID:a+1,strRelID:"rId"+(a+1),name:r.SheetNames[a]};Or(e,"BrtBundleSh",wd(i))}Or(e,"BrtEndBundleShs")}function Fd(e,t){if(!t)t=Rr(127);for(var a=0;a!=4;++a)t._W(4,0);lt("SheetJS",t);lt(r.version,t);lt(r.version,t);lt("7262",t);t.length=t.l;return t.length>t.l?t.slice(0,t.l):t}function Od(e,r){if(!r)r=Rr(29);r._W(-4,0);r._W(-4,460);r._W(4,28800);r._W(4,17600);r._W(4,500);r._W(4,e);r._W(4,e);var t=120;r._W(1,t);return r.length>r.l?r.slice(0,r.l):r}function Pd(e,r,t){if(!r.Workbook||!r.Workbook.Sheets)return;var a=r.Workbook.Sheets;var n=0,i=-1,s=-1;for(;ni)return;Or(e,"BrtBeginBookViews");Or(e,"BrtBookView",Od(i));Or(e,"BrtEndBookViews")}function _d(e,r){if(!r)r=Rr(26);r._W(4,0);r._W(4,1);r._W(4,0);Ft(0,r);r._W(-4,1023);r._W(1,51);r._W(1,0);return r}function yd(e,r){if(!r)r=Rr(1);r._W(1,0);return r}function Nd(e,r){var t=Fr();Or(t,"BrtBeginBook");Or(t,"BrtFileVersion",Fd());Or(t,"BrtWbProp",Id(e.Workbook&&e.Workbook.WBProps||null));Pd(t,e,r);Dd(t,e,r);Or(t,"BrtEndBook");return t.end()}function Md(e,r,t){if(r.slice(-4)===".bin")return Rd(e,t);return Sd(e,t)}function Ld(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return Hh(e,t,a,n,i,s);return Hu(e,t,a,n,i,s)}function Ud(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return nd(e,t,a,n,i,s);return td(e,t,a,n,i,s)}function Wd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return cf(e,t,a,n,i,s);return ff(e,t,a,n,i,s)}function Hd(e,r,t,a,n,i,s){if(r.slice(-4)===".bin")return sf(e,t,a,n,i,s);return lf(e,t,a,n,i,s)}function Vd(e,r,t,a){if(r.slice(-4)===".bin")return lc(e,t,a);return Gl(e,t,a)}function Gd(e,r,t){return xc(e,t)}function Xd(e,r,t){if(r.slice(-4)===".bin")return Ms(e,t);return Ps(e,t)}function zd(e,r,t){if(r.slice(-4)===".bin")return tf(e,t);return $c(e,t)}function jd(e,r,t){if(r.slice(-4)===".bin")return Wc(e,r,t);return Mc(e,r,t)}function Kd(e,r,t){if(r.slice(-4)===".bin")return Gc(e,r,t);return Vc(e,r,t)}function Yd(e,r,t){return(r.slice(-4)===".bin"?Nd:Bd)(e,t)}function $d(e,r,t,a,n){return(r.slice(-4)===".bin"?Jh:th)(e,t,a,n)}function Qd(e,r,t,a,n){return(r.slice(-4)===".bin"?id:ad)(e,t,a,n)}function Zd(e,r,t){return(r.slice(-4)===".bin"?gc:zl)(e,t)}function Jd(e,r,t){return(r.slice(-4)===".bin"?Ws:ys)(e,t)}function qd(e,r,t){return(r.slice(-4)===".bin"?af:Zc)(e,t)}var ev=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var rv=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var tv=function(e){return String.fromCharCode(e)};function av(e,r){var t=e.split(/\s+/);var a=[];if(!r)a[0]=t[0];if(t.length===1)return a;var n=e.match(ev),i,s,l,c;if(n)for(c=0;c!=n.length;++c){i=n[c].match(rv);if((s=i[1].indexOf(":"))===-1)a[i[1]]=i[2].substr(1,i[2].length-2);else{if(i[1].substr(0,6)==="xmlns:")l="xmlns"+i[1].substr(6);else l=i[1].substr(s+1);a[l]=i[2].substr(1,i[2].length-2)}}return a}function nv(e){var r=e.split(/\s+/);var t={};if(r.length===1)return t;var a=e.match(ev),n,i,s,l;if(a)for(l=0;l!=a.length;++l){n=a[l].match(rv);if((i=n[1].indexOf(":"))===-1)t[n[1]]=n[2].substr(1,n[2].length-2);else{if(n[1].substr(0,6)==="xmlns:")s="xmlns"+n[1].substr(6);else s=n[1].substr(i+1);t[s]=n[2].substr(1,n[2].length-2)}}return t}function iv(e,r){var t=k[e]||be(e);if(t==="General")return E._general(r);return E.format(t,r)}function sv(e,r,t,a){var n=a;switch((t[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":n=we(a);break;case"i2":;case"int":n=parseInt(a,10);break;case"r4":;case"float":n=parseFloat(a);break;case"date":;case"dateTime.tz":n=W(a);break;case"i8":;case"string":;case"fixed":;case"uuid":;case"bin.base64":break;default:throw new Error("bad custprop:"+t[0]);}e[be(r[3])]=n}function lv(e,r,t){if(e.t==="z")return;if(!t||t.cellText!==false)try{if(e.t==="e"){e.w=e.w||Ot[e.v]}else if(r==="General"){if(e.t==="n"){if((e.v|0)===e.v)e.w=E._general_int(e.v);else e.w=E._general_num(e.v)}else e.w=E._general(e.v)}else e.w=iv(r||"General",e.v)}catch(a){if(t.WTF)throw a}try{var n=k[r]||r||"General";if(t.cellNF)e.z=n;if(t.cellDates&&e.t=="n"&&E.is_date(n)){var i=E.parse_date_code(e.v);if(i){e.t="d";e.v=new Date(i.y,i.m-1,i.d,i.H,i.M,i.S,i.u)}}}catch(a){if(t.WTF)throw a}}function cv(e,r,t){if(t.cellStyles){if(r.Interior){var a=r.Interior;if(a.Pattern)a.patternType=Pl[a.Pattern]||a.Pattern}}e[r.ID]=r}function fv(e,r,t,a,n,i,s,l,c,f){var o="General",u=a.StyleID,h={};f=f||{};var d=[];var v=0;if(u===undefined&&l)u=l.StyleID;if(u===undefined&&s)u=s.StyleID;while(i[u]!==undefined){if(i[u].nf)o=i[u].nf;if(i[u].Interior)d.push(i[u].Interior);if(!i[u].Parent)break;u=i[u].Parent}switch(t.Type){case"Boolean":a.t="b";a.v=we(e);break;case"String":a.t="s";a.r=Be(be(e));a.v=e.indexOf("<")>-1?be(r):a.r;break;case"DateTime":if(e.slice(-1)!="Z")e+="Z";a.v=(W(e)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(a.v!==a.v)a.v=be(e);else if(a.v<60)a.v=a.v-1;if(!o||o=="General")o="yyyy-mm-dd";case"Number":if(a.v===undefined)a.v=+e;if(!a.t)a.t="n";break;case"Error":a.t="e";a.v=Pt[e];if(f.cellText!==false)a.w=e;break;default:a.t="s";a.v=Be(r||e);break;}lv(a,o,f);if(f.cellFormula!==false){if(a.Formula){var b=be(a.Formula);if(b.charCodeAt(0)==61)b=b.substr(1);a.f=of(b,n);delete a.Formula;if(a.ArrayRange=="RC")a.F=of("RC:RC",n);else if(a.ArrayRange){a.F=of(a.ArrayRange,n);c.push([et(a.F),a.F])}}else{for(v=0;v=c[v][0].s.r&&n.r<=c[v][0].e.r)if(n.c>=c[v][0].s.c&&n.c<=c[v][0].e.c)a.F=c[v][1]}}if(f.cellStyles){d.forEach(function(e){if(!h.patternType&&e.patternType)h.patternType=e.patternType});a.s=h}a.ixfe=a.StyleID!==undefined?a.StyleID:"Default"}function ov(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function uv(e){if(d&&Buffer.isBuffer(e))return e.toString("utf8");if(typeof e==="string")return e;throw new Error("Bad input format: expected Buffer or string")}var hv=/<(\/?)([^\s?>!\/:]*:|)([^\s?>]*[^\s?>\/])[^>]*>/gm;function dv(e,r){var t=r||{};S(E);var a=c(uv(e));if(t.type=="binary"||t.type=="base64"){if(typeof cptable!=="undefined")a=cptable.utils.decode(65001,i(a));else a=Te(a)}var n=a.slice(0,1024).toLowerCase(),s=false;if(n.indexOf("=0)s=true});if(s)return Qv.to_workbook(a,t);var l;var f=[],u;if(o!=null&&t.dense==null)t.dense=o;var h={},d=[],v=t.dense?[]:{},b="";var p={},m={},g={};var B=av(''),C=0;var w=0,T=0;var I={s:{r:2e6,c:2e6},e:{r:0,c:0}};var x={},A={};var R="",D=0;var F=[];var O={},P={},_=0,y={};var N=[],M={};var L=[],U,W=false;var H=[];var V=[],X={},z=0,j=0;var K={Sheets:[],WBProps:{date1904:false}},Y={};hv.lastIndex=0;a=a.replace(//gm,"");while(l=hv.exec(a))switch(l[3]){case"Data":if(f[f.length-1][1])break;if(l[1]==="/")fv(a.slice(C,l.index),R,B,f[f.length-1][0]=="Comment"?M:m,{c:w,r:T},x,L[w],g,H,t);else{R="";B=av(l[0]);C=l.index+l[0].length}break;case"Cell":if(l[1]==="/"){if(N.length>0)m.c=N;if((!t.sheetRows||t.sheetRows>T)&&m.v!==undefined){if(t.dense){if(!v[T])v[T]=[];v[T][w]=m}else v[Xr(w)+Wr(T)]=m}if(m.HRef){m.l={Target:m.HRef,Tooltip:m.HRefScreenTip};delete m.HRef;delete m.HRefScreenTip}if(m.MergeAcross||m.MergeDown){z=w+(parseInt(m.MergeAcross,10)|0);j=T+(parseInt(m.MergeDown,10)|0);F.push({s:{c:w,r:T},e:{c:z,r:j}})}if(!t.sheetStubs){if(m.MergeAcross)w=z+1;else++w}else if(m.MergeAcross||m.MergeDown){for(var $=w;$<=z;++$){for(var Q=T;Q<=j;++Q){if($>w||Q>T){if(t.dense){if(!v[Q])v[Q]=[];v[Q][$]={t:"z"}}else v[Xr($)+Wr(Q)]={t:"z"}}}}w=z+1}else++w}else{m=nv(l[0]);if(m.Index)w=+m.Index-1;if(wI.e.c)I.e.c=w;if(l[0].slice(-2)==="/>")++w;N=[]}break;case"Row":if(l[1]==="/"||l[0].slice(-2)==="/>"){if(TI.e.r)I.e.r=T;if(l[0].slice(-2)==="/>"){g=av(l[0]);if(g.Index)T=+g.Index-1}w=0;++T}else{g=av(l[0]);if(g.Index)T=+g.Index-1;X={};if(g.AutoFitHeight=="0"||g.Height){X.hpx=parseInt(g.Height,10);X.hpt=Fl(X.hpx);V[T]=X}if(g.Hidden=="1"){X.hidden=true;V[T]=X}}break;case"Worksheet":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"));d.push(b);if(I.s.r<=I.e.r&&I.s.c<=I.e.c)v["!ref"]=qr(I);if(F.length)v["!merges"]=F;if(L.length>0)v["!cols"]=L;if(V.length>0)v["!rows"]=V;h[b]=v}else{I={s:{r:2e6,c:2e6},e:{r:0,c:0}};T=w=0;f.push([l[3],false]);u=av(l[0]);b=be(u.Name);v=t.dense?[]:{};F=[];H=[];V=[];Y={name:b,Hidden:0};K.Sheets.push(Y)}break;case"Table":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].slice(-2)=="/>")break;else{p=av(l[0]);f.push([l[3],false]);L=[];W=false}break;case"Style":if(l[1]==="/")cv(x,A,t);else A=av(l[0]);break;case"NumberFormat":A.nf=be(av(l[0]).Format||"General");if(k[A.nf])A.nf=k[A.nf];for(var Z=0;Z!=392;++Z)if(E._table[Z]==A.nf)break;if(Z==392)for(Z=57;Z!=392;++Z)if(E._table[Z]==null){E.load(A.nf,Z);break}break;case"Column":if(f[f.length-1][0]!=="Table")break;U=av(l[0]);if(U.Hidden){U.hidden=true;delete U.Hidden}if(U.Width)U.wpx=parseInt(U.Width,10);if(!W&&U.wpx>10){W=true;El=pl;for(var J=0;J0)re.Sheet=K.Sheets.length-1;K.Names.push(re);break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")R+=a.slice(D,l.index);else D=l.index+l[0].length;break;case"Interior":if(!t.cellStyles)break;A.Interior=av(l[0]);break;case"Protection":break;case"Author":;case"Title":;case"Description":;case"Created":;case"Keywords":;case"Subject":;case"Category":;case"Company":;case"LastAuthor":;case"LastSaved":;case"LastPrinted":;case"Version":;case"Revision":;case"TotalTime":;case"HyperlinkBase":;case"Manager":;case"ContentStatus":;case"Identifier":;case"Language":;case"AppName":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")Ha(O,l[3],a.slice(_,l.index));else _=l.index+l[0].length;break;case"Paragraphs":break;case"Styles":;case"Workbook":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else f.push([l[3],false]);break;case"Comment":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"));ov(M);N.push(M)}else{f.push([l[3],false]);u=av(l[0]);M={a:u.Author}}break;case"AutoFilter":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/"){var te=av(l[0]);v["!autofilter"]={ref:of(te.Range).replace(/\$/g,"")};f.push([l[3],true])}break;case"Name":break;case"ComponentOptions":;case"DocumentProperties":;case"CustomDocumentProperties":;case"OfficeDocumentSettings":;case"PivotTable":;case"PivotCache":;case"Names":;case"MapInfo":;case"PageBreaks":;case"QueryTable":;case"DataValidation":;case"Sorting":;case"Schema":;case"data":;case"ConditionalFormatting":;case"SmartTagType":;case"SmartTags":;case"ExcelWorkbook":;case"WorkbookOptions":;case"WorksheetOptions":if(l[1]==="/"){if((u=f.pop())[0]!==l[3])throw new Error("Bad state: "+u.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/")f.push([l[3],true]);break;default:if(f.length==0&&l[3]=="document")return rb(a,t);if(f.length==0&&l[3]=="UOF")return rb(a,t);var ae=true;switch(f[f.length-1][0]){case"OfficeDocumentSettings":switch(l[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:ae=false;}break;case"ComponentOptions":switch(l[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:ae=false;}break;case"ExcelWorkbook":switch(l[3]){case"Date1904":K.WBProps.date1904=true;break;case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:ae=false;}break;case"WorkbookOptions":switch(l[3]){case"OWCVersion":break;case"Height": +break;case"Width":break;default:ae=false;}break;case"WorksheetOptions":switch(l[3]){case"Visible":if(l[0].slice(-2)==="/>"){}else if(l[1]==="/")switch(a.slice(_,l.index)){case"SheetHidden":Y.Hidden=1;break;case"SheetVeryHidden":Y.Hidden=2;break;}else _=l.index+l[0].length;break;case"Header":if(!v["!margins"])Du(v["!margins"]={},"xlml");v["!margins"].header=ue(l[0]).Margin;break;case"Footer":if(!v["!margins"])Du(v["!margins"]={},"xlml");v["!margins"].footer=ue(l[0]).Margin;break;case"PageMargins":var ne=ue(l[0]);if(!v["!margins"])Du(v["!margins"]={},"xlml");if(ne.Top)v["!margins"].top=ne.Top;if(ne.Left)v["!margins"].left=ne.Left;if(ne.Right)v["!margins"].right=ne.Right;if(ne.Bottom)v["!margins"].bottom=ne.Bottom;break;case"Unsynced":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"PageSetup":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:ae=false;}break;case"PivotTable":;case"PivotCache":switch(l[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:ae=false;}break;case"PageBreaks":switch(l[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:ae=false;}break;case"AutoFilter":switch(l[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:ae=false;}break;case"QueryTable":switch(l[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:ae=false;}break;case"Sorting":;case"ConditionalFormatting":;case"DataValidation":switch(l[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:ae=false;}break;case"MapInfo":;case"Schema":;case"data":switch(l[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":;case"element":;case"complexType":;case"datatype":;case"all":;case"attribute":;case"extends":break;case"row":break;default:ae=false;}break;case"SmartTags":break;default:ae=false;break;}if(ae)break;if(!f[f.length-1][1])throw"Unrecognized tag: "+l[3]+"|"+f.join("|");if(f[f.length-1][0]==="CustomDocumentProperties"){if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")sv(P,l,y,a.slice(_,l.index));else{y=l;_=l.index+l[0].length}break}if(t.WTF)throw"Unrecognized tag: "+l[3]+"|"+f.join("|");}var ie={};if(!t.bookSheets&&!t.bookProps)ie.Sheets=h;ie.SheetNames=d;ie.Workbook=K;ie.SSF=E.get_table();ie.Props=O;ie.Custprops=P;return ie}function vv(e){if(Array.isArray(e))return e.map(tv).join("");var r=[];for(var t=0;t");if(e["!margins"].header)n.push(Ue("Header",null,{"x:Margin":e["!margins"].header}));if(e["!margins"].footer)n.push(Ue("Footer",null,{"x:Margin":e["!margins"].footer}));n.push(Ue("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"}));n.push("")}if(a&&a.Workbook&&a.Workbook.Sheets&&a.Workbook.Sheets[t]){if(a.Workbook.Sheets[t].Hidden)n.push(Ue("Visible",a.Workbook.Sheets[t].Hidden==1?"SheetHidden":"SheetVeryHidden",{}));else{for(var i=0;i")}}if(e["!protect"]){n.push(Me("ProtectContents","True"));if(e["!protect"].objects)n.push(Me("ProtectObjects","True"));if(e["!protect"].scenarios)n.push(Me("ProtectScenarios","True"));if(e["!protect"].selectLockedCells!=null&&!e["!protect"].selectLockedCells)n.push(Me("EnableSelection","NoSelection"));else if(e["!protect"].selectUnlockedCells!=null&&!e["!protect"].selectUnlockedCells)n.push(Me("EnableSelection","UnlockedCells"));[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach(function(r){if(e["!protect"][r[0]])n.push("<"+r[1]+"/>")})}if(n.length==0)return"";return Ue("WorksheetOptions",n.join(""),{xmlns:Ge.x})}function Sv(e){return e.map(function(e){var r=Ce(e.t||"");var t=Ue("ss:Data",r,{xmlns:"http://www.w3.org/TR/REC-html40"});return Ue("Comment",t,{"ss:Author":e.a})}).join("")}function kv(e,r,t,a,n,i,s){if(!e||e.v==undefined&&e.f==undefined)return"";var l={};if(e.f)l["ss:Formula"]="="+ge(hf(e.f,s));if(e.F&&e.F.substr(0,r.length)==r){var c=Yr(e.F.substr(r.length+1));l["ss:ArrayRange"]="RC:R"+(c.r==s.r?"":"["+(c.r-s.r)+"]")+"C"+(c.c==s.c?"":"["+(c.c-s.c)+"]")}if(e.l&&e.l.Target){l["ss:HRef"]=ge(e.l.Target);if(e.l.Tooltip)l["x:HRefScreenTip"]=ge(e.l.Tooltip)}if(t["!merges"]){var f=t["!merges"];for(var o=0;o!=f.length;++o){if(f[o].s.c!=s.c||f[o].s.r!=s.r)continue;if(f[o].e.c>f[o].s.c)l["ss:MergeAcross"]=f[o].e.c-f[o].s.c;if(f[o].e.r>f[o].s.r)l["ss:MergeDown"]=f[o].e.r-f[o].s.r}}var u="",h="";switch(e.t){case"z":return"";case"n":u="Number";h=String(e.v);break;case"b":u="Boolean";h=e.v?"1":"0";break;case"e":u="Error";h=Ot[e.v];break;case"d":u="DateTime";h=new Date(e.v).toISOString();break;case"s":u="String";h=ge(e.v||"");break;}var d=e.v!=null?h:"";var v=''+d+"";if((e.c||[]).length>0)v+=Sv(e.c);return Ue("Cell",v,l)}function Bv(e,r){var t='"}function Cv(e,r,t,a){if(!e["!ref"])return"";var n=et(e["!ref"]);var i=e["!merges"]||[],s=0;var l=[];if(e["!cols"])e["!cols"].forEach(function(e,r){Al(e);var t=!!e.width;var a=Ru(r,e);var n={"ss:Index":r+1};if(t)n["ss:Width"]=Sl(a.width);if(e.hidden)n["ss:Hidden"]="1";l.push(Ue("Column",null,n))});var c=Array.isArray(e);for(var f=n.s.r;f<=n.e.r;++f){var o=[Bv(f,(e["!rows"]||[])[f])];for(var u=n.s.c;u<=n.e.c;++u){var h=false;for(s=0;s!=i.length;++s){if(i[s].s.c>u)continue;if(i[s].s.r>f)continue;if(i[s].e.c");if(o.length>2)l.push(o.join(""))}return l.join("")}function wv(e,r,t){var a=[];var n=t.SheetNames[e];var i=t.Sheets[n];var s=i?Cv(i,r,e,t):"";if(s.length>0)a.push(""+s+"
    ");a.push(Ev(i,r,e,t));return a.join("")}function Tv(e,r){var t=[];t.push(pv(e,r));t.push(mv(e,r));t.push(gv(e,r));for(var a=0;a400)throw new Error("Unsupported Clipboard: "+n.toString(16));a+=n;}n=er(t,a);a+=n.length===0?0:5+n.length;r.Reserved1=n;if((n=vr(t,a))!==1907550708)return r;throw new Error("Unsupported Unicode Extension")}function xv(e,r,t,a){var n=t;var i=[];var s=r.slice(r.l,r.l+n);if(a&&a.enc&&a.enc.insitu)switch(e.n){case"BOF":;case"FilePass":;case"FileLock":;case"InterfaceHdr":;case"RRDInfo":;case"RRDHead":;case"UsrExcl":break;default:if(s.length===0)break;a.enc.insitu(s);}i.push(s);r.l+=n;var l=Nv[hr(r,r.l)];var c=0;while(l!=null&&l.n.slice(0,8)==="Continue"){n=hr(r,r.l+2);c=r.l+4;if(l.n=="ContinueFrt")c+=4;else if(l.n.slice(0,11)=="ContinueFrt")c+=12;i.push(r.slice(c,r.l+4+n));r.l+=4+n;l=Nv[hr(r,r.l)]}var f=p(i);Tr(f,0);var o=0;f.lens=[];for(var u=0;u1)return;if(!I)return;if(t.cellStyles&&r.XF&&r.XF.data)O(e,r,t);delete r.ixfe;delete r.XF;v=e;b=$r(e);if(c.s){if(e.rc.e.r)c.e.r=e.r+1;if(e.c+1>c.e.c)c.e.c=e.c+1}if(t.cellFormula&&r.f){for(var a=0;ae.c)continue;if(C[a][0].s.r>e.r)continue;if(C[a][0].e.c=t.sheetRows)I=false;else{if(t.dense){if(!i[e.r])i[e.r]=[];i[e.r][e.c]=r}else i[b]=r}};var _={enc:false,sbcch:0,snames:[],sharedf:B,arrayf:C,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,cellStyles:!!r&&!!r.cellStyles,WTF:!!r&&!!r.wtf};if(r.password)_.password=r.password;var y=[];var N=[];var M=[],L=[];var U=0,W=0;var H=false;var V=[];V.SheetNames=_.snames;V.sharedf=_.sharedf;V.arrayf=_.arrayf;V.names=[];V.XTI=[];var G="";var X=0;var z=0;var j=[];var K=[];var Y;_.codepage=1200;n(1200);while(e.l0)Y.Sheet=re.itab-1;V.names.push(Y);if(!V[0])V[0]=[];V[V.length-1].push(re);if(re.Name=="_xlnm._FilterDatabase"&&re.itab>0)if(re.rgce&&re.rgce[0]&&re.rgce[0][0]&&re.rgce[0][0][0]=="PtgArea3d")K[re.itab-1]={ref:qr(re.rgce[0][0][1][2])};break;case"ExternCount":_.ExternCount=re;break;case"ExternSheet":if(V.length==0){V[0]=[];V[0].XTI=[]}V[V.length-1].XTI=V[V.length-1].XTI.concat(re);V.XTI=V.XTI.concat(re);break;case"NameCmt":if(_.biff<8)break;if(Y!=null)Y.Comment=re[1];break;case"Protect":i["!protect"]=re;break;case"Password":if(re!==0&&_.WTF)console.error("Password verifier: "+re);break;case"Prot4Rev":;case"Prot4RevPass":break;case"BoundSheet8":{s[re.pos]=re;_.snames.push(re.name)}break;case"EOF":{if(--X)break;if(c.e){if(c.e.r>0&&c.e.c>0){c.e.r--;c.e.c--;i["!ref"]=qr(c);c.e.r++;c.e.c++}if(y.length>0)i["!merges"]=y;if(N.length>0)i["!objects"]=N;if(M.length>0)i["!cols"]=M;if(L.length>0)i["!rows"]=L;R.Sheets.push(D)}if(h==="")d=i;else a[h]=i;i=r.dense?[]:{}}break;case"BOF":{if(_.biff===8)switch(Q){case 9:_.biff=2;break;case 521:_.biff=3;break;case 1033:_.biff=4;break;default:switch(re.BIFFVer){case 1280:_.biff=5;break;case 1536:_.biff=8;break;case 2:_.biff=2;break;case 7:_.biff=2;break;};}if(X++)break;I=true;i=r.dense?[]:{};if(_.biff<5){if(h==="")h="Sheet1";c={s:{r:0,c:0},e:{r:0,c:0}};var ae={pos:e.l-Z,name:h};s[ae.pos]=ae;_.snames.push(h)}else h=(s[$]||{name:""}).name;if(re.dt==32)i["!type"]="chart";y=[];N=[];C=[];_.arrayf=C;M=[];L=[];U=W=0;H=false;D={Hidden:(s[$]||{hs:0}).hs,name:h}}break;case"Number":;case"BIFF2NUM":;case"BIFF2INT":{if(i["!type"]=="chart")if(r.dense?(i[re.r]||[])[re.c]:i[$r({c:re.c,r:re.r})])++re.c;w={ixfe:re.ixfe,XF:x[re.ixfe]||{},v:re.val,t:"n"};if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"BoolErr":{w={ixfe:re.ixfe,XF:x[re.ixfe],v:re.val,t:re.t};if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"RK":{w={ixfe:re.ixfe,XF:x[re.ixfe],v:re.rknum,t:"n"};if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"MulRk":{for(var ne=re.c;ne<=re.C;++ne){var ie=re.rkrec[ne-re.c][0];w={ixfe:ie,XF:x[ie],v:re.rkrec[ne-re.c][1],t:"n"};if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:ne,r:re.r},w,r)}}break;case"Formula":{if(re.val=="String"){f=re;break}w=Rv(re.val,re.cell.ixfe,re.tt);w.XF=x[w.ixfe];if(r.cellFormula){var se=re.formula;if(se&&se[0]&&se[0][0]&&se[0][0][0]=="PtgExp"){var le=se[0][0][1][0],ce=se[0][0][1][1];var fe=$r({r:le,c:ce});if(B[fe])w.f=""+su(re.formula,c,re.cell,V,_);else w.F=((r.dense?(i[le]||[])[ce]:i[fe])||{}).F}else w.f=""+su(re.formula,c,re.cell,V,_)}if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P(re.cell,w,r);f=re}break;case"String":{if(f){f.val=re;w=Rv(re,f.cell.ixfe,"s");w.XF=x[w.ixfe];if(r.cellFormula){w.f=""+su(f.formula,c,f.cell,V,_)}if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P(f.cell,w,r);f=null}else throw new Error("String record expects Formula")}break;case"Array":{C.push(re);var oe=$r(re[0].s);p=r.dense?(i[re[0].s.r]||[])[re[0].s.c]:i[oe];if(r.cellFormula&&p){if(!f)break;if(!oe||!p)break;p.f=""+su(re[1],c,re[0],V,_);p.F=qr(re[0])}}break;case"ShrFmla":{if(!I)break;if(!r.cellFormula)break;if(b){if(!f)break;B[$r(f.cell)]=re[0];p=r.dense?(i[f.cell.r]||[])[f.cell.c]:i[$r(f.cell)];(p||{}).f=""+su(re[0],c,v,V,_)}}break;case"LabelSst":w=Rv(u[re.isst].t,re.ixfe,"s");w.XF=x[w.ixfe];if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r);break;case"Blank":if(r.sheetStubs){w={ixfe:re.ixfe,XF:x[re.ixfe],t:"z"};if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r)}break;case"MulBlank":if(r.sheetStubs){for(var ue=re.c;ue<=re.C;++ue){var he=re.ixfe[ue-re.c];w={ixfe:he,XF:x[he],t:"z"};if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:ue,r:re.r},w,r)}}break;case"RString":;case"Label":;case"BIFF2STR":w=Rv(re.val,re.ixfe,"s");w.XF=x[w.ixfe];if(z>0)w.z=j[w.ixfe>>8&31];Av(w,r,t.opts.Date1904);P({c:re.c,r:re.r},w,r);break;case"Dimensions":{if(X===1)c=re}break;case"SST":{u=re}break;case"Format":{E.load(re[1],re[0])}break;case"BIFF2FORMAT":{j[z++]=re;for(var de=0;de=163)E.load(re,z+163)}break;case"MergeCells":y=y.concat(re);break;case"Obj":N[re.cmo[0]]=_.lastobj=re;break;case"TxO":_.lastobj.TxO=re;break;case"ImData":_.lastobj.ImData=re;break;case"HLink":{for(k=re[0].s.r;k<=re[0].e.r;++k)for(S=re[0].s.c;S<=re[0].e.c;++S){p=r.dense?(i[k]||[])[S]:i[$r({c:S,r:k})];if(p)p.l=re[1]}}break;case"HLinkTooltip":{for(k=re[0].s.r;k<=re[0].e.r;++k)for(S=re[0].s.c;S<=re[0].e.c;++S){p=r.dense?(i[k]||[])[S]:i[$r({c:S,r:k})];if(p)p.l.Tooltip=re[1]}}break;case"Note":{if(_.biff<=5&&_.biff>=2)break;p=r.dense?(i[re[0].r]||[])[re[0].c]:i[$r(re[0])];var ve=N[re[2]];if(!p)break;if(!p.c)p.c=[];m={a:re[1],t:ve.TxO.t};p.c.push(m)}break;default:switch(q.n){case"ClrtClient":break;case"XFExt":Nc(x[re.ixfe],re.ext);break;case"DefColWidth":U=re;break;case"DefaultRowHeight":W=re[1];break;case"ColInfo":{if(!_.cellStyles)break;while(re.e>=re.s){M[re.e--]={width:re.w/256};if(!H){H=true;Il(re.w/256)}Al(M[re.e+1])}}break;case"Row":{var be={};if(re.level!=null){L[re.r]=be;be.level=re.level}if(re.hidden){L[re.r]=be;be.hidden=true}if(re.hpt){L[re.r]=be;be.hpt=re.hpt;be.hpx=Ol(re.hpt)}}break;case"LeftMargin":;case"RightMargin":;case"TopMargin":;case"BottomMargin":if(!i["!margins"])Du(i["!margins"]={});i["!margins"][te.slice(0,-6).toLowerCase()]=re;break;case"Setup":if(!i["!margins"])Du(i["!margins"]={});i["!margins"].header=re.header;i["!margins"].footer=re.footer;break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"GCW":break;case"LHRecord":break;case"DBCell":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXString":break;case"Sync":break;case"Addin":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":;case"FeatHdr11":break;case"Feature11":;case"Feature12":;case"List12":break;case"Country":T=re;break;case"RecalcId":break;case"DxGCol":break;case"Fbi":;case"Fbi2":;case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":A=re;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":;case"DXFN":;case"DXFN12":;case"DXFN12List":;case"DXFN12NoCB":break;case"Dv":;case"DVal":break;case"BRAI":;case"Series":;case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"OleDbConn":break;case"ExtString":break;case"IFmtRecord":break;case"CondFmt":;case"CF":;case"CF12":;case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":;case"Mms":;case"InterfaceEnd":;case"DSF":break;case"BuiltInFnGroupCount":break;case"Window1":;case"Window2":;case"HideObj":;case"GridSet":;case"Guts":;case"UserBView":;case"UserSViewBegin":;case"UserSViewEnd":;case"Pane":break;default:switch(q.n){case"Dat":;case"Begin":;case"End":;case"StartBlock":;case"EndBlock":;case"Frame":;case"Area":;case"Axis":;case"AxisLine":;case"Tick":break;case"AxesUsed":;case"CrtLayout12":;case"CrtLayout12A":;case"CrtLink":;case"CrtLine":;case"CrtMlFrt":;case"CrtMlFrtContinue":break;case"LineFormat":;case"AreaFormat":;case"Chart":;case"Chart3d":;case"Chart3DBarShape":;case"ChartFormat":;case"ChartFrtInfo":break;case"PlotArea":;case"PlotGrowth":break;case"SeriesList":;case"SerParent":;case"SerAuxTrend":break;case"DataFormat":;case"SerToCrt":;case"FontX":break;case"CatSerRange":;case"AxcExt":;case"SerFmt":break;case"ShtProps":break;case"DefaultText":;case"Text":;case"CatLab":break;case"DataLabExtContents":break;case"Legend":;case"LegendException":break;case"Pie":;case"Scatter":break;case"PieFormat":;case"MarkerFormat":break;case"StartObject":;case"EndObject":break;case"AlRuns":;case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":;case"YMult":break;case"Line":;case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":;case"Qsif":;case"Qsir":;case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":;case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":;case"MsoDrawingGroup":;case"MsoDrawingSelection":break;case"WebPub":;case"AutoWebPub":break;case"HeaderFooter":;case"HFPicture":;case"PLV":;case"HorizontalPageBreaks":;case"VerticalPageBreaks":break;case"Backup":;case"CompressPictures":;case"Compat12":break;case"Continue":;case"ContinueFrt12":break;case"FrtFontList":;case"FrtWrapper":break;default:switch(q.n){case"TabIdConf":;case"Radar":;case"RadarArea":;case"DropBar":;case"Intl":;case"CoordList":;case"SerAuxErrBar":break;case"BIFF2FONTCLR":;case"BIFF2FMTCNT":;case"BIFF2FONTXTRA":break;case"BIFF2XF":;case"BIFF3XF":;case"BIFF4XF":break;case"BIFF4FMTCNT":;case"BIFF2ROW":;case"BIFF2WINDOW2":break;case"SCENARIO":;case"DConBin":;case"PicF":;case"DataLabExt":;case"Lel":;case"BopPop":;case"BopPopCustom":;case"RealTimeData":;case"Name":break;case"LHNGraph":;case"FnGroupName":;case"AddMenu":;case"LPr":break;case"ListObj":;case"ListField":break;case"RRSort":break;case"BigName":break;case"ToolbarHdr":;case"ToolbarEnd":break;case"DDEObjName":break;case"FRTArchId$":break;default:if(r.WTF)throw"Unrecognized Record "+q.n;};};};}}else e.l+=Z}var pe=Object.keys(s).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return s[e].name});var me=pe.slice();t.Directory=pe;t.SheetNames=pe;if(!r.bookSheets)t.Sheets=a;if(t.Sheets)K.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Preamble=d;t.Strings=u;t.SSF=E.get_table();if(_.enc)t.Encryption=_.enc;t.Metadata={};if(T!==undefined)t.Metadata.Country=T;if(V.names.length>0)R.Names=V.names;t.Workbook=R;return t}function Fv(e,r,t){var a=I.find(e,"!DocumentSummaryInformation");if(a)try{var n=cn(a,Zt);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF==2)throw s}var l=I.find(e,"!SummaryInformation");if(l)try{var c=cn(l,Jt);for(var f in c)if(r[f]==null)r[f]=c[f]}catch(s){if(t.WTF==2)throw s}}function Ov(e,r){if(!r)r={};vb(r);a();var t,n,i;if(e.FullPaths){t=I.find(e,"!CompObj");n=I.find(e,"!SummaryInformation");i=I.find(e,"/Workbook")||I.find(e,"/Book")}else{switch(r.type){case"base64":e=b(h.decode(e));break;case"binary":e=b(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}Tr(e,0);i={content:e}}var s,l,c;var f;if(t)s=Iv(t);if(r.bookProps&&!r.bookSheets)c={};else{var o=d?"buffer":"array";if(i&&i.content)c=Dv(i.content,r);else if((f=I.find(e,"PerfectOffice_MAIN"))&&f.content)c=Cs.to_workbook(f.content,(r.type=o,r));else if((f=I.find(e,"NativeContent_MAIN"))&&f.content)c=Cs.to_workbook(f.content,(r.type=o,r));else throw new Error("Cannot find Workbook stream");if(r.bookVBA&&I.find(e,"/_VBA_PROJECT_CUR/VBA/dir"))c.vbaraw=nf(e)}var u={};if(e.FullPaths)Fv(e,u,r);c.Props=c.Custprops=u;if(r.bookFiles)c.cfb=e;return c}function Pv(e,r){var t=r||{};var a=I.utils.cfb_new({root:"R"});var n="/Workbook";switch(t.bookType||"xls"){case"xls":t.bookType="biff8";case"biff8":n="/Workbook";t.biff=8;break;case"biff5":n="/Book";t.biff=5;break;default:throw new Error("invalid type "+t.bookType+" for XLS CFB");}I.utils.cfb_add(a,n,$v(e,t));return a}var _v={0:{n:"BrtRowHdr",f:ah},1:{n:"BrtCellBlank",f:uh},2:{n:"BrtCellRk",f:Sh},3:{n:"BrtCellError",f:bh},4:{n:"BrtCellBool",f:dh},5:{n:"BrtCellReal",f:gh},6:{n:"BrtCellSt",f:Bh},7:{n:"BrtCellIsst",f:ph},8:{n:"BrtFmlaString",f:xh},9:{n:"BrtFmlaNum",f:Ih},10:{n:"BrtFmlaBool",f:wh},11:{n:"BrtFmlaError",f:Th},16:{n:"BrtFRTArchID$",f:xd},19:{n:"BrtSSTItem",f:ot},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:Ad},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:Yl},44:{n:"BrtFmt",f:jl},45:{n:"BrtFill",f:Jl},46:{n:"BrtBorder",f:ac},47:{n:"BrtXF",f:ec},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:rs},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:Uc},64:{n:"BrtDVal"},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Ir,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView"},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:fh},148:{n:"BrtWsDim",f:sh,p:16},151:{n:"BrtPane"},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:Td},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:Cd},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:Ns},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:At},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:Ah},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps" +},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:Bt},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:yi},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:Ph},427:{n:"BrtShrFmla",f:_h},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:Mh},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:ch},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:Fh},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:Bt},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:ef},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:Jc},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:ht},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp"},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14"},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSxview14"},1063:{n:"BrtEndSxview14"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},65535:{n:""}};var yv=R(_v,"n");var Nv={3:{n:"BIFF2NUM",f:us},4:{n:"BIFF2STR",f:os},6:{n:"Formula",f:hu},9:{n:"BOF",f:Yn},10:{n:"EOF",f:fn},12:{n:"CalcCount",f:vn},13:{n:"CalcMode",f:vn},14:{n:"CalcPrecision",f:hn},15:{n:"CalcRefMode",f:hn},16:{n:"CalcDelta",f:Dt},17:{n:"CalcIter",f:hn},18:{n:"Protect",f:hn},19:{n:"Password",f:vn},20:{n:"Header",f:Di},21:{n:"Footer",f:Di},23:{n:"ExternSheet",f:yi},24:{n:"Lbl",f:_i},25:{n:"WinProtect",f:hn},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:Vi},29:{n:"Selection"},34:{n:"Date1904",f:hn},35:{n:"ExternName",f:Oi},38:{n:"LeftMargin",f:Dt},39:{n:"RightMargin",f:Dt},40:{n:"TopMargin",f:Dt},41:{n:"BottomMargin",f:Dt},42:{n:"PrintRowCol",f:hn},43:{n:"PrintGrid",f:hn},47:{n:"FilePass",f:fl},49:{n:"Font",f:fi},51:{n:"PrintSize",f:vn},60:{n:"Continue"},61:{n:"Window1",f:li},64:{n:"Backup",f:hn},65:{n:"Pane"},66:{n:"CodePage",f:vn},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:vn},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:Zn},93:{n:"Obj",f:Xi},94:{n:"Uncalced"},95:{n:"CalcSaveRecalc",f:hn},96:{n:"Template"},97:{n:"Intl"},99:{n:"ObjProtect",f:hn},125:{n:"ColInfo",f:rs},128:{n:"Guts",f:wi},129:{n:"WsBool"},130:{n:"GridSet",f:vn},131:{n:"HCenter",f:hn},132:{n:"VCenter",f:hn},133:{n:"BoundSheet8",f:qn},134:{n:"WriteProtect"},140:{n:"Country",f:Qi},141:{n:"HideObj",f:vn},144:{n:"Sort"},146:{n:"Palette",f:qi},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:vn},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:ss},161:{n:"Setup",f:ts},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:gi},190:{n:"MulBlank",f:Ei},193:{n:"Mms",f:fn},197:{n:"SXDI"},198:{n:"SXDB"},199:{n:"SXFDB"},200:{n:"SXDBB"},201:{n:"SXNum"},202:{n:"SxBool",f:hn},203:{n:"SxErr"},204:{n:"SXInt"},205:{n:"SXString"},206:{n:"SXDtr"},207:{n:"SxNil"},208:{n:"SXTbl"},209:{n:"SXTBRGIITM"},210:{n:"SxTbpg"},211:{n:"ObProj"},213:{n:"SXStreamID"},215:{n:"DBCell"},216:{n:"SXRng"},217:{n:"SxIsxoper"},218:{n:"BookBool",f:vn},220:{n:"DbOrParamQry"},221:{n:"ScenarioProtect",f:hn},222:{n:"OleObjectSize"},224:{n:"XF",f:Ci},225:{n:"InterfaceHdr",f:Qn},226:{n:"InterfaceEnd",f:fn},227:{n:"SXVS"},229:{n:"MergeCells",f:Gi},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:ri},253:{n:"LabelSst",f:oi},255:{n:"ExtSST",f:ti},256:{n:"SXVDEx"},259:{n:"SXFormula"},290:{n:"SXDBEx"},311:{n:"RRDInsDel"},312:{n:"RRDHead"},315:{n:"RRDChgCell"},317:{n:"RRTabId",f:pn},318:{n:"RRDRenSheet"},319:{n:"RRSort"},320:{n:"RRDMove"},330:{n:"RRFormat"},331:{n:"RRAutoFmt"},333:{n:"RRInsertSh"},334:{n:"RRDMoveBegin"},335:{n:"RRDMoveEnd"},336:{n:"RRDInsDelBegin"},337:{n:"RRDInsDelEnd"},338:{n:"RRDConflict"},339:{n:"RRDDefName"},340:{n:"RRDRstEtxp"},351:{n:"LRng"},352:{n:"UsesELFs",f:hn},353:{n:"DSF",f:fn},401:{n:"CUsr"},402:{n:"CbUsr"},403:{n:"UsrInfo"},404:{n:"UsrExcl"},405:{n:"FileLock"},406:{n:"RRDInfo"},407:{n:"BCUsrs"},408:{n:"UsrChk"},425:{n:"UserBView"},426:{n:"UserSViewBegin"},427:{n:"UserSViewEnd"},428:{n:"RRDUserView"},429:{n:"Qsi"},430:{n:"SupBook",f:Fi},431:{n:"Prot4Rev",f:hn},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:Ki},439:{n:"RefreshAll",f:hn},440:{n:"HLink",f:Yi},441:{n:"Lel"},442:{n:"CodeName",f:Bn},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:vn},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:fn},449:{n:"RecalcId",f:ii,r:2},450:{n:"EntExU2",f:fn},512:{n:"Dimensions",f:bi},513:{n:"Blank",f:is},515:{n:"Number",f:Ai},516:{n:"Label",f:ui},517:{n:"BoolErr",f:Ii},518:{n:"Formula",f:hu},519:{n:"String",f:ls},520:{n:"Row",f:ai},523:{n:"Index"},545:{n:"Array",f:Ui},549:{n:"DefaultRowHeight",f:si},566:{n:"Table"},574:{n:"Window2",f:Ir},638:{n:"RK",f:mi},659:{n:"Style",f:Ir},1030:{n:"Formula",f:hu},1048:{n:"BigName"},1054:{n:"Format",f:di},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:Li},2048:{n:"HLinkTooltip",f:$i},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:Yn},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:fn},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:es,r:12},2173:{n:"XFExt",f:yc,r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:hn,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt",f:Ir},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:Mi,r:12},2197:{n:"SortData"},2198:{n:"Theme",f:Rc,r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:Wi,r:12},2203:{n:"CompressPictures",f:fn},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:ni},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:vn},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:as},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:Ji},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:bi},2:{n:"BIFF2INT",f:ds},5:{n:"BoolErr",f:Ii},7:{n:"String",f:bs},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:vn},30:{n:"BIFF2FORMAT",f:vi},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:Ui},37:{n:"DefaultRowHeight",f:si},50:{n:"BIFF2FONTXTRA",f:ps},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:cs},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:ms},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:Yn},536:{n:"Lbl",f:_i},547:{n:"ExternName",f:Oi},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:Yn},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}};var Mv=R(Nv,"n");function Lv(e,r,t,a){var n=+r||+Mv[r];if(isNaN(n))return;var i=a||(t||[]).length||0;var s=e.next(4+i);s._W(2,n);s._W(2,i);if(i>0&&or(t))e.push(t)}function Uv(e,r,t){if(!e)e=Rr(7);e._W(2,r);e._W(2,t);e._W(1,0);e._W(1,0);e._W(1,0);return e}function Wv(e,r,t,a){var n=Rr(9);Uv(n,e,r);if(a=="e"){n._W(1,t);n._W(1,1)}else{n._W(1,t?1:0);n._W(1,0)}return n}function Hv(e,r,t){var a=Rr(8+2*t.length);Uv(a,e,r);a._W(1,t.length);a._W(t.length,t,"sbcs");return a.l=0&&i<65536)Lv(e,2,vs(t,a,i));else Lv(e,3,hs(t,a,i));return;case"b":;case"e":Lv(e,5,Wv(t,a,r.v,r.t));return;case"s":;case"str":Lv(e,4,Hv(t,a,r.v));return;}Lv(e,1,Uv(null,t,a))}function Gv(e,r,t,a,n){var i=Array.isArray(r);var s=et(r["!ref"]||"A1"),l,c="",f=[];for(var o=s.s.r;o<=s.e.r;++o){c=Wr(o);for(var u=s.s.c;u<=s.e.c;++u){if(o===s.s.r)f[u]=Xr(u);l=f[u]+c;var h=i?(r[o]||[])[u]:r[l];if(!h)continue;Vv(e,h,o,u,a)}}}function Xv(e,r){var t=r||{};if(o!=null&&t.dense==null)t.dense=o;var a=Fr();var n=0;for(var i=0;i");var i=e.match(/<\/table/i);var s=n.index,l=i&&i.index||e.length;var c=Y(e.slice(s,l),/(:?]*>)/i,"");var f=-1,u=0,h=0,d=0;var v={s:{r:1e7,c:1e7},e:{r:0,c:0}};var b=[],p=0;for(s=0;s/i);for(l=0;l"))>-1)k=k.slice(B+1);while(k.indexOf(">")>-1)k=k.slice(0,k.lastIndexOf("<"));var C=ue(S.slice(0,S.indexOf(">")));d=C.colspan?+C.colspan:1;if((h=+C.rowspan)>0||d>1)b.push({s:{r:f,c:u},e:{r:f+(h||1)-1,c:u+d-1}});if(!k.length){u+=d;continue}k=Fe(be(k));if(v.s.r>f)v.s.r=f;if(v.e.ru)v.s.c=u;if(v.e.c";for(var l=r.s.c;l<=r.e.c;++l){var c=0,f=0;for(var o=0;ot||n[o].s.c>l)continue;if(n[o].e.r1)v.rowspan=c;if(f>1)v.colspan=f;if(a.editable)v.contenteditable="true";v.id="sjs-"+u;i.push(Ue("td",d,v))}var b="";return b+i.join("")+""}function a(e,r,t){var a=[];return a.join("")+""}var n='SheetJS Table Export';var i="";function s(e,r,s){var l=r||{};var c=l.header!=null?l.header:n;var f=l.footer!=null?l.footer:i;var o=[c];var u=Jr(e["!ref"]);l.dense=Array.isArray(e);o.push(a(e,u,l));for(var h=u.s.r;h<=u.e.r;++h)o.push(t(e,u,h,l));o.push("
    "+f);return o.join("")}return{to_workbook:r,to_sheet:e,_row:t,BEGIN:n,END:i,_preamble:a,from_sheet:s}}();function Zv(e,r){var t=r||{};if(o!=null)t.dense=o;var a=t.dense?[]:{};var n=e.getElementsByTagName("tr");var i={s:{r:0,c:0},e:{r:n.length-1,c:0}};var s=[],l=0;var c=0,f=0,u=0,h=0,d=0;for(;c0||d>1)s.push({s:{r:c,c:u},e:{r:c+(h||1)-1,c:u+d-1}});var S={t:"s",v:m};if(m!=null){if(m.length==0)S.t="z";else if(t.raw){}else if(m.trim().length==0)S.t="s";else if(m==="TRUE")S={t:"b",v:true};else if(m==="FALSE")S={t:"b",v:false};else if(!isNaN(z(m)))S={t:"n",v:z(m)};else if(!isNaN(j(m).getDate())){S={t:"d",v:W(m)};if(!t.cellDates)S={t:"n",v:y(S.v)};S.z=t.dateNF||E._table[14]}}if(t.dense){if(!a[c])a[c]=[];a[c][u]=S}else a[$r({c:u,r:c})]=S;if(i.e.c/g," ").replace(//g,function(e,r){return Array(parseInt(r,10)+1).join(" ")}).replace(/]*\/>/g,"\t").replace(//g,"\n").replace(/<[^>]*>/g,""))};var r={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']};return function t(a,n){var i=n||{};if(o!=null&&i.dense==null)i.dense=o;var s=uv(a);var l=[],c;var f;var u={name:""},h="",d=0;var v;var b;var p={},m=[];var g=i.dense?[]:{};var E,S;var k={value:""};var B="",C=0,w;var T=-1,I=-1,x={s:{r:1e6,c:1e7},e:{r:0,c:0}};var A=0;var R={};var D=[],F={},O=0,P=0;var _=[],N=1,L=1;var U=[];var H=[],V={};var X="",z=0;var j=false;var K=0;hv.lastIndex=0;s=s.replace(//gm,"").replace(//gm,"");while(E=hv.exec(s))switch(E[3]=E[3].replace(/_.*$/,"")){case"table":;case"工作表":if(E[1]==="/"){if(x.e.c>=x.s.c&&x.e.r>=x.s.r)g["!ref"]=qr(x);if(D.length)g["!merges"]=D;if(_.length)g["!rows"]=_;v.name=Te(v["名称"]||v.name);m.push(v.name);p[v.name]=g}else if(E[0].charAt(E[0].length-2)!=="/"){v=ue(E[0],false);T=I=-1;x.s.r=x.s.c=1e7;x.e.r=x.e.c=0;g=i.dense?[]:{};D=[];_=[]}break;case"table-row-group":if(E[1]==="/")--A;else++A;break;case"table-row":;case"行":if(E[1]==="/"){T+=N;N=1;break}b=ue(E[0],false);if(b["行号"])T=b["行号"]-1;else if(T==-1)T=0;N=+b["number-rows-repeated"]||1;if(N<10)for(K=0;K0)_[T+K]={level:A};I=-1;break;case"covered-table-cell":++I;if(i.sheetStubs){if(i.dense){if(!g[T])g[T]=[];g[T][I]={t:"z"}}else g[$r({r:T,c:I})]={t:"z"}}break;case"table-cell":;case"数据":if(E[0].charAt(E[0].length-2)==="/"){++I;k=ue(E[0],false);L=parseInt(k["number-columns-repeated"]||"1",10);S={t:"z",v:null};if(k.formula&&i.cellFormula!=false)S.f=Cu(be(k.formula));if((k["数据类型"]||k["value-type"])=="string"){S.t="s";S.v=be(k["string-value"]||"");if(i.dense){if(!g[T])g[T]=[];g[T][I]=S}else{g[$r({r:T,c:I})]=S}}I+=L-1}else if(E[1]!=="/"){++I;L=1;if(I>x.e.c)x.e.c=I;if(T>x.e.r)x.e.r=T;if(I=U[K][0].s.r&&T<=U[K][0].e.r)if(I>=U[K][0].s.c&&I<=U[K][0].e.c)S.F=U[K][1]}if(k["number-columns-spanned"]||k["number-rows-spanned"]){O=parseInt(k["number-rows-spanned"],10)||0;P=parseInt(k["number-columns-spanned"],10)||0;F={s:{r:T,c:I},e:{r:T+O-1,c:I+P-1}};D.push(F)}if(k["number-columns-repeated"])L=parseInt(k["number-columns-repeated"],10);switch(S.t){case"boolean":S.t="b";S.v=we(k["boolean-value"]);break;case"float":S.t="n";S.v=parseFloat(k.value);break;case"percentage":S.t="n";S.v=parseFloat(k.value);break;case"currency":S.t="n";S.v=parseFloat(k.value);break;case"date":S.t="d";S.v=W(k["date-value"]);if(!i.cellDates){S.t="n";S.v=y(S.v)}S.z="m/d/yy";break;case"time":S.t="n";S.v=M(k["time-value"])/86400;break;case"number":S.t="n";S.v=parseFloat(k["数据数值"]);break;default:if(S.t==="string"||S.t==="text"||!S.t){S.t="s";if(k["string-value"]!=null)B=be(k["string-value"])}else throw new Error("Unsupported value type "+S.t);}}else{j=false;if(S.t==="s"){S.v=B||"";j=C==0}if(H.length>0){S.c=H;H=[]}if(B&&i.cellText!==false)S.w=B;if(!j||i.sheetStubs){if(!(i.sheetRows&&i.sheetRows0)g[T+Y][I+L]=G(S)}else{g[$r({r:T+Y,c:I})]=S;while(--L>0)g[$r({r:T+Y,c:I+L})]=G(S)}if(x.e.c<=I)x.e.c=I}}}L=parseInt(k["number-columns-repeated"]||"1",10);I+=L-1;L=0;S={};B=""}break;case"document":;case"document-content":;case"电子表格文档":;case"spreadsheet":;case"主体":;case"scripts":;case"styles":;case"font-face-decls":if(E[1]==="/"){if((c=l.pop())[0]!==E[3])throw"Bad state: "+c}else if(E[0].charAt(E[0].length-2)!=="/")l.push([E[3],true]);break;case"annotation":if(E[1]==="/"){if((c=l.pop())[0]!==E[3])throw"Bad state: "+c;V.t=B;V.a=X;H.push(V)}else if(E[0].charAt(E[0].length-2)!=="/"){l.push([E[3],false])}X="";z=0;B="";C=0;break;case"creator":if(E[1]==="/"){X=s.slice(z,E.index)}else z=E.index+E[0].length;break;case"meta":;case"元数据":;case"settings":;case"config-item-set":;case"config-item-map-indexed":;case"config-item-map-entry":;case"config-item-map-named":;case"shapes":;case"frame":;case"text-box":;case"image":;case"data-pilot-tables":;case"list-style":;case"form":;case"dde-links":;case"event-listeners":;case"chart":if(E[1]==="/"){if((c=l.pop())[0]!==E[3])throw"Bad state: "+c}else if(E[0].charAt(E[0].length-2)!=="/")l.push([E[3],false]);B="";C=0;break;case"scientific-number":break;case"currency-symbol":break;case"currency-style":break;case"number-style":;case"percentage-style":;case"date-style":;case"time-style":if(E[1]==="/"){R[u.name]=h;if((c=l.pop())[0]!==E[3])throw"Bad state: "+c}else if(E[0].charAt(E[0].length-2)!=="/"){h="";u=ue(E[0],false);l.push([E[3],true])}break;case"script":break;case"libraries":break;case"automatic-styles":break;case"master-styles":break;case"default-style":;case"page-layout":break;case"style":break;case"map":break;case"font-face":break;case"paragraph-properties":break;case"table-properties":break;case"table-column-properties":break;case"table-row-properties":break;case"table-cell-properties":break;case"number":switch(l[l.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"fraction":break;case"day":;case"month":;case"year":;case"era":;case"day-of-week":;case"week-of-year":;case"quarter":;case"hours":;case"minutes":;case"seconds":;case"am-pm":switch(l[l.length-1][0]){case"time-style":;case"date-style":f=ue(E[0],false);h+=r[E[3]][f.style==="long"?1:0];break;}break;case"boolean-style":break;case"boolean":break;case"text-style":break;case"text":if(E[0].slice(-2)==="/>")break;else if(E[1]==="/")switch(l[l.length-1][0]){case"number-style":;case"date-style":;case"time-style":h+=s.slice(d,E.index);break;}else d=E.index+E[0].length;break;case"text-content":break;case"text-properties":break;case"embedded-text":break;case"body":;case"电子表格":break;case"forms":break;case"table-column":break;case"table-header-rows":break;case"table-rows":break;case"table-column-group":break;case"table-header-columns":break;case"table-columns":break;case"null-date":break;case"graphic-properties":break;case"calculation-settings":break;case"named-expressions":break;case"named-range":break;case"label-range":break;case"label-ranges":break;case"named-expression":break;case"sort":break;case"sort-by":break;case"sort-groups":break;case"tab":break;case"line-break":break;case"span":break;case"p":;case"文本串":if(E[1]==="/"&&(!k||!k["string-value"]))B=(B.length>0?B+"\n":"")+e(s.slice(C,E.index),w);else{w=ue(E[0],false);C=E.index+E[0].length}break;case"s":break;case"database-range":if(E[1]==="/")break;try{var $=Tu(ue(E[0])["target-range-address"]);p[$[0]]["!autofilter"]={ref:$[1]}}catch(Q){}break;case"date":break;case"object":break;case"title":;case"标题":break;case"desc":break;case"binary-data":break;case"table-source":break;case"scenario":break;case"iteration":break;case"content-validations":break;case"content-validation":break;case"help-message":break;case"error-message":break;case"database-ranges":break;case"filter":break;case"filter-and":break;case"filter-or":break;case"filter-condition":break;case"list-level-style-bullet":break;case"list-level-style-number":break;case"list-level-properties":break;case"sender-firstname":;case"sender-lastname":;case"sender-initials":;case"sender-title":;case"sender-position":;case"sender-email":;case"sender-phone-private":;case"sender-fax":;case"sender-company":;case"sender-phone-work":;case"sender-street":;case"sender-city":;case"sender-postal-code":;case"sender-country":;case"sender-state-or-province":;case"author-name":;case"author-initials":;case"chapter":;case"file-name":;case"template-name":;case"sheet-name":break;case"event-listener":break;case"initial-creator":;case"creation-date":;case"print-date":;case"generator":;case"document-statistic":;case"user-defined":;case"editing-duration":;case"editing-cycles":break;case"config-item":break;case"page-number":break;case"page-count":break;case"time":break;case"cell-range-source":break;case"detective":break;case"operation":break;case"highlighted-range":break;case"data-pilot-table":;case"source-cell-range":;case"source-service":;case"data-pilot-field":;case"data-pilot-level":;case"data-pilot-subtotals":;case"data-pilot-subtotal":;case"data-pilot-members":;case"data-pilot-member":;case"data-pilot-display-info":;case"data-pilot-sort-info":;case"data-pilot-layout-info":;case"data-pilot-field-reference":;case"data-pilot-groups":;case"data-pilot-group":;case"data-pilot-group-member":break;case"rect":break;case"dde-connection-decls":;case"dde-connection-decl":;case"dde-link":;case"dde-source":break;case"properties":break;case"property":break;case"a":break;case"table-protection":break;case"data-pilot-grand-total":break;case"office-document-common-attrs":break;default:switch(E[2]){case"dc:":;case"calcext:":;case"loext:":;case"ooo:":;case"chartooo:":;case"draw:":;case"style:":;case"chart:":;case"form:":;case"uof:":;case"表:":;case"字:":break;default:if(i.WTF)throw new Error(E);};}var Z={Sheets:p,SheetNames:m};if(i.bookSheets)delete Z.Sheets;return Z}}();function eb(e,r){r=r||{};var t=!!J(e,"objectdata");if(t)var a=Ea(ee(e,"META-INF/manifest.xml"),r);var n=re(e,"content.xml");if(!n)throw new Error("Missing content.xml in "+(t?"ODS":"UOF")+" file");var i=qv(t?n:Te(n),r);if(J(e,"meta.xml"))i.Props=xa(ee(e,"meta.xml"));return i}function rb(e,r){return qv(e,r)}var tb=function(){var e="";return function r(t,a){return se+e}}();var ab=function(){var e=function(e){return ge(e).replace(/ +/g,function(e){return''}).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"")};var r=" \n";var t=" \n";var a=function(a,n,i,s){var l=[];l.push(' \n');var c=0,f=0,o=Jr(a["!ref"]);var u=a["!merges"]||[],h=0;var d=Array.isArray(a);for(c=0;c\n");for(;c<=o.e.r;++c){l.push(" \n");for(f=0;ff)continue;if(u[h].s.r>c)continue;if(u[h].e.c\n")}l.push(" \n");return l.join("")};var n=function(e){e.push(" \n");e.push(' \n');e.push(' \n');e.push(" /\n");e.push(' \n');e.push(" /\n");e.push(" \n");e.push(" \n");e.push(' \n');e.push(" \n")};return function i(e,r){var t=[se];var i=Le({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Le({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods")t.push("\n");else t.push("\n");n(t);t.push(" \n");t.push(" \n");for(var l=0;l!=e.SheetNames.length;++l)t.push(a(e.Sheets[e.SheetNames[l]],e,l,r));t.push(" \n");t.push(" \n");if(r.bookType=="fods")t.push("");else t.push("");return t.join("")}}();function nb(e,r){if(r.bookType=="fods")return ab(e,r);var t=new ae;var a="";var n=[];var i=[];a="mimetype";t.file(a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";t.file(a,ab(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";t.file(a,tb(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="meta.xml";t.file(a,wa(e,r));n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="manifest.rdf";t.file(a,Ca(i,r));n.push([a,"application/rdf+xml"]);a="META-INF/manifest.xml";t.file(a,Sa(n,r));return t}function ib(e){return function r(t,a){var n=0;for(var i=0;i-1)return"sheet";if(ha.CS&&e==ha.CS)return"chart";if(ha.DS&&e==ha.DS)return"dialog";if(ha.MS&&e==ha.MS)return"macro";return e&&e.length?e:"sheet"}function mb(e,r){if(!e)return 0;try{e=r.map(function a(r){if(!r.id)r.id=r.strRelID;return[r.name,e["!id"][r.id].Target,pb(e["!id"][r.id].Type)]})}catch(t){return null}return!e||e.length===0?null:e}function gb(e,r,t,a,n,i,s,l,c,f,o){try{n[a]=va(re(e,t,true),r);var u=ee(e,r);switch(s){case"sheet":i[a]=Ld(u,r,l,n[a],c,f,o);break;case"chart":var h=Ud(u,r,l,n[a],c,f,o);i[a]=h;if(!h||!h["!chart"])break;var d=ie(h["!chart"].Target,r);var v=da(d);var b=Xc(re(e,d,true),va(re(e,v,true),d));var p=ie(b,d);var m=da(p);h=ed(re(e,p,true),p,l,va(re(e,m,true),p),c,h);break;case"macro":i[a]=Wd(u,r,l,n[a],c,f,o);break;case"dialog":i[a]=Hd(u,r,l,n[a],c,f,o);break;}}catch(g){if(l.WTF)throw g}}var Eb=function mp(e){return e.slice(-1)!="/"};function Sb(e){return e.charAt(0)=="/"?e.slice(1):e}function kb(e,r){S(E);r=r||{};vb(r);a();if(J(e,"META-INF/manifest.xml"))return eb(e,r);if(J(e,"objectdata.xml"))return eb(e,r);if(J(e,"Index/Document.iwa"))throw new Error("Unsupported NUMBERS file");var t=A(e.files).filter(Eb).sort();var i=ca(re(e,"[Content_Types].xml"),r);var s=false;var l,c;if(i.workbooks.length===0){c="xl/workbook.xml";if(ee(e,c,true))i.workbooks.push(c)}if(i.workbooks.length===0){c="xl/workbook.bin";if(!ee(e,c,true))throw new Error("Could not find workbook");i.workbooks.push(c);s=true}if(i.workbooks[0].slice(-3)=="bin")s=true;if(s)n(1200);var f={};var o={};if(!r.bookSheets&&!r.bookProps){Iu=[];if(i.sst)Iu=Xd(ee(e,Sb(i.sst)),i.sst,r);if(r.cellStyles&&i.themes.length)f=Gd(re(e,i.themes[0].replace(/^\//,""),true)||"",i.themes[0],r);if(i.style)o=Vd(ee(e,Sb(i.style)),i.style,f,r)}var u=i.links.map(function(t){return Kd(ee(e,Sb(t)),t,r)});var h=Md(ee(e,Sb(i.workbooks[0])),i.workbooks[0],r);var d={},v="";if(i.coreprops.length){v=ee(e,Sb(i.coreprops[0]),true);if(v)d=xa(v);if(i.extprops.length!==0){v=ee(e,Sb(i.extprops[0]),true);if(v)Oa(v,d,r)}}var b={};if(!r.bookSheets||r.bookProps){if(i.custprops.length!==0){v=re(e,Sb(i.custprops[0]),true);if(v)b=Na(v,r)}}var p={};if(r.bookSheets||r.bookProps){if(h.Sheets)l=h.Sheets.map(function O(e){return e.name});else if(d.Worksheets&&d.SheetNames.length>0)l=d.SheetNames;if(r.bookProps){p.Props=d;p.Custprops=b}if(r.bookSheets&&typeof l!=="undefined")p.SheetNames=l;if(r.bookSheets?p.SheetNames:r.bookProps)return p}l={};var m={};if(r.bookDeps&&i.calcchain)m=jd(ee(e,Sb(i.calcchain)),i.calcchain,r);var g=0;var k={};var B,C;{var w=h.Sheets;d.Worksheets=w.length;d.SheetNames=[];for(var T=0;T!=w.length;++T){d.SheetNames[T]=w[T].name}}var I=s?"bin":"xml";var x="xl/_rels/workbook."+I+".rels";var R=va(re(e,x,true),x);if(R)R=mb(R,h.Sheets);var D=ee(e,"xl/worksheets/sheet.xml",true)?1:0;for(g=0;g!=d.Worksheets;++g){var F="sheet";if(R&&R[g]){B="xl/"+R[g][1].replace(/[\/]?xl\//,"");F=R[g][2]}else{B="xl/worksheets/sheet"+(g+1-D)+"."+I;B=B.replace(/sheet0\./,"sheet.")}C=B.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");gb(e,B,C,d.SheetNames[g],k,l,F,r,h,f,o)}if(i.comments)Kc(e,i.comments,l,k,r);p={Directory:i,Workbook:h,Props:d,Custprops:b,Deps:m,Sheets:l,SheetNames:d.SheetNames,Strings:Iu,Styles:o,Themes:f,SSF:E.get_table()};if(r.bookFiles){p.keys=t;p.files=e.files}if(r.bookVBA){if(i.vba.length>0)p.vbaraw=ee(e,Sb(i.vba[0]),true);else if(i.defaults&&i.defaults.bin==="application/vnd.ms-office.vbaProject")p.vbaraw=ee(e,"xl/vbaProject.bin",true)}return p}function Bb(e,r){var t="Version";var a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var n=Gs(a.content);t="DataSpaceMap";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var i=zs(a.content);if(i.length!==1||i[0].comps.length!==1||i[0].comps[0].t!==0||i[0].name!=="StrongEncryptionDataSpace"||i[0].comps[0].v!=="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+t);t="StrongEncryptionDataSpace";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var s=js(a.content);if(s.length!=1||s[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+t);t="!Primary";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var l=Ys(a.content);t="EncryptionInfo";a=I.find(e,t);if(!a||!a.content)throw new Error("ECMA-376 Encrypted file missing "+t);var c=Zs(a.content);if(c[0]==4)throw new Error("File is password-protected: ECMA-376 Agile");throw new Error("File is password-protected")}function Cb(e,r){zc=1024;if(r.bookType=="ods")return nb(e,r);if(e&&!e.SSF){e.SSF=E.get_table()}if(e&&e.SSF){S(E);E.load_table(e.SSF);r.revssf=F(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;var t=r.bookType=="xlsb"?"bin":"xml";var a=r.bookType=="xlsb"||r.bookType=="xlsm";var n=la();bb(r=r||{});var i=new ae;var s="",l=0;r.cellXfs=[];Fu(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";i.file(s,Da(e.Props,r));n.coreprops.push(s);ma(r.rels,2,s,ha.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else e.Props.SheetNames=e.SheetNames.map(function(r,t){return[(e.Workbook.Sheets[t]||{}).Hidden!=2,r]}).filter(function(e){return e[0]}).map(function(e){return e[1]});e.Props.Worksheets=e.Props.SheetNames.length;i.file(s,_a(e.Props,r));n.extprops.push(s);ma(r.rels,3,s,ha.EXT_PROPS);if(e.Custprops!==e.Props&&A(e.Custprops||{}).length>0){s="docProps/custom.xml";i.file(s,La(e.Custprops,r));n.custprops.push(s);ma(r.rels,4,s,ha.CUST_PROPS)}s="xl/workbook."+t;i.file(s,Yd(e,s,r));n.workbooks.push(s);ma(r.rels,1,s,ha.WB);for(l=1;l<=e.SheetNames.length;++l){var c={"!id":{}};var f=e.Sheets[e.SheetNames[l-1]];var o=(f||{})["!type"]||"sheet";switch(o){case"chart":;default:s="xl/worksheets/sheet"+l+"."+t;i.file(s,$d(l-1,s,r,e,c));n.sheets.push(s);ma(r.wbrels,-1,"worksheets/sheet"+l+"."+t,ha.WS[0]);}if(f){var u=f["!comments"];if(u&&u.length>0){var h="xl/comments"+l+"."+t;i.file(h,qd(u,h,r));n.comments.push(h);ma(c,-1,"../comments"+l+"."+t,ha.CMNT)}if(f["!legacy"]){i.file("xl/drawings/vmlDrawing"+l+".vml",jc(l,f["!comments"]))}delete f["!comments"];delete f["!legacy"]}if(c["!id"].rId1)i.file(da(s),pa(c))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;i.file(s,Jd(r.Strings,s,r));n.strs.push(s);ma(r.wbrels,-1,"sharedStrings."+t,ha.SST)}s="xl/theme/theme1.xml";i.file(s,Ac(e.Themes,r));n.themes.push(s);ma(r.wbrels,-1,"theme/theme1.xml",ha.THEME);s="xl/styles."+t;i.file(s,Zd(e,s,r));n.styles.push(s);ma(r.wbrels,-1,"styles."+t,ha.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";i.file(s,e.vbaraw);n.vba.push(s);ma(r.wbrels,-1,"vbaProject.bin",ha.VBA)}i.file("[Content_Types].xml",ua(n,r));i.file("_rels/.rels",pa(r.rels));i.file("xl/_rels/workbook."+t+".rels",pa(r.wbrels));delete r.revssf;delete r.ssf;return i}function wb(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3]];case"base64":t=h.decode(e.substr(0,24));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]}function Tb(e,r){if(I.find(e,"EncryptedPackage"))return Bb(e,r);return Ov(e,r)}function Ib(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=d&&Buffer.isBuffer(e)?"buffer":"base64";switch(n.type){case"base64":t=new ae(a,{base64:true});break;case"binary":;case"array":t=new ae(a,{base64:false});break;case"buffer":t=new ae(a);break;default:throw new Error("Unrecognized type "+n.type);}return kb(t,n)}function xb(e,r){var t=0;e:while(t=2&&n[3]===0)return Cs.to_workbook(a,s);break;case 3:;case 131:;case 139:;case 140:return gs.to_workbook(a,s);case 123:if(n[1]===92&&n[2]===114&&n[3]===116)return ol.to_workbook(a,s);break;case 10:;case 13:;case 32:return Ab(a,s);}if(n[2]<=12&&n[3]<=31)return gs.to_workbook(a,s);if(32>n[0]||n[0]>127)throw new Error("Unsupported file "+n.join("|"));return Fb(e,a,s,i)}function Pb(e,r){var t=r||{};t.type="file";return Ob(e,t)}function _b(e,r){var t=r||{};var a=Cb(e,t);var n={};if(t.compression)n.compression="DEFLATE";switch(t.type){case"base64":n.type="base64";break;case"binary":n.type="string";break;case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");case"buffer":;case"file":n.type="nodebuffer";break;default:throw new Error("Unrecognized type "+t.type);}if(t.type==="file")return te.writeFileSync(t.file,a.generate(n));var i=a.generate(n);return t.type=="string"?Te(i):i}function yb(e,r){var t=r||{};var a=Pv(e,t);switch(t.type){case"base64":;case"binary":break;case"buffer":;case"array":t.type="";break;case"file":return te.writeFileSync(t.file,I.write(a,{type:"buffer"}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+" files");default:throw new Error("Unrecognized type "+t.type);}return I.write(a,t)}function Nb(e,r,t){if(!t)t="";var a=t+e;switch(r.type){case"base64":return h.encode(Ie(a));case"binary":return Ie(a);case"string":return e;case"file":return te.writeFileSync(r.file,a,"utf8");case"buffer":{if(d)return new Buffer(a,"utf8");else return Nb(a,{type:"binary"}).split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Mb(e,r){switch(r.type){case"base64":return h.encode(e);case"binary":return e;case"string":return e;case"file":return te.writeFileSync(r.file,e,"binary");case"buffer":{if(d)return new Buffer(e,"binary");else return e.split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function Lb(e,r){switch(r.type){case"string":;case"base64":;case"binary":var t="";for(var a=0;a0)n=0;var v=Wr(f.s.r);var b=[];var p=[];var m=0,g=0;var E=Array.isArray(e);var S=f.s.r,k=0,B=0;if(E&&!e[S])e[S]=[];for(k=f.s.c;k<=f.e.c;++k){b[k]=Xr(k);t=E?e[S][k]:e[b[k]+v];switch(a){case 1:i[k]=k-f.s.c;break;case 2:i[k]=b[k];break;case 3:i[k]=o.header[k-f.s.c];break;default:if(t==null)continue;c=l=tt(t,null,o);g=0;for(B=0;B=0)o='"'+o.replace(Xb,'""')+'"'}else o="";f.push(o)}if(l.blankrows===false&&c)return null;return f.join(s)}function jb(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=et(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var l=a.RS!==undefined?a.RS:"\n",c=l.charCodeAt(0);var f=new RegExp((i=="|"?"\\|":i)+"+$");var o="",u=[];a.dense=Array.isArray(e);var h=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var v=n.s.c;v<=n.e.c;++v)if(!(h[v]||{}).hidden)u[v]=Xr(v);for(var b=n.s.r;b<=n.e.r;++b){if((d[b]||{}).hidden)continue;o=zb(e,n,b,u,s,c,i,a);if(o==null){continue}if(a.strip)o=o.replace(f,"");t.push(o+l)}delete a.dense;return t.join("")}function Kb(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=jb(e,r);if(typeof cptable=="undefined"||r.type=="string")return t;var a=cptable.utils.encode(1200,t,"str");return"ÿþ"+a}function Yb(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=et(e["!ref"]),i="",s=[],l;var c=[];var f=Array.isArray(e);for(l=n.s.c;l<=n.e.c;++l)s[l]=Xr(l);for(var o=n.s.r;o<=n.e.r;++o){i=Wr(o);for(l=n.s.c;l<=n.e.c;++l){r=s[l]+i;t=f?(e[o]||[])[l]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;c[c.length]=r+"="+a}}return c}function $b(e,r){var t=r||{};var a={};var n;var i={s:{c:0,r:0},e:{c:0,r:e.length}};var s=t.header||[],l=0;e.forEach(function(e,r){A(e).filter(function(r){return e.hasOwnProperty(r)}).forEach(function(i){if((l=s.indexOf(i))==-1)s[l=s.length]=i;var c=e[i];var f="z";var o="";if(typeof c=="number")f="n";else if(typeof c=="boolean")f="b";else if(typeof c=="string")f="s";else if(c instanceof Date){f="d";if(!t.cellDates){f="n";c=y(c)}o=t.dateNF||E._table[14]}a[$r({c:l,r:r+1})]=n={t:f,v:c};if(o)n.z=o})});i.e.c=s.length-1;for(l=0;l=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}e.book_new=function(){return{SheetNames:[],Sheets:{}}};e.book_append_sheet=function(e,r,t){if(!t)for(var a=1;a<=65535;++a)if(e.SheetNames.indexOf(t="Sheet"+a)==-1)break;if(!t)throw new Error("Too many worksheets");pd(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r};e.book_set_sheet_visibility=function(e,r,a){t(e,"Workbook",{});t(e.Workbook,"Sheets",[]);var i=n(e,r);t(e.Workbook.Sheets,i,{});switch(a){case 0:;case 1:;case 2:break;default:throw new Error("Bad sheet visibility setting "+a);}e.Workbook.Sheets[i].Hidden=a};r([["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]]);e.cell_set_number_format=function(e,r){e.z=r;return e};e.cell_set_hyperlink=function(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e};e.cell_add_comment=function(e,r,t){if(!e.c)e.c=[];e.c.push({t:r,a:t||"SheetJS"})};e.sheet_set_array_formula=function(e,r,t){var n=typeof r!="string"?r:et(r);var i=typeof r=="string"?r:qr(r);for(var s=n.s.r;s<=n.e.r;++s)for(var l=n.s.c;l<=n.e.c;++l){var c=a(e,s,l);c.t="n";c.F=i;delete c.v;if(s==n.s.r&&l==n.s.c)c.f=t}return e};return e})(Qb);if(d&&typeof require!="undefined")(function(){var e={}.Readable;var t=function(r,t){var a=e();var n="";var i=t==null?{}:t;if(r==null||r["!ref"]==null){a.push(null);return a}var s=et(r["!ref"]);var l=i.FS!==undefined?i.FS:",",c=l.charCodeAt(0);var f=i.RS!==undefined?i.RS:"\n",o=f.charCodeAt(0);var u=new RegExp((l=="|"?"\\|":l)+"+$");var h="",d=[];i.dense=Array.isArray(r);var v=i.skipHidden&&r["!cols"]||[];var b=i.skipHidden&&r["!rows"]||[];for(var p=s.s.c;p<=s.e.c;++p)if(!(v[p]||{}).hidden)d[p]=Xr(p);var m=s.s.r;a._read=function(){if(m>s.e.r)return a.push(null);while(m<=s.e.r){++m;if((b[m-1]||{}).hidden)continue;h=zb(r,s,m-1,d,c,o,l,i);if(h!=null){if(i.strip)h=h.replace(u,"");a.push(h+f);break}}};return a};var a=function(r,t){var a=e();var n=t||{};var i=n.header!=null?n.header:Qv.BEGIN;var s=n.footer!=null?n.footer:Qv.END;a.push(i);var l=Jr(r["!ref"]);n.dense=Array.isArray(r);a.push(Qv._preamble(r,l,n));var c=l.s.r;var f=false;a._read=function(){if(c>l.e.r){if(!f){f=true;a.push(""+s)}return a.push(null)}while(c<=l.e.r){a.push(Qv._row(r,l,c,n));++c;break}};return a};r.stream={to_html:a,to_csv:t}})();r.parse_xlscfb=Ov;r.parse_ods=eb;r.parse_fods=rb;r.write_ods=nb;r.parse_zip=kb;r.read=Ob;r.readFile=Pb;r.readFileSync=Pb;r.write=Ub;r.writeFile=Hb;r.writeFileSync=Hb;r.writeFileAsync=Vb;r.utils=Qb;r.SSF=E})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX;var ODS=XLSX; diff --git a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.map b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.map index d9288a0e59..85b21c5ecd 100644 --- a/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.map +++ b/src/main/webapp/bower_components/js-xlsx/dist/xlsx.min.map @@ -1 +1 @@ -{"version":3,"sources":["misc/suppress_export.js","dist/xlsx.js"],"names":["DO_NOT_EXPORT_CODEPAGE","DO_NOT_EXPORT_JSZIP","XLSX","make_xlsx","version","current_codepage","module","require","cptable","global","undefined","reset_cp","set_cp","cp","char_codes","data","o","i","len","length","charCodeAt","utf16leread","String","fromCharCode","join","utf16beread","debom","c1","c2","substr","_getchar","_gc1","x","utils","decode","_gc2","DENSE","DIF_XL","Base64","make_b64","map","encode","input","c3","e1","e2","e3","e4","isNaN","charAt","b64_decode","replace","indexOf","has_buf","Buffer","process","versions","node","new_raw_buf","Array","s2a","s","split","bconcat","bufs","concat","apply","chr0","chr1","SSF","make_ssf","_strrev","fill","c","l","pad0","v","d","t","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","floor","q","parse_date_code","opts","b2","date","time","dow","dout","out","T","u","y","m","H","M","S","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","toString","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","_general_num","general_fmt","format","Error","_general","write_date","type","fmt","val","ss0","ss","tt","outl","commaify","j","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","carry","flr","write_num_flt","ffmt","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","slice","lastIndexOf","split_fmt","in_str","_split","abstime","fmt_is_date","toUpperCase","is_date","eval_fmt","flen","lst","dt","hr","toLowerCase","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","f","lat","m1","m2","dateNF","table","load_entry","load","_table","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","forEach","n","datestr","timestr","DO_NOT_EXPORT_CFB","CFB","_CFB","exports","namecmp","L","R","Z","dirname","p","filename","parse","file","options","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","blob","prep_blob","mv","check_get_mver","header","check_shifts","dir_cnt","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","name","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","shift","raw","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","C","pl","dad","push","cnt","sector","__readInt32LE","get_sector_list","start","chkd","buf","buf_chain","modulus","addr","nodes","__toBuffer","sl","k","minifat_store","namelen","__utf16le","color","clsid","state","size","ctime","ct","read_date","mtime","mt","storage","content","MSSZ","offset","__readUInt32LE","fs","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","new_buf","rebuild_cfb","gc","_file","pop","now","sort","elt","_write","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","write_shift","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","path","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","a2s","write","cfb_new","cfb_add","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","isval","keys","Object","evert_key","obj","key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","setFullYear","cc2str","arr","str2cc","dup","JSON","isArray","stringify","hasOwnProperty","fuzzynum","Number","wt","fuzzydate","NaN","getYear","safe_split_regex","split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","prototype","call","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","e","getzipstr","_fs","jszip","JSZip","resolve_path","result","target","step","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","quot","substring","strip_ns","encodings",""","'",">","<","&","rencoding","unescapexml","encregex","coderegex","text","decregex","charegex","escapexml","xml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","value","utf8read","utf8reada","orig","utf8write","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","trim","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","h","matches","baseType","res","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","XLMLNS","html","read_double_le","b","Infinity","write_double_le","bs","av","isFinite","LN2","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","a","isBuffer","lpstr_b","readUInt32LE","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","___unhexlify","__unhexlify","oI","oR","oo","loc","this","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","end","hexstr","fld","pos","parsenoop","parsenooplog","console","writenoop","sz","recordhopper","cb","tmpbyte","cntbyte","RT","tgt","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","next","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","hex","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","fix_cell","unfix_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","aoa_to_sheet","dense","ws","cellStubs","cellDates","cell_ref","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","flags","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","write_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","0","7","15","23","29","36","42","43","255","RBErr","parse_BrtColor","fValidRGB","xColorType","index","nTS","bR","bG","bB","bAlpha","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","extend","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_UI8","VT_LPSTR","VT_FILETIME","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","1","2","3","4","5","6","8","9","10","11","12","13","14","16","17","19","22","26","27","28","SummaryPIDSI","18","SpecialProperties","2147483648","2147483651","1919054434","CountryEnum","20","30","31","32","33","34","39","41","44","45","46","47","48","49","52","55","61","64","66","81","82","84","86","90","105","213","216","218","351","354","358","420","886","961","962","963","964","965","966","971","972","974","981","65535","XLSFillPattern","rgbify","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-office.chartcolorstyle+xml","application/vnd.ms-office.chartstyle+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.openxmlformats-officedocument.themeOverride+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","image/png","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","defaults","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","CT_ODS","parse_manifest","xlml_normalize","Rn","FEtag","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","wmo","wb","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","_opts","Props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","dt:dt","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","ret","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","parse_VtVector","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","width","encoding","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","msg","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","accel","parse_URLMoniker","extra","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","id","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","21","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","parse_InterfaceHdr","parse_WriteAccess","enc","UserName","write_WriteAccess","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","miyRw","level","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Font","dyHeight","parse_LabelSst","isst","parse_Label","write_Label","parse_Format","fmtstr","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","comment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","cbPictFmla","colL","dxL","rwT","dyT","colR","dxR","rwB","dyB","cbMacro","parse_TxO","texts","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","crc","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","100","101","102","103","104","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","24","25","35","37","38","77","78","79","80","87","88","89","dbf_to_aoa","memo","vfp","filedate","nrow","fpos","rlen","current_cp","fields","field","hend","day","ms","dbf_to_sheet","dbf_to_workbook","to_workbook","to_sheet","SYLK","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","aoa","sylk_to_workbook","write_ws_cell_sylk","F","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","from_sheet","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","PRN","set_text_arr","prn_to_aoa_str","lines","guess_sep","instr","dsv_to_sheet_str","sep","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","message","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","40","50","51","56","60","62","63","65","67","68","69","70","71","72","73","74","CS2CP","128","129","130","134","136","161","162","163","177","178","186","204","222","238","parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","rc","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu_decrypt","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","px2char_","char2width_","cycle_width","collw","find_mdw_colw","delta","_MDW","find_mdw_wpx","guess","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_borders","Borders","border","sub_border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","codepage","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","ixfeP","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","write_cc_bin","parse_xlink_xml","parse_xlink_bin","xlink_parse","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","xmlns:v","xmlns:o","xmlns:x","xmlns:mv","v:ext","joinstyle","gradientshapeok","o:connecttype","o:spt","coordsize","fillcolor","strokecolor","color2","angle","on","obscured","CMNT","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","thisCell","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","sheetRows","textMatch","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","write_comments_bin","DS","MS","parse_ds_bin","!type","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","$4","$5","fstr","crefregex","$0","off","shift_formula_str","shift_formula_xlsx","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","PtgTypes","57","58","59","PtgDupes","96","97","98","99","75","76","108","109","91","92","93","Ptg18","Ptg19","parse_Formula","parse_FormulaValue","chn","cbf","parse_XLSCellParsedFormula","shared","parse_RgbExtra","parse_Rgce","rgcb","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","get_ixti","stringify_formula","_range","stack","nameidx","last_sp","sp","fflen","argc","func","args","lbl","names","XLSXFutureFunctions","bookidx","externbook","pnxname","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","PtgDataType","53","54","83","85","94","95","110","111","112","113","114","115","116","117","118","119","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","206","207","208","209","210","211","212","214","215","217","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","353","357","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_range_3D","_ssfopts","WS","get_sst_id","col_obj_w","default_margins","margins","mode","defs","left","right","top","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","parse_ws_xml","data1","data2","mtch","ridx","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","mergecells","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","write_ws_xml_protection","deffalse","deftrue","Rel","tooltip","Tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","write_ws_xml_sheetviews","workbookViewId","write_ws_xml_cell","oldt","oldv","os","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","cellFormula","si","_tag","sheetStubs","_r","write_ws_xml_data","_cell","params","height","customHeight","WS_XML_ROOT","xmlns:r","write_ws_xml","rdata","codeName","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","r:id","hfidx","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","last","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","parse_BrtMargins","write_BrtMargins","write_BrtBeginWsView","write_BrtSheetProtection","parse_ws_bin","!id","ai","af","array_formulae","shared_formulae","Names","defwidth","defheight","ws_parse","aii","_d","write_ws_bin_cell","olddate","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_numCache","nf","parse_chart","csheet","nc","cache","CS","CS_XML_ROOT","parse_cs_xml","!chart","!rel","write_cs_xml","parse_cs_bin","cs_parse","write_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","Workbook","badchars","check_ws_name","_good","check_wb_names","N","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","Sheet","Ref","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cc","parse_xlink","write_wb","write_ws","write_cs","write_sty","write_sst","write_cmnt","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","arr2str","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_ws_xlml_wsopts","x:Margin","x:Bottom","x:Left","x:Right","x:Top","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","ss:Author","write_ws_xlml_cell","attr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","ss:Index","skip","write_ws_xlml","write_xlml","ss:Name","xmlns:ss","xmlns:dt","xmlns:html","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","XTI","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","RecordType","Date1904","WriteProtect","error","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","ExternCount","fakebs8","_f","_fr","_fc","_fe","_arraystart","_j","_ixfe","b2idx","TxO","ImData","noteobj","sheetnamesraw","Encryption","Metadata","Country","parse_props","props","DSI","DocSummary","SI","Summary","parse_xlscfb","CompObj","CompObjP","SummaryP","WorkbookP","bookFiles","write_xlscfb","wbpath","write_biff_buf","333","486","487","488","490","492","496","497","498","499","500","501","502","503","504","505","506","507","508","512","513","514","515","516","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","540","541","542","550","551","552","553","554","555","556","557","558","559","560","561","562","564","565","566","569","570","572","573","574","577","578","579","580","581","582","583","584","585","586","587","588","589","590","591","592","593","594","595","596","597","598","599","600","601","602","603","604","605","606","607","608","609","610","611","612","613","614","615","616","617","618","619","625","626","627","628","629","630","631","632","633","634","635","636","637","638","639","640","641","642","643","644","645","646","648","649","650","651","652","654","655","656","657","658","659","660","661","662","663","664","665","666","668","669","671","672","674","675","676","677","678","679","680","1024","1025","1026","1027","1028","1029","1030","1031","1032","1033","1034","1035","1036","1037","1038","1039","1040","1041","1042","1043","1044","1045","1046","1047","1048","1049","1050","1051","1052","1053","1054","1055","1056","1057","1058","1059","1061","1062","1063","1066","1067","1068","1069","1070","1071","1072","1073","1075","1076","1077","1078","1079","1080","1081","1082","1083","1084","1085","1086","1087","1088","1089","1090","1091","1092","1093","1094","1095","1096","1097","1098","1099","1100","1101","1102","1103","1104","1105","1111","1112","1113","1114","1115","1116","1117","1118","1119","1120","1121","1122","1123","1124","1125","1126","1128","1129","1130","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1141","1142","1143","1144","1145","1146","1147","1148","1149","1150","1152","1153","1154","1155","1156","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170","1171","1172","1173","1177","1178","1180","1181","1182","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2060","2067","2068","2069","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","2101","2102","2103","2104","2105","2106","2107","2108","2109","2110","2111","2112","2113","2114","2115","2116","2117","2118","2119","2120","2121","2122","2123","2124","2125","2126","2127","2128","2129","2130","2131","2132","2133","2134","2135","2136","1212","2059","2061","2062","2063","2064","2066","2137","2138","2146","2147","2148","2149","2150","2151","2152","2154","2155","2156","2161","2162","2164","2165","2166","2167","2168","2169","2170","2171","2172","2173","2174","2175","2180","2181","2182","2183","2184","2185","2186","2187","2188","2189","2190","2191","2192","2194","2195","2196","2197","2198","2199","2200","2201","2202","2203","2204","2205","2206","2207","2211","2212","2213","2214","2215","4097","4098","4099","4102","4103","4105","4106","4107","4108","4109","4116","4117","4118","4119","4120","4121","4122","4123","4124","4125","4126","4127","4128","4129","4130","4132","4133","4134","4135","4146","4147","4148","4149","4154","4156","4157","4158","4159","4160","4161","4163","4164","4165","4166","4168","4170","4171","4174","4175","4176","4177","4187","4188","4189","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","2157","2163","2177","2240","2241","2242","2243","2244","2245","2246","2247","2248","2249","2250","2251","2262","29282","XLSRE","write_biff_rec","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_ws_biff8_cell","write_ws_biff8","write_biff8_global","b8","b5","blen","write_biff8_buf","unshift","html_to_sheet","mtch2","midx","hd","colspan","rowspan","html_to_book","make_html_row","nullcell","editable","contenteditable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","_C","elts","children","innerHTML","getAttribute","table_to_book","parse_content_xml","parse_text_p","number_formats","month","year","hours","minutes","seconds","am-pm","day-of-week","pcx","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","number_format_map","mrange","mR","mC","creator","creatoridx","rept","isstub","parse_ods","ods","write_styles_ods","wso","write_content_ods","null_cell_xml","covered_cell_xml","_Fref","write_automatic_styles_ods","wcx","xmlns:office","xmlns:table","xmlns:style","xmlns:text","xmlns:draw","xmlns:fo","xmlns:xlink","xmlns:meta","xmlns:number","xmlns:presentation","xmlns:svg","xmlns:chart","xmlns:dr3d","xmlns:math","xmlns:form","xmlns:script","xmlns:ooo","xmlns:ooow","xmlns:oooc","xmlns:dom","xmlns:xforms","xmlns:sheet","xmlns:rpt","xmlns:of","xmlns:xhtml","xmlns:grddl","xmlns:tableooo","xmlns:drawooo","xmlns:calcext","xmlns:loext","xmlns:field","xmlns:formx","xmlns:css3t","office:version","fods","xmlns:config","office:mimetype","write_ods","write_obj_str","factory","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","fix_opts_func","fix_opts","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","nodirs","strip_front_slash","parse_zip","entries","filter","dir","binname","externbooks","link","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","bookVBA","vbaraw","bin","parse_xlsxcfb","dsm","seds","einfo","write_zip","vbafmt","General","wsrels","_type","rId1","read_cfb","read_zip","base64","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","write_zip_type","oopts","compression","generate","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","bstr","writeSync","resolve_book_type","writeFileAsync","_cb","Function","sheet_to_json","isempty","defval","outi","counter","CC","defineProperty","enumerable","__rowNum__","blankrows","qreg","make_csv_row","FS","txt","endregex","colInfos","skipHidden","rowInfos","strip","sheet_to_formulae","cmds","json_to_sheet","js","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","stream","_read","write_html_stream","to_html","to_csv","readFile","XLS","ODS"],"mappings":"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","file":"dist/xlsx.min.js"} \ No newline at end of file +{"version":3,"sources":["misc/suppress_export.js","dist/xlsx.js"],"names":["DO_NOT_EXPORT_CODEPAGE","DO_NOT_EXPORT_JSZIP","XLSX","make_xlsx","version","current_codepage","module","require","cptable","global","undefined","reset_cp","set_cp","cp","char_codes","data","o","i","len","length","charCodeAt","utf16leread","String","fromCharCode","join","utf16beread","debom","c1","c2","substr","_getchar","_gc1","x","utils","decode","_gc2","DENSE","DIF_XL","Base64","make_b64","map","encode","input","c3","e1","e2","e3","e4","isNaN","charAt","b64_decode","replace","indexOf","has_buf","Buffer","process","versions","node","new_raw_buf","Array","s2a","s","split","bconcat","bufs","concat","apply","chr0","chr1","SSF","make_ssf","_strrev","fill","c","l","pad0","v","d","t","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","floor","q","parse_date_code","opts","b2","date","time","dow","dout","out","T","u","y","m","H","M","S","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","toString","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","_general_num","general_fmt","format","Error","_general","write_date","type","fmt","val","ss0","ss","tt","outl","commaify","j","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","carry","flr","write_num_flt","ffmt","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","slice","lastIndexOf","split_fmt","in_str","_split","abstime","fmt_is_date","toUpperCase","is_date","eval_fmt","flen","lst","dt","hr","toLowerCase","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","f","lat","m1","m2","dateNF","table","load_entry","load","_table","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","forEach","n","datestr","timestr","DO_NOT_EXPORT_CFB","CFB","_CFB","exports","namecmp","L","R","Z","dirname","p","filename","parse","file","options","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","blob","prep_blob","mv","check_get_mver","header","check_shifts","dir_cnt","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","name","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","shift","raw","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","C","pl","dad","push","cnt","sector","__readInt32LE","get_sector_list","start","chkd","buf","buf_chain","modulus","addr","nodes","__toBuffer","sl","k","minifat_store","namelen","__utf16le","color","clsid","state","size","ctime","ct","read_date","mtime","mt","storage","content","MSSZ","offset","__readUInt32LE","fs","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","new_buf","rebuild_cfb","gc","_file","pop","now","sort","elt","_write","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","write_shift","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","path","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","a2s","write","cfb_new","cfb_add","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","isval","keys","Object","evert_key","obj","key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","setFullYear","cc2str","arr","str2cc","dup","JSON","isArray","stringify","hasOwnProperty","fuzzynum","Number","wt","fuzzydate","NaN","getYear","safe_split_regex","split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","prototype","call","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","e","getzipstr","_fs","jszip","JSZip","resolve_path","result","target","step","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","quot","substring","strip_ns","encodings",""","'",">","<","&","rencoding","unescapexml","encregex","coderegex","text","decregex","charegex","escapexml","xml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","value","utf8read","utf8reada","orig","utf8write","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","trim","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","h","matches","baseType","res","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","XLMLNS","html","read_double_le","b","Infinity","write_double_le","bs","av","isFinite","LN2","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","a","isBuffer","lpstr_b","readUInt32LE","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","__readInt32BE","___unhexlify","__unhexlify","oI","oR","oo","loc","this","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","end","hexstr","fld","pos","parsenoop","parsenooplog","console","writenoop","sz","recordhopper","cb","tmpbyte","cntbyte","RT","tgt","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","next","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","hex","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","fix_cell","unfix_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","aoa_to_sheet","dense","ws","cellStubs","cellDates","cell_ref","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","flags","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","write_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","0","7","15","23","29","36","42","43","255","RBErr","parse_BrtColor","fValidRGB","xColorType","index","nTS","bR","bG","bB","bAlpha","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","extend","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_UI8","VT_LPSTR","VT_FILETIME","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","1","2","3","4","5","6","8","9","10","11","12","13","14","16","17","19","22","26","27","28","SummaryPIDSI","18","SpecialProperties","2147483648","2147483651","1919054434","CountryEnum","20","30","31","32","33","34","39","41","44","45","46","47","48","49","52","55","61","64","66","81","82","84","86","90","105","213","216","218","351","354","358","420","886","961","962","963","964","965","966","971","972","974","981","65535","XLSFillPattern","rgbify","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-office.chartcolorstyle+xml","application/vnd.ms-office.chartstyle+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.openxmlformats-officedocument.themeOverride+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","image/png","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","defaults","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","CT_ODS","parse_manifest","xlml_normalize","Rn","FEtag","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","wmo","wb","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","_opts","Props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","dt:dt","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","ret","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","parse_VtVector","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","width","encoding","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","msg","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","accel","parse_URLMoniker","extra","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","id","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","21","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","parse_InterfaceHdr","parse_WriteAccess","enc","UserName","write_WriteAccess","b8","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","miyRw","level","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Font","dyHeight","parse_LabelSst","isst","parse_Label","write_Label","parse_Format","fmtstr","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","comment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","cbPictFmla","colL","dxL","rwT","dyT","colR","dxR","rwB","dyB","cbMacro","parse_TxO","texts","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","crc","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","100","101","102","103","104","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","24","25","35","37","38","77","78","79","80","87","88","89","dbf_to_aoa","memo","vfp","l7","filedate","nrow","fpos","rlen","current_cp","fields","field","hend","dbf_to_sheet","dbf_to_workbook","to_workbook","to_sheet","SYLK","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","aoa","sylk_to_workbook","write_ws_cell_sylk","F","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","from_sheet","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","PRN","set_text_arr","prn_to_aoa_str","lines","guess_seps","59","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","sep","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","message","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","40","50","51","56","60","62","63","65","67","68","69","70","71","72","73","74","CS2CP","128","129","130","134","136","161","162","163","177","178","186","204","222","238","parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","rc","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","px2char_","char2width_","cycle_width","collw","find_mdw_colw","delta","_MDW","find_mdw_wpx","guess","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_borders","Borders","border","sub_border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","codepage","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","ixfeP","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","write_cc_bin","parse_xlink_xml","parse_xlink_bin","xlink_parse","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","xmlns:v","xmlns:o","xmlns:x","xmlns:mv","v:ext","joinstyle","gradientshapeok","o:connecttype","o:spt","coordsize","fillcolor","strokecolor","color2","angle","on","obscured","CMNT","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","thisCell","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","sheetRows","textMatch","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","write_comments_bin","make_vba_xls","newcfb","newpath","DS","MS","parse_ds_bin","!type","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","$4","$5","fstr","crefregex","$0","off","shift_formula_str","shift_formula_xlsx","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","parse_PtgList","parse_PtgSxName","PtgTypes","57","58","PtgDupes","96","97","98","99","75","76","108","109","91","92","93","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","get_ixti","stringify_formula","_range","stack","nameidx","last_sp","sp","fflen","argc","func","args","lbl","names","XLSXFutureFunctions","bookidx","externbook","pnxname","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","parse_Formula","chn","cbf","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","PtgDataType","53","54","83","85","94","95","110","111","112","113","114","115","116","117","118","119","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","206","207","208","209","210","211","212","214","215","217","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","353","357","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_range_3D","_ssfopts","WS","get_sst_id","col_obj_w","default_margins","margins","mode","defs","left","right","top","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","parse_ws_xml","data1","data2","mtch","ridx","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","mergecells","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","write_ws_xml_protection","deffalse","deftrue","Rel","tooltip","Tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","write_ws_xml_sheetviews","workbookViewId","write_ws_xml_cell","oldt","oldv","os","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","cellFormula","si","_tag","sheetStubs","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","xmlns:r","write_ws_xml","rdata","codeName","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","r:id","hfidx","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","last","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","write_BrtBeginWsView","write_BrtSheetProtection","parse_ws_bin","!id","ai","af","array_formulae","shared_formulae","Names","defwidth","defheight","ws_parse","aii","_d","write_ws_bin_cell","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_numCache","nf","parse_chart","csheet","nc","cache","CS","CS_XML_ROOT","parse_cs_xml","!chart","!rel","write_cs_xml","parse_cs_bin","cs_parse","write_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","Workbook","badchars","check_ws_name","_good","check_wb_names","N","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","Sheet","Ref","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cc","parse_xlink","write_wb","write_ws","write_cs","write_sty","write_sst","write_cmnt","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","arr2str","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_ws_xlml_wsopts","x:Margin","x:Bottom","x:Left","x:Right","x:Top","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","ss:Author","write_ws_xlml_cell","attr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","ss:Index","skip","write_ws_xlml","write_xlml","ss:Name","xmlns:ss","xmlns:dt","xmlns:html","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","XTI","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","RecordType","Date1904","WriteProtect","error","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","ExternCount","fakebs8","_f","_fr","_fc","_fe","_arraystart","_j","_ixfe","b2idx","TxO","ImData","noteobj","sheetnamesraw","Encryption","Metadata","Country","parse_props","props","DSI","DocSummary","SI","Summary","parse_xlscfb","CompObj","CompObjP","SummaryP","WorkbookP","bookVBA","vbaraw","bookFiles","write_xlscfb","wbpath","write_biff_buf","333","486","487","488","490","492","496","497","498","499","500","501","502","503","504","505","506","507","508","512","513","514","515","516","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","540","541","542","550","551","552","553","554","555","556","557","558","559","560","561","562","564","565","566","569","570","572","573","574","577","578","579","580","581","582","583","584","585","586","587","588","589","590","591","592","593","594","595","596","597","598","599","600","601","602","603","604","605","606","607","608","609","610","611","612","613","614","615","616","617","618","619","625","626","627","628","629","630","631","632","633","634","635","636","637","638","639","640","641","642","643","644","645","646","648","649","650","651","652","654","655","656","657","658","659","660","661","662","663","664","665","666","668","669","671","672","674","675","676","677","678","679","680","1024","1025","1026","1027","1028","1029","1030","1031","1032","1033","1034","1035","1036","1037","1038","1039","1040","1041","1042","1043","1044","1045","1046","1047","1048","1049","1050","1051","1052","1053","1054","1055","1056","1057","1058","1059","1061","1062","1063","1066","1067","1068","1069","1070","1071","1072","1073","1075","1076","1077","1078","1079","1080","1081","1082","1083","1084","1085","1086","1087","1088","1089","1090","1091","1092","1093","1094","1095","1096","1097","1098","1099","1100","1101","1102","1103","1104","1105","1111","1112","1113","1114","1115","1116","1117","1118","1119","1120","1121","1122","1123","1124","1125","1126","1128","1129","1130","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1141","1142","1143","1144","1145","1146","1147","1148","1149","1150","1152","1153","1154","1155","1156","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170","1171","1172","1173","1177","1178","1180","1181","1182","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2060","2067","2068","2069","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","2101","2102","2103","2104","2105","2106","2107","2108","2109","2110","2111","2112","2113","2114","2115","2116","2117","2118","2119","2120","2121","2122","2123","2124","2125","2126","2127","2128","2129","2130","2131","2132","2133","2134","2135","2136","1212","2059","2061","2062","2063","2064","2066","2137","2138","2146","2147","2148","2149","2150","2151","2152","2154","2155","2156","2161","2162","2164","2165","2166","2167","2168","2169","2170","2171","2172","2173","2174","2175","2180","2181","2182","2183","2184","2185","2186","2187","2188","2189","2190","2191","2192","2194","2195","2196","2197","2198","2199","2200","2201","2202","2203","2204","2205","2206","2207","2211","2212","2213","2214","2215","4097","4098","4099","4102","4103","4105","4106","4107","4108","4109","4116","4117","4118","4119","4120","4121","4122","4123","4124","4125","4126","4127","4128","4129","4130","4132","4133","4134","4135","4146","4147","4148","4149","4154","4156","4157","4158","4159","4160","4161","4163","4164","4165","4166","4168","4170","4171","4174","4175","4176","4177","4187","4188","4189","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","2157","2163","2177","2240","2241","2242","2243","2244","2245","2246","2247","2248","2249","2250","2251","2262","29282","XLSRE","write_biff_rec","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_ws_biff8_cell","write_ws_biff8","write_biff8_global","b5","blen","write_biff8_buf","unshift","html_to_sheet","mtch2","midx","hd","colspan","rowspan","html_to_book","make_html_row","nullcell","editable","contenteditable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","_C","elts","children","innerHTML","getAttribute","table_to_book","parse_content_xml","parse_text_p","number_formats","day","month","year","hours","minutes","seconds","am-pm","day-of-week","era","quarter","pcx","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","creator","creatoridx","isstub","rpt","parse_ods","ods","write_styles_ods","xmlns:office","xmlns:table","xmlns:style","xmlns:text","xmlns:draw","xmlns:fo","xmlns:xlink","xmlns:number","xmlns:svg","xmlns:of","office:version","wso","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","_Fref","write_automatic_styles_ods","wcx","xmlns:meta","xmlns:presentation","xmlns:chart","xmlns:dr3d","xmlns:math","xmlns:form","xmlns:script","xmlns:ooo","xmlns:ooow","xmlns:oooc","xmlns:dom","xmlns:xforms","xmlns:sheet","xmlns:rpt","xmlns:xhtml","xmlns:grddl","xmlns:tableooo","xmlns:drawooo","xmlns:calcext","xmlns:loext","xmlns:field","xmlns:formx","xmlns:css3t","fods","xmlns:config","office:mimetype","write_ods","write_obj_str","factory","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","fix_opts_func","fix_opts","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","nodirs","strip_front_slash","parse_zip","entries","filter","dir","binname","externbooks","link","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","write_zip","vbafmt","General","wsrels","_type","rId1","read_cfb","read_zip","base64","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","write_zip_type","oopts","compression","generate","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","bstr","writeSync","resolve_book_type","writeFileAsync","_cb","Function","sheet_to_json","isempty","defval","outi","counter","CC","defineProperty","enumerable","__rowNum__","blankrows","qreg","make_csv_row","FS","txt","endregex","colInfos","skipHidden","rowInfos","strip","sheet_to_formulae","cmds","json_to_sheet","js","JS","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","stream","_read","write_html_stream","to_html","to_csv","readFile","XLS","ODS"],"mappings":"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","file":"dist/xlsx.min.js"} \ No newline at end of file diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/10_install.md b/src/main/webapp/bower_components/js-xlsx/docbits/10_install.md index 52c6e80d5a..d61f011bca 100644 --- a/src/main/webapp/bower_components/js-xlsx/docbits/10_install.md +++ b/src/main/webapp/bower_components/js-xlsx/docbits/10_install.md @@ -36,76 +36,3 @@ With [bower](http://bower.io/search/?q=js-xlsx): $ bower install js-xlsx ``` -### JS Ecosystem Demos - -The [`demos` directory](demos/) includes sample projects for: - -**Frameworks and APIs** -- [`angular 1.x`](demos/angular/) -- [`angular 2.x / 4.x`](demos/angular2/) -- [`meteor`](demos/meteor/) -- [`react and react-native`](demos/react/) -- [`vue 2.x and weex`](demos/vue/) -- [`XMLHttpRequest and fetch`](demos/xhr/) -- [`nodejs server`](demos/server/) - -**Bundlers and Tooling** -- [`browserify`](demos/browserify/) -- [`requirejs`](demos/requirejs/) -- [`rollup`](demos/rollup/) -- [`systemjs`](demos/systemjs/) -- [`webpack 2.x`](demos/webpack/) - -**Platforms and Integrations** -- [`electron application`](demos/electron/) -- [`nw.js application`](demos/nwjs/) -- [`Adobe ExtendScript`](demos/extendscript/) -- [`Headless Browsers`](demos/headless/) -- [`canvas-datagrid`](demos/datagrid/) -- [`Swift JSC and other engines`](demos/altjs/) - -### Optional Modules - -
    - Optional features (click to show) - -The node version automatically requires modules for additional features. Some -of these modules are rather large in size and are only needed in special -circumstances, so they do not ship with the core. For browser use, they must -be included directly: - -```html - - -``` - -An appropriate version for each dependency is included in the dist/ directory. - -The complete single-file version is generated at `dist/xlsx.full.min.js` - -Webpack and Browserify builds include optional modules by default. Webpack can -be configured to remove support with `resolve.alias`: - -```js - /* uncomment the lines below to remove support */ - resolve: { - alias: { "./dist/cpexcel.js": "" } // <-- omit international support - } -``` - -
    - -### ECMAScript 5 Compatibility - -Since the library uses functions like `Array#forEach`, older browsers require -[shims to provide missing functions](http://oss.sheetjs.com/js-xlsx/shim.js). - -To use the shim, add the shim before the script tag that loads `xlsx.js`: - -```html - - - - -``` - diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/11_demos.md b/src/main/webapp/bower_components/js-xlsx/docbits/11_demos.md new file mode 100644 index 0000000000..fc5915d100 --- /dev/null +++ b/src/main/webapp/bower_components/js-xlsx/docbits/11_demos.md @@ -0,0 +1,28 @@ +### JS Ecosystem Demos + +The [`demos` directory](demos/) includes sample projects for: + +**Frameworks and APIs** +- [`angular 1.x`](demos/angular/) +- [`angular 2.x / 4.x`](demos/angular2/) +- [`meteor`](demos/meteor/) +- [`react and react-native`](demos/react/) +- [`vue 2.x and weex`](demos/vue/) +- [`XMLHttpRequest and fetch`](demos/xhr/) +- [`nodejs server`](demos/server/) + +**Bundlers and Tooling** +- [`browserify`](demos/browserify/) +- [`requirejs`](demos/requirejs/) +- [`rollup`](demos/rollup/) +- [`systemjs`](demos/systemjs/) +- [`webpack 2.x`](demos/webpack/) + +**Platforms and Integrations** +- [`electron application`](demos/electron/) +- [`nw.js application`](demos/nwjs/) +- [`Adobe ExtendScript`](demos/extendscript/) +- [`Headless Browsers`](demos/headless/) +- [`canvas-datagrid`](demos/datagrid/) +- [`Swift JSC and other engines`](demos/altjs/) + diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/12_optional.md b/src/main/webapp/bower_components/js-xlsx/docbits/12_optional.md new file mode 100644 index 0000000000..e08c4026da --- /dev/null +++ b/src/main/webapp/bower_components/js-xlsx/docbits/12_optional.md @@ -0,0 +1,45 @@ +### Optional Modules + +
    + Optional features (click to show) + +The node version automatically requires modules for additional features. Some +of these modules are rather large in size and are only needed in special +circumstances, so they do not ship with the core. For browser use, they must +be included directly: + +```html + + +``` + +An appropriate version for each dependency is included in the dist/ directory. + +The complete single-file version is generated at `dist/xlsx.full.min.js` + +Webpack and Browserify builds include optional modules by default. Webpack can +be configured to remove support with `resolve.alias`: + +```js + /* uncomment the lines below to remove support */ + resolve: { + alias: { "./dist/cpexcel.js": "" } // <-- omit international support + } +``` + +
    + +### ECMAScript 5 Compatibility + +Since the library uses functions like `Array#forEach`, older browsers require +[shims to provide missing functions](http://oss.sheetjs.com/js-xlsx/shim.js). + +To use the shim, add the shim before the script tag that loads `xlsx.js`: + +```html + + + + +``` + diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/54_shobject.md b/src/main/webapp/bower_components/js-xlsx/docbits/54_shobject.md index 3dd7700e04..483b7601a7 100644 --- a/src/main/webapp/bower_components/js-xlsx/docbits/54_shobject.md +++ b/src/main/webapp/bower_components/js-xlsx/docbits/54_shobject.md @@ -60,3 +60,13 @@ Chartsheets are represented as standard sheets. They are distinguished with the The underlying data and `!ref` refer to the cached data in the chartsheet. The first row of the chartsheet is the underlying header. +#### Macrosheet Object + +Macrosheets are represented as standard sheets. They are distinguished with the +`!type` property set to `"macro"`. + +#### Dialogsheet Object + +Dialogsheets are represented as standard sheets. They are distinguished with the +`!type` property set to `"dialog"`. + diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/77_macrovba.md b/src/main/webapp/bower_components/js-xlsx/docbits/77_macrovba.md new file mode 100644 index 0000000000..93f3e84aad --- /dev/null +++ b/src/main/webapp/bower_components/js-xlsx/docbits/77_macrovba.md @@ -0,0 +1,31 @@ +#### VBA and Macros + +VBA Macros are stored in a special data blob that is exposed in the `vbaraw` +property of the workbook object when the `bookVBA` option is `true`. They are +supported in `XLSM`, `XLSB`, and `BIFF8 XLS` formats. The `XLSM` and `XLSB` +writers automatically insert the data blobs if it is present in the workbook. + +
    + Macrosheets (click to show) + +Older versions of Excel also supported a non-VBA "macrosheet" sheet type that +stored automation commands. These are exposed in objects with the `!type` +property set to `"macro"`. + +
    + +
    + Detecting macros in workbooks (click to show) + +The `vbaraw` field will only be set if macros are present, so testing is simple: + +```js +function wb_has_macro(wb/*:workbook*/)/*:boolean*/ { + if(!!wb.vbaraw) return true; + const sheets = wb.SheetNames.map((n) => wb.Sheets[n]); + return sheets.some((ws) => !!ws && ws['!type']=='macro'); +} +``` + +
    + diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/80_parseopts.md b/src/main/webapp/bower_components/js-xlsx/docbits/80_parseopts.md index 00269d099b..625ecc752d 100644 --- a/src/main/webapp/bower_components/js-xlsx/docbits/80_parseopts.md +++ b/src/main/webapp/bower_components/js-xlsx/docbits/80_parseopts.md @@ -36,7 +36,9 @@ The exported `read` and `readFile` functions accept an options argument: - `sheetRows-1` rows will be generated when looking at the JSON object output (since the header row is counted as a row when parsing the data) - `bookVBA` merely exposes the raw VBA CFB object. It does not parse the data. - XLSM and XLSB store the VBA CFB object in `xl/vbaProject.bin`. + XLSM and XLSB store the VBA CFB object in `xl/vbaProject.bin`. BIFF8 XLS mixes + the VBA entries alongside the core Workbook entry, so the library generates a + new XLSB-compatible blob from the XLS CFB container. - Currently only XOR encryption is supported. Unsupported error will be thrown for files employing other encryption methods. - WTF is mainly for development. By default, the parser will suppress read @@ -95,8 +97,9 @@ Plain text format guessing follows the priority order: | XML | starts with `<` | | RTF | starts with `{\rt` | | DSV | starts with `/sep=.$/`, separator is the specified character | -| CSV | more unquoted `","` characters than `"\t"` chars in the first 1024 | -| TSV | one of the first 1024 characters is a tab char `"\t"` | +| DSV | more unquoted `";"` chars than `"\t"` or `","` in the first 1024 | +| TSV | more unquoted `"\t"` chars than `","` chars in the first 1024 | +| CSV | one of the first 1024 characters is a comma `","` | | PRN | (default) | - HTML tags include: `html`, `table`, `head`, `meta`, `script`, `style`, `div` diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/81_writeopts.md b/src/main/webapp/bower_components/js-xlsx/docbits/81_writeopts.md index 2454bbcb2f..02f8020e5e 100644 --- a/src/main/webapp/bower_components/js-xlsx/docbits/81_writeopts.md +++ b/src/main/webapp/bower_components/js-xlsx/docbits/81_writeopts.md @@ -36,6 +36,7 @@ output formats. The specific file type is controlled with `bookType` option: | `xlsm` | `.xlsm` | ZIP | multi | Excel 2007+ Macro XML Format | | `xlsb` | `.xlsb` | ZIP | multi | Excel 2007+ Binary Format | | `biff8` | `.xls` | CFB | multi | Excel 97-2004 Workbook Format | +| `biff5` | `.xls` | CFB | multi | Excel 5.0/95 Workbook Format | | `biff2` | `.xls` | none | single | Excel 2.0 Worksheet Format | | `xlml` | `.xls` | none | multi | Excel 2003-2004 (SpreadsheetML) | | `ods` | `.ods` | ZIP | multi | OpenDocument Spreadsheet | @@ -45,6 +46,7 @@ output formats. The specific file type is controlled with `bookType` option: | `sylk` | `.sylk` | none | single | Symbolic Link (SYLK) | | `html` | `.html` | none | single | HTML Document | | `dif` | `.dif` | none | single | Data Interchange Format (DIF) | +| `rtf` | `.rtf` | none | single | Rich Text Format (RTF) | | `prn` | `.prn` | none | single | Lotus Formatted Text | - `compression` only applies to formats with ZIP containers. diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/85_filetype.md b/src/main/webapp/bower_components/js-xlsx/docbits/85_filetype.md index f7a660b534..a212184cfe 100644 --- a/src/main/webapp/bower_components/js-xlsx/docbits/85_filetype.md +++ b/src/main/webapp/bower_components/js-xlsx/docbits/85_filetype.md @@ -9,7 +9,7 @@ Despite the library name `xlsx`, it supports numerous spreadsheet file formats: | Excel 2007+ Binary Format (XLSB BIFF12) | :o: | :o: | | Excel 2003-2004 XML Format (XML "SpreadsheetML") | :o: | :o: | | Excel 97-2004 (XLS BIFF8) | :o: | :o: | -| Excel 5.0/95 (XLS BIFF5) | :o: | | +| Excel 5.0/95 (XLS BIFF5) | :o: | :o: | | Excel 4.0 (XLS/XLW BIFF4) | :o: | | | Excel 3.0 (XLS BIFF3) | :o: | | | Excel 2.0/2.1 (XLS BIFF2) | :o: | :o: | @@ -28,6 +28,7 @@ Despite the library name `xlsx`, it supports numerous spreadsheet file formats: | Quattro Pro Spreadsheet (WQ1/WQ2/WB1/WB2/WB3/QPW) | :o: | | | **Other Common Spreadsheet Output Formats** |:-----:|:-----:| | HTML Tables | :o: | :o: | +| Rich Text Format tables (RTF) | | :o: | ### Excel 2007+ XML (XLSX/XLSM) @@ -251,3 +252,14 @@ the metadata the output is valid HTML, although it does accept bare `&` symbols. +#### Rich Text Format (RTF) + +
    + (click to show) + +Excel RTF worksheets are stored in clipboard when copying cells or ranges from a +worksheet. The supported codes are a subset of the Word RTF support. + +
    + + diff --git a/src/main/webapp/bower_components/js-xlsx/docbits/98_reference.md b/src/main/webapp/bower_components/js-xlsx/docbits/98_reference.md index 1aaa35664c..c70b4e8fbb 100644 --- a/src/main/webapp/bower_components/js-xlsx/docbits/98_reference.md +++ b/src/main/webapp/bower_components/js-xlsx/docbits/98_reference.md @@ -22,6 +22,7 @@ - `MS-XLSB`: Excel (.xlsb) Binary File Format - `MS-XLSX`: Excel (.xlsx) Extensions to the Office Open XML SpreadsheetML File Format - `XLS`: Microsoft Office Excel 97-2007 Binary File Format Specification + - `RTF`: Rich Text Format diff --git a/src/main/webapp/bower_components/js-xlsx/formats.dot b/src/main/webapp/bower_components/js-xlsx/formats.dot index e87866d807..7b30f6621d 100644 --- a/src/main/webapp/bower_components/js-xlsx/formats.dot +++ b/src/main/webapp/bower_components/js-xlsx/formats.dot @@ -25,6 +25,7 @@ digraph G { dif [label="DIF"]; slk [label="SYLK"]; prn [label="PRN"]; + rtf [label="RTF"]; wk1 [label="WK1/2\n123"]; wk3 [label="WK3/4"]; wqb [label="WQ*\nWB*"]; @@ -39,6 +40,7 @@ digraph G { xlsb -> csf csf -> xlml xlml -> csf + csf -> xls5 xls5 -> csf csf -> xls8 xls8 -> csf @@ -62,6 +64,7 @@ digraph G { wk1 -> csf wqb -> csf dif -> csf + csf -> rtf prn -> csf csf -> prn csv -> csf diff --git a/src/main/webapp/bower_components/js-xlsx/formats.png b/src/main/webapp/bower_components/js-xlsx/formats.png index c6ff2d100d..c424384953 100644 Binary files a/src/main/webapp/bower_components/js-xlsx/formats.png and b/src/main/webapp/bower_components/js-xlsx/formats.png differ diff --git a/src/main/webapp/bower_components/js-xlsx/index.html b/src/main/webapp/bower_components/js-xlsx/index.html index bdb3254eda..1d57b27ff6 100644 --- a/src/main/webapp/bower_components/js-xlsx/index.html +++ b/src/main/webapp/bower_components/js-xlsx/index.html @@ -54,7 +54,7 @@ - - - + + + @@ -218,6 +218,7 @@ + @@ -240,7 +241,7 @@ - + diff --git a/src/main/webapp/scripts/app.constants.js b/src/main/webapp/scripts/app.constants.js index 2dc13e15ae..c3d2e0a8be 100644 --- a/src/main/webapp/scripts/app.constants.js +++ b/src/main/webapp/scripts/app.constants.js @@ -6,7 +6,7 @@ angular.module('metadatamanagementApp') .constant('ENV', 'local') -.constant('VERSION', '1.0.55') +.constant('VERSION', '1.0.56') .constant('ElasticSearchProperties', {apiVersion:'5.1',logLevel:'error',pageSize:10}) diff --git a/src/main/webapp/scripts/app.js b/src/main/webapp/scripts/app.js index c7091a1bd8..0d1007dafd 100644 --- a/src/main/webapp/scripts/app.js +++ b/src/main/webapp/scripts/app.js @@ -156,7 +156,7 @@ angular // Initialize angular-translate $translateProvider.preferredLanguage('de'); $translateProvider.useCookieStorage(); - $translateProvider.useSanitizeValueStrategy('escaped'); + $translateProvider.useSanitizeValueStrategy(null); $translateProvider .addInterpolation('$translateMessageFormatInterpolation'); $translateProvider diff --git a/src/main/webapp/scripts/common/i18n/configuration/translations-de.js b/src/main/webapp/scripts/common/i18n/configuration/translations-de.js index d6d2aa950f..ff267b0120 100644 --- a/src/main/webapp/scripts/common/i18n/configuration/translations-de.js +++ b/src/main/webapp/scripts/common/i18n/configuration/translations-de.js @@ -266,7 +266,11 @@ angular.module('metadatamanagementApp').config( 'file-size-limit-exceeded': 'Die Datei "{{ entity }}" ist größer 10MB!' }, 'server-error': { - 'internal-server-error': 'Sorry, etwas ist schief gelaufen :-( ({{ status }}).' + 'internal-server-error': 'Sorry, etwas ist schief gelaufen :-( ({{ status }}).', + 'freemarker': { + 'parsing-error': 'Bei Freemarker trat ein Parsingproblem in Datei "{{entity}}" auf (Zeile, Zeichen): {{invalidValue}}', + 'invalid-reference-error': 'Bei einem Freemarkerskript liegt eine unbekannte Referenz in der Datei "{{entity}}" vor (Zeile, Zeichen): {{invalidValue}}' + } }, 'client-error': { 'unauthorized-error': 'Sie sind nicht berechtigt diese Aktion durchzuführen (Status {{ status }}).', diff --git a/src/main/webapp/scripts/common/i18n/configuration/translations-en.js b/src/main/webapp/scripts/common/i18n/configuration/translations-en.js index 1a8398fcf3..e519cb510f 100644 --- a/src/main/webapp/scripts/common/i18n/configuration/translations-en.js +++ b/src/main/webapp/scripts/common/i18n/configuration/translations-en.js @@ -142,7 +142,7 @@ angular.module('metadatamanagementApp').config( 'skip-navigation-tooltip': 'Click to skip menu', 'back-to-search': 'Click to show search page', 'language': 'Language', - 'data-access':'Data Access', + 'data-access': 'Data Access', 'disclosure': 'Disclosure', 'notepad': 'Notepad' }, @@ -266,7 +266,11 @@ angular.module('metadatamanagementApp').config( 'file-size-limit-exceeded': 'The file "{{ entity }}" exceeds the limit of 10MB!' }, 'server-error': { - 'internal-server-error': 'Sorry, something went wrong :-( ({{ status }}).' + 'internal-server-error': 'Sorry, something went wrong :-( ({{ status }}).', + 'freemarker': { + 'parsing-error': 'There is a parsing problem by Freemarker in file "{{entity}}" (Line, Column): {{invalidValue}}', + 'invalid-reference-error': 'There is a invalid reference in the Freemarker script in file "{{entity}}" (Line, Column): {{invalidValue}}' + } }, 'client-error': { 'unauthorized-error': 'You are not authorized to do this (Status {{ status }}).', diff --git a/src/main/webapp/scripts/common/i18n/services/language.service.js b/src/main/webapp/scripts/common/i18n/services/language.service.js index 3fea116963..ae492e2096 100644 --- a/src/main/webapp/scripts/common/i18n/services/language.service.js +++ b/src/main/webapp/scripts/common/i18n/services/language.service.js @@ -22,7 +22,11 @@ angular.module('metadatamanagementApp').factory('LanguageService', }, setCurrent: function(language) { + if ($rootScope.currentLanguage === language) { + return; + } $rootScope.currentLanguage = language; + $rootScope.$broadcast('current-language-changed', language); $translate.storage().set('NG_TRANSLATE_LANG_KEY', language); tmhDynamicLocale.set(language).then(function() { $translate.use(language); diff --git a/src/main/webapp/scripts/common/joblogging/services/jobLogging.service.js b/src/main/webapp/scripts/common/joblogging/services/jobLogging.service.js index 541c18e3c5..3833bbde03 100644 --- a/src/main/webapp/scripts/common/joblogging/services/jobLogging.service.js +++ b/src/main/webapp/scripts/common/joblogging/services/jobLogging.service.js @@ -126,8 +126,6 @@ angular.module('metadatamanagementApp').service('JobLoggingService', //log cancellation of the entire job var cancel = function(cancelMsg, translationParams, objectType) { job.state = 'cancelled'; - job.errors++; - job.total++; job.logMessages.push({ message: cancelMsg, translationParams: translationParams, diff --git a/src/main/webapp/scripts/common/plotly/plotly.service.js b/src/main/webapp/scripts/common/plotly/plotly.service.js new file mode 100644 index 0000000000..c0f5aa8052 --- /dev/null +++ b/src/main/webapp/scripts/common/plotly/plotly.service.js @@ -0,0 +1,50 @@ +'use strict'; +/* global Plotly*/ + +angular.module('metadatamanagementApp').factory('Plotly', + function($rootScope, LanguageService) { + var locales = { + de: Plotly.d3.locale({ + decimal: ',', + thousands: '.', + grouping: [3], + currency: ['€', ''], + dateTime: '%a %b %e %X %Y', + date: '%m.%d.%Y', + time: '%H:%M:%S', + periods: ['AM', 'PM'], + days: ['Sontag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', + 'Freitag', 'Samstag'], + shortDays: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], + months: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + shortMonths: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', + 'Sep', 'Okt', 'Nov', 'Dez'] + }), + en: Plotly.d3.locale({ + decimal: '.', + thousands: ',', + grouping: [3], + currency: ['$', ''], + dateTime: '%a %b %e %X %Y', + date: '%Y-%m-%d', + time: '%H:%M:%S', + periods: ['AM', 'PM'], + days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + months: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', + 'Sep', 'Oct', 'Nov', 'Dec'] + }), + }; + var plotlyService = Plotly; + Plotly.d3.format = locales[LanguageService.getCurrentInstantly()] + .numberFormat; + $rootScope.$on('current-language-changed', + function(event, newLanguage) { // jshint ignore:line + Plotly.d3.format = locales[newLanguage].numberFormat; + }); + return plotlyService; + }); diff --git a/src/main/webapp/scripts/common/toolbar/views/toolbar.html.tmpl b/src/main/webapp/scripts/common/toolbar/views/toolbar.html.tmpl index cf6f8f4390..8ca7aac5da 100644 --- a/src/main/webapp/scripts/common/toolbar/views/toolbar.html.tmpl +++ b/src/main/webapp/scripts/common/toolbar/views/toolbar.html.tmpl @@ -10,8 +10,8 @@
    - {{item.icon}} - + {{item.icon}} + {{item.type | translate}} ({{item.tabName | translate}}) {{item.id}} @@ -29,15 +29,15 @@ - {{item.icon}} - + {{item.icon}} + {{item.type | translate}} {{item.notFound}} forward - {{item.icon}} - + {{item.icon}} + {{item.type | translate}} ({{item.tabName | translate}}) {{item.id}} diff --git a/src/main/webapp/scripts/datasetmanagement/services/dataSetReport.service.js b/src/main/webapp/scripts/datasetmanagement/services/dataSetReport.service.js index f13dab9d64..b7e5ca7b76 100644 --- a/src/main/webapp/scripts/datasetmanagement/services/dataSetReport.service.js +++ b/src/main/webapp/scripts/datasetmanagement/services/dataSetReport.service.js @@ -48,7 +48,9 @@ angular.module('metadatamanagementApp').service('DataSetReportService', .trim(); } var messageParams = { - invalidValue: invalidValue + invalidValue: invalidValue, + entity: error.entity, + property: error.property }; JobLoggingService.error({ message: error.message, diff --git a/src/main/webapp/scripts/variablemanagement/configuration/translations-de.js b/src/main/webapp/scripts/variablemanagement/configuration/translations-de.js index b0050d776c..95fc958918 100644 --- a/src/main/webapp/scripts/variablemanagement/configuration/translations-de.js +++ b/src/main/webapp/scripts/variablemanagement/configuration/translations-de.js @@ -266,6 +266,10 @@ angular.module('metadatamanagementApp').config( 'not-null': 'Der Datentyp der Variable darf nicht leer sein!', 'valid-data-type': 'Die Werte für Datentyp sind nicht gültig. Erlaubt in deutsch: string, numerisch, datum. Erlaubt in englisch: string, numeric, date.' }, + 'storage-type': { + 'not-null': 'Der Storage Typ der Variable darf nicht leer sein!', + 'valid-storage-type': 'Der Storage Typ ist ungültig. Erlaubt in sind: "logical", "integer", "double", "complex", "character", "raw", "list", "NULL", "closure", "special", "builtin", "environment", "S4", "symbol", "pairlist", "promise", "language", "char", "...", "any", "expression", "externalptr", "bytecode" und "weakref"!' + }, 'scaleLevel': { 'valid-scale-level': 'Die Werte für das Skalenniveau sind nicht gültig. Erlaubt in deutsch: nominal, ordinal, intervall, verhältnis.Erlaubt in englisch: nominal, ordinal, interval, ratio.', 'not-null': 'Das Skalenniveau einer Variable darf nicht leer sein!' diff --git a/src/main/webapp/scripts/variablemanagement/configuration/translations-en.js b/src/main/webapp/scripts/variablemanagement/configuration/translations-en.js index 53976e11d3..788a64eb77 100644 --- a/src/main/webapp/scripts/variablemanagement/configuration/translations-en.js +++ b/src/main/webapp/scripts/variablemanagement/configuration/translations-en.js @@ -266,6 +266,10 @@ angular.module('metadatamanagementApp').config( 'not-null': 'The data type of the Variable must not be empty!', 'valid-data-type': 'The value for data type is not valid. Allowed values in english: string, numerisch, datum. Allowed values in english: string, numeric, date.' }, + 'storage-type': { + 'not-null': 'The storage type of the Variable must not be empty!', + 'valid-storage-type': 'The storage type is invalid. Valid values are: "logical", "integer", "double", "complex", "character", "raw", "list", "NULL", "closure", "special", "builtin", "environment", "S4", "symbol", "pairlist", "promise", "language", "char", "...", "any", "expression", "externalptr", "bytecode" and "weakref"!' + }, 'scaleLevel': { 'valid-scale-level': 'The values for Scale Level are not valid. Allowed values in german: ordinal, nominal, intervall, verhältnis. Allowed values in english: ordinal, nominal, interval, ratio.', 'not-null': 'The scale level of a variable must not be empty!' diff --git a/src/main/webapp/scripts/variablemanagement/directives/diagram.directive.js b/src/main/webapp/scripts/variablemanagement/directives/diagram.directive.js index cf8c8bf0f7..910c033b65 100644 --- a/src/main/webapp/scripts/variablemanagement/directives/diagram.directive.js +++ b/src/main/webapp/scripts/variablemanagement/directives/diagram.directive.js @@ -1,10 +1,9 @@ -/* global Plotly*/ /* global document */ /* global _*/ 'use strict'; angular.module('metadatamanagementApp').directive('diagram', - function($window, $timeout, $filter) { + function($window, $timeout, $filter, Plotly) { var link = function(scope, element) { scope.isNotLoaded = true; var data = [{ @@ -17,16 +16,33 @@ angular.module('metadatamanagementApp').directive('diagram', $timeout(function() { var layout = { margin: { - l: 35, - r: 35, - t: 15, + l: 40, + r: 40, + t: 30, b: 30 }, width: document.getElementById('diagramContainer').offsetWidth - - 10 + 10, + yaxis: { + tickformat: ',d' + }, + xaxis: { + } }; - if (scope.language === 'de') { - layout.separators = ',.'; + if (scope.variable.dataType.en === 'numeric') { + if (scope.variable.storageType === 'integer') { + if (scope.variable.doNotDisplayThousandsSeparator) { + layout.xaxis.tickformat = 'd'; + } else { + layout.xaxis.tickformat = ',d'; + } + } else { + if (scope.variable.doNotDisplayThousandsSeparator) { + layout.xaxis.tickformat = '.2f'; + } else { + layout.xaxis.tickformat = ',.2f'; + } + } } scope.isNotLoaded = false; if (angular.element('diagram').length > 0) { @@ -40,38 +56,58 @@ angular.module('metadatamanagementApp').directive('diagram', } }, 1000); }; - switch (scope.type) { + switch (scope.variable.scaleLevel.en) { case 'verhältnis': case 'ratio': - if (scope.distribution.histogram) { - var size = (scope.distribution.histogram.end - - scope.distribution.histogram.start) / - scope.distribution.histogram.numberOfBins; + if (scope.variable.distribution.histogram) { + var size = Math.abs(scope.variable.distribution.histogram.end - + scope.variable.distribution.histogram.start) / + scope.variable.distribution.histogram.numberOfBins; data[0].x = []; data[0].type = 'histogram'; data[0].autobinx = false; data[0].xbins = { - start: scope.distribution.histogram.start, - end: scope.distribution.histogram.end, + start: scope.variable.distribution.histogram.start, + end: scope.variable.distribution.histogram.end, size: size }; data[0].hoverinfo = 'text+y'; data[0].text = []; - for (var i = 0; i < scope.distribution.histogram.numberOfBins; - i++) { - data[0].text.push('[' + $filter('number')(scope.distribution - .histogram.start + size * i, 2) + '; ' + - $filter('number')(scope.distribution.histogram.start + - size * (i + 1), 2) + ')'); - } - if (scope.distribution.validResponses) { - for (var j = 0; j < scope.distribution.validResponses.length; + var relativeFrequencies = new Array( + scope.variable.distribution.histogram.numberOfBins); + if (scope.variable.distribution.validResponses) { + for (var j = 0; + j < scope.variable.distribution.validResponses.length; j++) { - for (var k = 0; k < scope.distribution.validResponses[j] + var binIndex = + Math.floor( + (scope.variable.distribution.validResponses[j].value - + scope.variable.distribution.histogram.start) / size); + relativeFrequencies[binIndex] = + relativeFrequencies[binIndex] ? + relativeFrequencies[binIndex] + scope.variable.distribution + .validResponses[j].validRelativeFrequency : + scope.variable.distribution + .validResponses[j].validRelativeFrequency; + for (var k = 0; + k < scope.variable.distribution.validResponses[j] .absoluteFrequency; k++) { - data[0].x.push(scope.distribution.validResponses[j].value); + data[0].x.push( + scope.variable.distribution.validResponses[j].value); } } + for (var i = 0; i < relativeFrequencies.length; i++) { + var left = + scope.variable.distribution.histogram.start + size * i; + var right = scope.variable.distribution.histogram.start + + size * (i + 1); + var relativeFrequency = + $filter('number')(relativeFrequencies[i] || 0, 2) + ' %'; + data[0].text.push(relativeFrequency + + '
    [' + $filter('number')(left, 2) + + '; ' + + $filter('number')(right, 2) + ')'); + } } } break; @@ -80,19 +116,23 @@ angular.module('metadatamanagementApp').directive('diagram', data[0].text = []; data[0].y = []; data[0].type = 'bar'; - if (scope.distribution.validResponses) { - scope.distribution.validResponses.forEach(function(obj) { - var filteredText = $filter('variableDataType')(obj.value, - scope.datatype); - if (scope.datatype !== 'numeric') { + if (scope.variable.distribution.validResponses) { + scope.variable.distribution.validResponses.forEach(function(obj) { + var filteredText = $filter('formatResponse')(obj.value, + scope.variable); + var relativeFrequency = + $filter('number')(obj.validRelativeFrequency, 2) + ' %'; + if (scope.variable.dataType.en !== 'numeric') { data[0].x.push(filteredText); } else { data[0].x.push(obj.value); } - try { - data[0].text.push(obj.label[scope.language]); - } catch (e) { - data[0].text.push(filteredText); + if (obj.label[scope.language]) { + data[0].text.push(relativeFrequency + + '
    ' + obj.label[scope.language]); + } else { + data[0].text.push(relativeFrequency + + '
    ' + filteredText); } data[0].y.push(obj.absoluteFrequency); }); @@ -117,10 +157,8 @@ angular.module('metadatamanagementApp').directive('diagram', templateUrl: 'scripts/variablemanagement/directives/diagram.html.tmpl', link: link, scope: { - distribution: '=', language: '=', - type: '=', - datatype: '=' + variable: '=' } }; }); diff --git a/src/main/webapp/scripts/variablemanagement/filter/format-response.filter.js b/src/main/webapp/scripts/variablemanagement/filter/format-response.filter.js new file mode 100644 index 0000000000..e394f8c3b4 --- /dev/null +++ b/src/main/webapp/scripts/variablemanagement/filter/format-response.filter.js @@ -0,0 +1,38 @@ +/* global _ */ +'use strict'; + +angular.module('metadatamanagementApp').filter('formatResponse', + function($filter, LanguageService) { + return function(value, variable, forceDouble) { + + //Data Type is Numeric + if (variable.dataType.en === 'numeric') { + if (!forceDouble && variable.storageType === 'integer') { + if (variable.doNotDisplayThousandsSeparator) { + return value; + } else { + return $filter('number')(value, 0); + } + } else { + if (variable.doNotDisplayThousandsSeparator) { + if (LanguageService.getCurrentInstantly() === 'de') { + return _.replace( + $filter('number')(value, 2), new RegExp('\\.','g'), ''); + } else { + return _.replace( + $filter('number')(value, 2), new RegExp(',','g'), ''); + } + } else { + return $filter('number')(value, 2); + } + } + } + + //Date Type is Date + if (variable.dataType.en === 'date') { + return $filter('date')(value, 'mediumDate'); + } + + return value; + }; + }); diff --git a/src/main/webapp/scripts/variablemanagement/filter/variable-datatype.filter.js b/src/main/webapp/scripts/variablemanagement/filter/variable-datatype.filter.js deleted file mode 100644 index 8981ea9c1f..0000000000 --- a/src/main/webapp/scripts/variablemanagement/filter/variable-datatype.filter.js +++ /dev/null @@ -1,28 +0,0 @@ -/*Author: Daniel Katzberg */ -'use strict'; - -angular.module('metadatamanagementApp').filter('variableDataType', - //Filter Function - function($filter) { - //Just use the english translation for dataType - //Input is the expression on the left side at the html - return function(input, dataTypeEn) { - - //Data Type is Numeric - if (dataTypeEn === 'numeric') { - if (input % 1 === 0 && !input.includes('.') && !input.includes(',')) { - return input; //whole number. no filter is needed. - } else { //commata number - return $filter('number')(input, 2); - } - } - - //Date Type is Date - if (dataTypeEn === 'date') { - return $filter('date')(input, 'mediumDate'); - } - - //No Date and no numeric Data Type? Return the default String - return input; - }; - }); diff --git a/src/main/webapp/scripts/variablemanagement/services/variableBuilder.service.js b/src/main/webapp/scripts/variablemanagement/services/variableBuilder.service.js index e5973e4f1b..08df8a683b 100644 --- a/src/main/webapp/scripts/variablemanagement/services/variableBuilder.service.js +++ b/src/main/webapp/scripts/variablemanagement/services/variableBuilder.service.js @@ -7,7 +7,6 @@ angular.module('metadatamanagementApp').service('VariableBuilderService', VariableIdBuilderService, InstrumentIdBuilderService) { var buildVariable = function(variableFromExcel, variableFromJson, dataSet, variableIndex) { - console.log('VariableIndex: ' + variableIndex); var dataAcquisitionProjectId = dataSet.dataAcquisitionProjectId; var variableObj = { id: VariableIdBuilderService.buildVariableId( @@ -50,6 +49,7 @@ angular.module('metadatamanagementApp').service('VariableBuilderService', variableFromExcel.relatedVariables), label: variableFromJson.label, dataType: variableFromJson.dataType, + storageType: variableFromJson.storageType, scaleLevel: variableFromJson.scaleLevel, relatedQuestions: [], surveyNumbers: variableFromJson.surveyNumbers, @@ -58,7 +58,9 @@ angular.module('metadatamanagementApp').service('VariableBuilderService', distribution: variableFromJson.distribution, dataSetId: DataSetIdBuilderService.buildDataSetId( dataAcquisitionProjectId, dataSet.dataSetNumber), - dataSetNumber: dataSet.dataSetNumber + dataSetNumber: dataSet.dataSetNumber, + doNotDisplayThousandsSeparator: + variableFromExcel.doNotDisplayThousandsSeparator }; _.forEach(variableObj.surveyNumbers, function(number) { variableObj.surveyIds diff --git a/src/main/webapp/scripts/variablemanagement/views/variable-detail.html.tmpl b/src/main/webapp/scripts/variablemanagement/views/variable-detail.html.tmpl index aec342f044..06223382c5 100644 --- a/src/main/webapp/scripts/variablemanagement/views/variable-detail.html.tmpl +++ b/src/main/webapp/scripts/variablemanagement/views/variable-detail.html.tmpl @@ -219,7 +219,7 @@
    - +
    @@ -236,19 +236,19 @@
    {{'variable-management.detail.label.statistics.validResponses' | translate}}: {{variable.distribution.validResponses.length}}
    - {{'variable-management.detail.label.statistics.minimum' | translate}} (min): {{variable.distribution.statistics.minimum | variableDataType: variable.dataType.en}} + {{'variable-management.detail.label.statistics.minimum' | translate}} (min): {{variable.distribution.statistics.minimum | formatResponse: variable}}
    - {{'variable-management.detail.label.statistics.maximum' | translate}} (max): {{variable.distribution.statistics.maximum | variableDataType: variable.dataType.en}} + {{'variable-management.detail.label.statistics.maximum' | translate}} (max): {{variable.distribution.statistics.maximum | formatResponse: variable}}

    {{'variable-management.detail.label.central-tendency' | translate}}

    - {{'variable-management.detail.label.statistics.mean-value' | translate}} (\bar x): {{variable.distribution.statistics.meanValue | number:2}} + {{'variable-management.detail.label.statistics.mean-value' | translate}} (\bar x): {{variable.distribution.statistics.meanValue | formatResponse: variable:true}}
    - {{'variable-management.detail.label.statistics.median' | translate}} (\tilde x): {{variable.distribution.statistics.median | variableDataType: variable.dataType.en}} + {{'variable-management.detail.label.statistics.median' | translate}} (\tilde x): {{variable.distribution.statistics.median | formatResponse: variable}}
    {{'variable-management.detail.label.statistics.mode' | translate}} (h): {{variable.distribution.statistics.mode}} @@ -321,7 +321,7 @@ - {{row.value | variableDataType: variable.dataType.en}}{{row.code | number:0}}  + {{row.value | formatResponse: variable}}{{row.code | number:0}}    {{row.absoluteFrequency | number:0}}  @@ -330,7 +330,7 @@ {{row.relativeFrequency | number:2}} % - + ... ... ... diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nStringTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nStringTest.java index ee2890a2f2..8a86aea402 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nStringTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/I18nStringTest.java @@ -9,8 +9,6 @@ import org.junit.Test; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; - /** * @author Daniel Katzberg * @@ -20,7 +18,7 @@ public class I18nStringTest { @Test public void testHashCode() { // Arrange - I18nString i18nString = new I18nStringBuilder().build(); + I18nString i18nString = I18nString.builder().build(); // Act int hashCodeWithoutDeEn = i18nString.hashCode(); @@ -45,8 +43,8 @@ public void testEquals() { String de2 = "de2"; String en1 = "en1"; String en2 = "en2"; - I18nString i18nString1 = new I18nStringBuilder().build(); - I18nString i18nString2 = new I18nStringBuilder().build(); + I18nString i18nString1 = I18nString.builder().build(); + I18nString i18nString2 = I18nString.builder().build(); // Act boolean checkNull = i18nString1.equals(null); diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/PeriodTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/PeriodTest.java index 19779e18c8..02ef937850 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/PeriodTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/domain/PeriodTest.java @@ -11,8 +11,6 @@ import org.junit.Test; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.PeriodBuilder; - /** * @author Daniel Katzberg * @@ -23,7 +21,7 @@ public class PeriodTest { public void testHashCode() { // Arrange - Period period = new PeriodBuilder().build(); + Period period = Period.builder().build(); // Act int hashCodeWithoutStartEnd = period.hashCode(); @@ -54,8 +52,8 @@ public void testEquals() { LocalDate startTime2 = LocalDate.now() .minusDays(1); LocalDate endTime2 = LocalDate.now(); - Period period1 = new PeriodBuilder().build(); - Period period2 = new PeriodBuilder().build(); + Period period1 = Period.builder().build(); + Period period2 = Period.builder().build(); // Act boolean checkNull = period1.equals(null); diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestCreateDomainObjectUtils.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestCreateDomainObjectUtils.java index 58bd95ff60..775d11afcb 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestCreateDomainObjectUtils.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestCreateDomainObjectUtils.java @@ -10,45 +10,29 @@ import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.ImageType; +import eu.dzhw.fdz.metadatamanagement.common.domain.Period; import eu.dzhw.fdz.metadatamanagement.common.domain.Person; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.PeriodBuilder; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.PersonBuilder; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.DataSet; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.DataSetAttachmentMetadata; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.DataSetTypes; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.Format; import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.SubDataSet; -import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.builders.DataSetAttachmentMetadataBuilder; -import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.builders.DataSetBuilder; -import eu.dzhw.fdz.metadatamanagement.datasetmanagement.domain.builders.SubDataSetBuilder; import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.Instrument; import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.InstrumentAttachmentMetadata; import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.InstrumentAttachmentTypes; -import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.builders.InstrumentAttachmentMetadataBuilder; -import eu.dzhw.fdz.metadatamanagement.instrumentmanagement.domain.builders.InstrumentBuilder; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.DataAcquisitionProject; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.Release; -import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.builders.DataAcquisitionProjectBuilder; -import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.builders.ReleaseBuilder; import eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.Question; import eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.QuestionTypes; import eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.TechnicalRepresentation; -import eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.builders.QuestionBuilder; -import eu.dzhw.fdz.metadatamanagement.questionmanagement.domain.builders.TechnicalRepresentationBuilder; import eu.dzhw.fdz.metadatamanagement.relatedpublicationmanagement.domain.RelatedPublication; -import eu.dzhw.fdz.metadatamanagement.relatedpublicationmanagement.domain.builders.RelatedPublicationBuilder; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.DataAvailabilities; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.Study; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.StudyAttachmentMetadata; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.StudyAttachmentTypes; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.SurveyDesigns; -import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.builders.StudyAttachmentMetadataBuilder; -import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.builders.StudyBuilder; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.Survey; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.SurveyAttachmentMetadata; -import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.builders.SurveyAttachmentMetadataBuilder; -import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.builders.SurveyBuilder; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.AccessWays; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.DataTypes; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.Distribution; @@ -61,17 +45,9 @@ import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.RuleExpressionLanguages; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.ScaleLevels; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.Statistics; +import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.StorageTypes; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.ValidResponse; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.Variable; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.DistributionBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.FilterDetailsBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.GenerationDetailsBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.HistogramBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.MissingBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.RelatedQuestionBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.StatisticsBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.ValidResponseBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.VariableBuilder; /** * @author Daniel Katzberg @@ -85,312 +61,314 @@ public static DataAcquisitionProject buildDataAcquisitionProject() { String projectId = "testproject"; - return new DataAcquisitionProjectBuilder() - .withId(projectId) - .withHasBeenReleasedBefore(false) + return DataAcquisitionProject.builder() + .id(projectId) + .hasBeenReleasedBefore(false) .build(); } - - public static Study buildStudy(String projectId) { + + public static Study buildStudy(String projectId) { List authors = new ArrayList<>(); authors.add(buildPerson("Test", null, "Authors")); - - return new StudyBuilder() - .withId(UnitTestCreateValidIds.buildStudyId(projectId)) - .withAuthors(authors) - .withDescription(new I18nStringBuilder() - .withDe("Description De") - .withEn("Description En") + + return Study.builder() + .id(UnitTestCreateValidIds.buildStudyId(projectId)) + .authors(authors) + .description(I18nString.builder() + .de("Description De") + .en("Description En") .build()) - .withInstitution(new I18nStringBuilder() - .withDe("Institution De") - .withEn("Institution En") + .institution(I18nString.builder() + .de("Institution De") + .en("Institution En") .build()) - .withSurveySeries(new I18nStringBuilder() - .withDe("Survey Series De") - .withEn("Survey Series En") + .surveySeries(I18nString.builder() + .de("Survey Series De") + .en("Survey Series En") .build()) - .withSponsor(new I18nStringBuilder() - .withDe("Sponsor De") - .withEn("Sponsor En") + .sponsor(I18nString.builder() + .de("Sponsor De") + .en("Sponsor En") .build()) - .withSurveySeries(new I18nStringBuilder() - .withDe("Survey Series De") - .withEn("Survey Series En") + .surveySeries(I18nString.builder() + .de("Survey Series De") + .en("Survey Series En") .build()) - .withTitle(new I18nStringBuilder() - .withDe("Titel De") - .withEn("Title En") + .title(I18nString.builder() + .de("Titel De") + .en("Title En") .build()) - .withAnnotations(new I18nStringBuilder().withDe("De Anmerkungen") - .withEn("En Annotations") + .annotations(I18nString.builder().de("De Anmerkungen") + .en("En Annotations") .build()) - .withDataAvailability(DataAvailabilities.AVAILABLE) - .withSurveyDesign(SurveyDesigns.PANEL) - .withDataAcquisitionProjectId(projectId) - .withDoi("10.5072/DZHW:" + projectId) - .build(); + .dataAvailability(DataAvailabilities.AVAILABLE) + .surveyDesign(SurveyDesigns.PANEL) + .dataAcquisitionProjectId(projectId) + .doi("10.5072/DZHW:" + projectId) + .build(); } public static Survey buildSurvey(String projectId) { - return new SurveyBuilder() - .withId(UnitTestCreateValidIds.buildSurveyId(projectId, 1)) - .withDataAcquisitionProjectId(projectId) - .withStudyId(UnitTestCreateValidIds.buildStudyId(projectId)) - .withFieldPeriod(new PeriodBuilder().withStart(LocalDate.now()) - .withEnd(LocalDate.now()) + return Survey.builder() + .id(UnitTestCreateValidIds.buildSurveyId(projectId, 1)) + .dataAcquisitionProjectId(projectId) + .studyId(UnitTestCreateValidIds.buildStudyId(projectId)) + .fieldPeriod(Period.builder().start(LocalDate.now()) + .end(LocalDate.now()) .build()) - .withTitle(new I18nStringBuilder().withDe("Titel") - .withEn("title") + .title(I18nString.builder().de("Titel") + .en("title") .build()) - .withPopulation(new I18nStringBuilder().withDe("Population DE") - .withEn("Population EN") + .population(I18nString.builder().de("Population DE") + .en("Population EN") .build()) - .withSample(new I18nStringBuilder().withDe("Sample DE") - .withEn("Sample EN") + .sample(I18nString.builder().de("Sample DE") + .en("Sample EN") .build()) - .withSurveyMethod(new I18nStringBuilder().withDe("Survey Method DE") - .withEn("Survey Method EN") + .surveyMethod(I18nString.builder().de("Survey Method DE") + .en("Survey Method EN") .build()) - .withAnnotations(new I18nStringBuilder().withDe("De Anmerkungen") - .withEn("En Annotations") + .annotations(I18nString.builder().de("De Anmerkungen") + .en("En Annotations") .build()) - .withDataType(eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.DataTypes.QUALITATIVE_DATA) - .withGrossSampleSize(100) - .withSampleSize(100) - .withResponseRate(100.0) - .withNumber(1) - .withWave(1) + .dataType(eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.DataTypes.QUALITATIVE_DATA) + .grossSampleSize(100) + .sampleSize(100) + .responseRate(100.0) + .number(1) + .wave(1) .build(); } public static DataSet buildDataSet(String projectId, String surveyId, Integer surveyNumber) { List surveyNumbers = new ArrayList<>(); surveyNumbers.add(surveyNumber); - + List surveyIds = new ArrayList<>(); surveyIds.add(surveyId); - - List subDataSets = new ArrayList<>(); - subDataSets.add(new SubDataSetBuilder().withName(UnitTestCreateValidIds.buildDataSetId(projectId, 1)) - .withNumberOfObservations(1) - .withAccessWay(AccessWays.DOWNLOAD_SUF) - .withCitationHint(new I18nStringBuilder() - .withDe("Citation Hint De") - .withEn("Citation Hint En") + + List subDataSets = new ArrayList<>(); + subDataSets.add(SubDataSet.builder().name(UnitTestCreateValidIds.buildDataSetId(projectId, 1)) + .numberOfObservations(1) + .accessWay(AccessWays.DOWNLOAD_SUF) + .citationHint(I18nString.builder() + .de("Citation Hint De") + .en("Citation Hint En") .build()) - .withDescription(new I18nStringBuilder().withDe("Description DE") - .withEn("Description 3 EN") + .description(I18nString.builder().de("Description DE") + .en("Description 3 EN") .build()).build()); - subDataSets.add(new SubDataSetBuilder().withName(UnitTestCreateValidIds.buildDataSetId(projectId, 2)) - .withNumberOfObservations(1) - .withAccessWay(AccessWays.REMOTE_DESKTOP) - .withDescription(new I18nStringBuilder().withDe("Description 2 DE") - .withEn("Description 3 EN") + subDataSets.add(SubDataSet.builder().name(UnitTestCreateValidIds.buildDataSetId(projectId, 2)) + .numberOfObservations(1) + .accessWay(AccessWays.REMOTE_DESKTOP) + .description(I18nString.builder().de("Description 2 DE") + .en("Description 3 EN") .build()).build()); - subDataSets.add(new SubDataSetBuilder().withName(UnitTestCreateValidIds.buildDataSetId(projectId, 3)) - .withNumberOfObservations(1) - .withAccessWay(AccessWays.DOWNLOAD_CUF) - .withDescription(new I18nStringBuilder().withDe("Description 3 DE") - .withEn("Description 3 EN") + subDataSets.add(SubDataSet.builder().name(UnitTestCreateValidIds.buildDataSetId(projectId, 3)) + .numberOfObservations(1) + .accessWay(AccessWays.DOWNLOAD_CUF) + .description(I18nString.builder().de("Description 3 DE") + .en("Description 3 EN") .build()).build()); - subDataSets.add(new SubDataSetBuilder().withName(UnitTestCreateValidIds.buildDataSetId(projectId, 4)) - .withNumberOfObservations(1) - .withAccessWay(AccessWays.ONSITE_SUF) - .withDescription(new I18nStringBuilder().withDe("Description 4 DE") - .withEn("Description 4 EN") + subDataSets.add(SubDataSet.builder().name(UnitTestCreateValidIds.buildDataSetId(projectId, 4)) + .numberOfObservations(1) + .accessWay(AccessWays.ONSITE_SUF) + .description(I18nString.builder().de("Description 4 DE") + .en("Description 4 EN") .build()).build()); - - return new DataSetBuilder().withSurveyIds(surveyIds) - .withDataAcquisitionProjectId(projectId) - .withId(UnitTestCreateValidIds.buildDataSetId(projectId, 1)) - .withSurveyNumbers(surveyNumbers) - .withSurveyIds(surveyIds) - .withNumber(1) - .withFormat(Format.WIDE) - .withType(DataSetTypes.PERSONAL_RECORD) - .withDescription(new I18nStringBuilder().withDe("De Beschreibung") - .withEn("En Description") + + return DataSet.builder().surveyIds(surveyIds) + .dataAcquisitionProjectId(projectId) + .id(UnitTestCreateValidIds.buildDataSetId(projectId, 1)) + .surveyNumbers(surveyNumbers) + .surveyIds(surveyIds) + .number(1) + .format(Format.WIDE) + .type(DataSetTypes.PERSONAL_RECORD) + .description(I18nString.builder().de("De Beschreibung") + .en("En Description") .build()) - .withAnnotations(new I18nStringBuilder().withDe("De Anmerkungen") - .withEn("En Annotations") + .annotations(I18nString.builder().de("De Anmerkungen") + .en("En Annotations") .build()) - .withStudyId(UnitTestCreateValidIds.buildStudyId(projectId)) - .withSubDataSets(subDataSets) + .studyId(UnitTestCreateValidIds.buildStudyId(projectId)) + .subDataSets(subDataSets) .build(); - } + } public static Variable buildVariable(String projectId, Integer dataSetNumber, String name, Integer index, List surveyNumbers) { // Prepare Variable - List accessWays = new ArrayList<>(); + List accessWays = new ArrayList<>(); accessWays.add(AccessWays.DOWNLOAD_CUF); accessWays.add(AccessWays.REMOTE_DESKTOP); accessWays.add(AccessWays.DOWNLOAD_SUF); accessWays.add(AccessWays.ONSITE_SUF); - + List surveyIds = new ArrayList<>(); for(Integer surveyNumber : surveyNumbers) { surveyIds.add(UnitTestCreateValidIds.buildSurveyId(projectId, surveyNumber)); } - + List relatedVariables = new ArrayList<>(); - relatedVariables.add(UnitTestCreateValidIds.buildVariableId(projectId,dataSetNumber, "name3")); - + relatedVariables.add(UnitTestCreateValidIds.buildVariableId(projectId,dataSetNumber, "name3")); + List relatedQuestions = new ArrayList<>(); relatedQuestions.add(buildRelatedQuestion(projectId, "1", "1")); - return new VariableBuilder().withId(UnitTestCreateValidIds.buildVariableId(projectId, dataSetNumber, name)) - .withDataType(DataTypes.NUMERIC) - .withScaleLevel(ScaleLevels.RATIO) - .withDataAcquisitionProjectId(projectId) - .withStudyId(UnitTestCreateValidIds.buildStudyId(projectId)) - .withName(name) - .withDataSetId(UnitTestCreateValidIds.buildDataSetId(projectId, dataSetNumber)) - .withLabel(new I18nStringBuilder().withDe("label") - .withEn("label") + return Variable.builder().id(UnitTestCreateValidIds.buildVariableId(projectId, dataSetNumber, name)) + .dataType(DataTypes.NUMERIC) + .scaleLevel(ScaleLevels.RATIO) + .dataAcquisitionProjectId(projectId) + .studyId(UnitTestCreateValidIds.buildStudyId(projectId)) + .name(name) + .dataSetId(UnitTestCreateValidIds.buildDataSetId(projectId, dataSetNumber)) + .label(I18nString.builder().de("label") + .en("label") .build()) - .withAccessWays(accessWays) - .withSurveyNumbers(surveyNumbers) - .withSurveyIds(surveyIds) - .withIndexInDataSet(index) - .withDataSetNumber(dataSetNumber) - .withRelatedQuestions(relatedQuestions) - .withAnnotations(new I18nStringBuilder().withDe("De Beschreibung") - .withEn("En Description") + .accessWays(accessWays) + .surveyNumbers(surveyNumbers) + .surveyIds(surveyIds) + .indexInDataSet(index) + .dataSetNumber(dataSetNumber) + .relatedQuestions(relatedQuestions) + .annotations(I18nString.builder().de("De Beschreibung") + .en("En Description") .build()) - .withFilterDetails(new FilterDetailsBuilder() - .withDescription(new I18nStringBuilder().withDe("De Filterbeschreibung") - .withEn("En Filter Description") + .filterDetails(FilterDetails.builder() + .description(I18nString.builder().de("De Filterbeschreibung") + .en("En Filter Description") .build()) - .withExpressionLanguage(FilterExpressionLanguages.STATA) - .withExpression("Filter Expression") + .expressionLanguage(FilterExpressionLanguages.STATA) + .expression("Filter Expression") .build()) - .withDistribution(buildDistribution()) - .withGenerationDetails(buildGenerationDetails()) - .withRelatedVariables(relatedVariables) - .withPanelIdentifier(projectId + "-ds" + dataSetNumber + "-" + name) - .withDerivedVariablesIdentifier(projectId + "-ds" + dataSetNumber + "-" + name) + .distribution(buildDistribution()) + .generationDetails(buildGenerationDetails()) + .relatedVariables(relatedVariables) + .panelIdentifier(projectId + "-ds" + dataSetNumber + "-" + name) + .derivedVariablesIdentifier(projectId + "-ds" + dataSetNumber + "-" + name) + .storageType(StorageTypes.DOUBLE) + .doNotDisplayThousandsSeparator(true) .build(); } - + public static TechnicalRepresentation buildTechnicalRepresentation() { - return new TechnicalRepresentationBuilder() - .withLanguage("TR Language") - .withType("Technical Representation Type") - .withSource("Technical Representation Source") + return TechnicalRepresentation.builder() + .language("TR Language") + .type("Technical Representation Type") + .source("Technical Representation Source") .build(); } - - public static Question buildQuestion(String projectId, Integer instrumentNumber, + + public static Question buildQuestion(String projectId, Integer instrumentNumber, String instrumentId, String surveyId) { - return new QuestionBuilder().withDataAcquisitionProjectId(projectId) - .withId(UnitTestCreateValidIds.buildQuestionId(projectId, instrumentNumber, "123.12")) - .withAdditionalQuestionText(new I18nString("Zusätzlicher Fragetext", "Additional Question Text")) - .withDataAcquisitionProjectId(projectId) - .withImageType(ImageType.PNG) - .withInstruction(new I18nString("Instruktionen", "Instruction")) - .withInstrumentId(instrumentId) - .withIntroduction(new I18nString("Einleitung", "Introduction")) - .withNumber("123.12") - .withIndexInInstrument(1) - .withSuccessors(new ArrayList<>()) - .withQuestionText(new I18nString("Fragetext","Question text")) - .withTechnicalRepresentation(buildTechnicalRepresentation()) - .withType(QuestionTypes.SINGLE_CHOICE) - .withTopic(new I18nString("Topic De", "Topic EN")) - .withInstrumentNumber(instrumentNumber) - .withSuccessorNumbers(new ArrayList<>()) - .withAnnotations(new I18nStringBuilder().withDe("De Anmerkungen") - .withEn("En Annotations") + return Question.builder().dataAcquisitionProjectId(projectId) + .id(UnitTestCreateValidIds.buildQuestionId(projectId, instrumentNumber, "123.12")) + .additionalQuestionText(new I18nString("Zusätzlicher Fragetext", "Additional Question Text")) + .dataAcquisitionProjectId(projectId) + .imageType(ImageType.PNG) + .instruction(new I18nString("Instruktionen", "Instruction")) + .instrumentId(instrumentId) + .introduction(new I18nString("Einleitung", "Introduction")) + .number("123.12") + .indexInInstrument(1) + .successors(new ArrayList<>()) + .questionText(new I18nString("Fragetext","Question text")) + .technicalRepresentation(buildTechnicalRepresentation()) + .type(QuestionTypes.SINGLE_CHOICE) + .topic(new I18nString("Topic De", "Topic EN")) + .instrumentNumber(instrumentNumber) + .successorNumbers(new ArrayList<>()) + .annotations(I18nString.builder().de("De Anmerkungen") + .en("En Annotations") .build()) - .withStudyId(UnitTestCreateValidIds.buildStudyId(projectId)) + .studyId(UnitTestCreateValidIds.buildStudyId(projectId)) .build(); } - + public static Instrument buildInstrument(String projectId) { List surveyNumbers = new ArrayList<>(); surveyNumbers.add(1); List surveyIds = new ArrayList<>(); surveyIds.add(UnitTestCreateValidIds.buildSurveyId(projectId, 1)); - return new InstrumentBuilder().withDataAcquisitionProjectId(projectId) - .withId(UnitTestCreateValidIds.buildInstrumentId(projectId, 1)) - .withTitle(new I18nStringBuilder() - .withDe("Instrument.de") - .withEn("Instrument.en") + return Instrument.builder().dataAcquisitionProjectId(projectId) + .id(UnitTestCreateValidIds.buildInstrumentId(projectId, 1)) + .title(I18nString.builder() + .de("Instrument.de") + .en("Instrument.en") .build()) - .withSubtitle(new I18nStringBuilder() - .withDe("Instrument Untertitel de") - .withEn("Instrument Subtitle en") + .subtitle(I18nString.builder() + .de("Instrument Untertitel de") + .en("Instrument Subtitle en") .build()) - .withDescription(new I18nStringBuilder() - .withDe("Instrument.de") - .withEn("Instrument.en") + .description(I18nString.builder() + .de("Instrument.de") + .en("Instrument.en") .build()) - .withAnnotations(new I18nStringBuilder().withDe("De Anmerkungen") - .withEn("En Annotations") + .annotations(I18nString.builder().de("De Anmerkungen") + .en("En Annotations") .build()) - .withSurveyIds(surveyIds) - .withStudyId(UnitTestCreateValidIds.buildStudyId(projectId)) - .withDataAcquisitionProjectId(projectId) - .withType("CAPI") - .withNumber(1) - .withSurveyNumbers(surveyNumbers) + .surveyIds(surveyIds) + .studyId(UnitTestCreateValidIds.buildStudyId(projectId)) + .dataAcquisitionProjectId(projectId) + .type("CAPI") + .number(1) + .surveyNumbers(surveyNumbers) .build(); } public static Statistics buildStatistics() { - return new StatisticsBuilder().withFirstQuartile("70.0") - .withHighWhisker(130.0) - .withKurtosis(234.0) - .withLowWhisker(30.0) - .withMaximum("140.0") - .withMeanValue(87.5) - .withMedian("90.0") - .withMinimum("0.0") - .withSkewness(123.0) - .withStandardDeviation(40.0) - .withThirdQuartile("110.0") - .withMode("Mode") - .withDeviance(12.4) - .withMeanDeviation(58.7) + return Statistics.builder().firstQuartile("70.0") + .highWhisker(130.0) + .kurtosis(234.0) + .lowWhisker(30.0) + .maximum("140.0") + .meanValue(87.5) + .median("90.0") + .minimum("0.0") + .skewness(123.0) + .standardDeviation(40.0) + .thirdQuartile("110.0") + .mode("Mode") + .deviance(12.4) + .meanDeviation(58.7) .build(); } public static GenerationDetails buildGenerationDetails() { - return new GenerationDetailsBuilder() - .withDescription(new I18nStringBuilder().withDe("De Beschreibung") - .withEn("En Description") + return GenerationDetails.builder() + .description(I18nString.builder().de("De Beschreibung") + .en("En Description") .build()) - .withRule("Rule 123 to 234") - .withRuleExpressionLanguage(RuleExpressionLanguages.R) + .rule("Rule 123 to 234") + .ruleExpressionLanguage(RuleExpressionLanguages.R) .build(); } public static Missing buildMissing() { - return new MissingBuilder().withAbsoluteFrequency(123) - .withCode("1234") - .withLabel(new I18nStringBuilder().withDe("De Label") - .withEn("En Lable") + return Missing.builder().absoluteFrequency(123) + .code("1234") + .label(I18nString.builder().de("De Label") + .en("En Lable") .build()) - .withRelativeFrequency(43.78) + .relativeFrequency(43.78) .build(); } public static ValidResponse buildValidResponse() { - return new ValidResponseBuilder().withAbsoluteFrequency(123) - .withLabel(new I18nStringBuilder().withDe("De Label") - .withEn("En Lable") + return ValidResponse.builder().absoluteFrequency(123) + .label(I18nString.builder().de("De Label") + .en("En Lable") .build()) - .withValue("12.34") - .withRelativeFrequency(43.78) - .withValidRelativeFrequency(75.45) + .value("12.34") + .relativeFrequency(43.78) + .validRelativeFrequency(75.45) .build(); } public static Histogram buildHistogram() { - return new HistogramBuilder().withStart(0.0) - .withEnd(10.0) - .withNumberOfBins(10) + return Histogram.builder().start(0.0) + .end(10.0) + .numberOfBins(10) .build(); } @@ -399,82 +377,82 @@ public static Distribution buildDistribution() { missings.add(buildMissing()); List validResponses = new ArrayList<>(); validResponses.add(buildValidResponse()); - return new DistributionBuilder().withHistogram(buildHistogram()) - .withMissings(missings) - .withValidResponses(validResponses) - .withStatistics(buildStatistics()) - .withTotalAbsoluteFrequency(1234) - .withTotalValidAbsoluteFrequency(1000) - .withTotalValidRelativeFrequency(81.03) + return Distribution.builder().histogram(buildHistogram()) + .missings(missings) + .validResponses(validResponses) + .statistics(buildStatistics()) + .totalAbsoluteFrequency(1234) + .totalValidAbsoluteFrequency(1000) + .totalValidRelativeFrequency(81.03) .build(); } public static Release buildRelease() { - return new ReleaseBuilder() - .withNotes(new I18nStringBuilder().withDe("Eine Notiz für die Version 1.0") - .withEn("A notice for the version 1.0.") + return Release.builder() + .notes(I18nString.builder().de("Eine Notiz für die Version 1.0") + .en("A notice for the version 1.0.") .build()) - .withVersion("1.0") - .withDate(LocalDateTime.now()) + .version("1.0") + .date(LocalDateTime.now()) .build(); } public static FilterDetails buildFilterDetails() { - return new FilterDetailsBuilder() - .withDescription(new I18nStringBuilder() - .withDe("Eine Filterbeschreibung.") - .withEn("A filter description.") + return FilterDetails.builder() + .description(I18nString.builder() + .de("Eine Filterbeschreibung.") + .en("A filter description.") .build()) - .withExpression("A Filter Expression") - .withExpressionLanguage(FilterExpressionLanguages.STATA) + .expression("A Filter Expression") + .expressionLanguage(FilterExpressionLanguages.STATA) .build(); } - + public static RelatedPublication buildRelatedPublication() { - + List studyIds = new ArrayList<>(); studyIds.add("Study-IdExample"); - - return new RelatedPublicationBuilder() - .withDoi("A DOI") - .withId(UnitTestCreateValidIds.buildRelatedPublicationId("HurzId123")) - .withPublicationAbstract("A publication Abstract") - .withSourceLink("http://www.hurzexample.de/") - .withSourceReference("A Source Reference") - .withTitle("A Title of a Related Publication") - .withStudyIds(studyIds) - .withAuthors("Author") - .withYear(2017) - .withAbstractSource(new I18nStringBuilder() - .withDe("Test") - .withEn("Test") + + return RelatedPublication.builder() + .doi("A DOI") + .id(UnitTestCreateValidIds.buildRelatedPublicationId("HurzId123")) + .publicationAbstract("A publication Abstract") + .sourceLink("http://www.hurzexample.de/") + .sourceReference("A Source Reference") + .title("A Title of a Related Publication") + .studyIds(studyIds) + .authors("Author") + .year(2017) + .abstractSource(I18nString.builder() + .de("Test") + .en("Test") .build()) - .withLanguage("de") + .language("de") .build(); - + } public static RelatedPublication buildRelatedPublication(String authorsString, int publicationYear) { - + List studyIds = new ArrayList<>(); studyIds.add("Study-IdExample"); - - return new RelatedPublicationBuilder() - .withDoi("A DOI") - .withId(UnitTestCreateValidIds.buildRelatedPublicationId("HurzId123")) - .withPublicationAbstract("A publication Abstract") - .withSourceLink("http://www.hurzexample.de/") - .withSourceReference("A Source Reference") - .withTitle("A Title of a Related Publication") - .withStudyIds(studyIds) - .withAuthors(authorsString) - .withYear(publicationYear) - .withAbstractSource(new I18nStringBuilder() - .withDe("Test") - .withEn("Test") + + return RelatedPublication.builder() + .doi("A DOI") + .id(UnitTestCreateValidIds.buildRelatedPublicationId("HurzId123")) + .publicationAbstract("A publication Abstract") + .sourceLink("http://www.hurzexample.de/") + .sourceReference("A Source Reference") + .title("A Title of a Related Publication") + .studyIds(studyIds) + .authors(authorsString) + .year(publicationYear) + .abstractSource(I18nString.builder() + .de("Test") + .en("Test") .build()) - .withLanguage("de") + .language("de") .build(); - + } public static Instrument buildInstrument( String projectId, String surveyId) { @@ -482,102 +460,101 @@ public static Instrument buildInstrument( surveyNumbers.add(1); List surveyIds = new ArrayList<>(); surveyIds.add(surveyId); - return new InstrumentBuilder() - .withId(UnitTestCreateValidIds.buildInstrumentId(projectId, 1)) - .withDataAcquisitionProjectId(projectId) - .withStudyId(UnitTestCreateValidIds.buildStudyId(projectId)) - .withSurveyIds(surveyIds) - .withTitle(new I18nStringBuilder() - .withDe("Hurz") - .withEn("Hurz") + return Instrument.builder() + .id(UnitTestCreateValidIds.buildInstrumentId(projectId, 1)) + .dataAcquisitionProjectId(projectId) + .studyId(UnitTestCreateValidIds.buildStudyId(projectId)) + .surveyIds(surveyIds) + .title(I18nString.builder() + .de("Hurz") + .en("Hurz") .build()) - .withSubtitle(new I18nStringBuilder() - .withDe("Instrument Untertitel de") - .withEn("Instrument Subtitle en") + .subtitle(I18nString.builder() + .de("Instrument Untertitel de") + .en("Instrument Subtitle en") .build()) - .withDescription(new I18nStringBuilder() - .withDe("Hurz") - .withEn("Hurz") + .description(I18nString.builder() + .de("Hurz") + .en("Hurz") .build()) - .withAnnotations(new I18nStringBuilder().withDe("De Anmerkungen") - .withEn("En Annotations") + .annotations(I18nString.builder().de("De Anmerkungen") + .en("En Annotations") .build()) - .withType("CAPI") - .withNumber(1) - .withSurveyNumbers(surveyNumbers) + .type("CAPI") + .number(1) + .surveyNumbers(surveyNumbers) .build(); } - + public static InstrumentAttachmentMetadata buildInstrumentAttachmentMetadata(String projectId, Integer instrumentNumber) { - return new InstrumentAttachmentMetadataBuilder() - .withDataAcquisitionProjectId(projectId) - .withInstrumentId(UnitTestCreateValidIds.buildInstrumentId(projectId, instrumentNumber)) - .withInstrumentNumber(instrumentNumber) - .withFileName("filename.txt") - .withDescription(new I18nString("Beschreibung","Description")) - .withLanguage("de") - .withType(InstrumentAttachmentTypes.QUESTION_FLOW) - .withIndexInInstrument(1) + return InstrumentAttachmentMetadata.builder() + .dataAcquisitionProjectId(projectId) + .instrumentId(UnitTestCreateValidIds.buildInstrumentId(projectId, instrumentNumber)) + .instrumentNumber(instrumentNumber) + .fileName("filename.txt") + .description(new I18nString("Beschreibung","Description")) + .language("de") + .type(InstrumentAttachmentTypes.QUESTION_FLOW) + .indexInInstrument(1) .build(); } - + public static SurveyAttachmentMetadata buildSurveyAttachmentMetadata(String projectId, Integer surveyNumber) { - return new SurveyAttachmentMetadataBuilder() - .withDataAcquisitionProjectId(projectId) - .withSurveyId(UnitTestCreateValidIds.buildSurveyId(projectId, surveyNumber)) - .withSurveyNumber(surveyNumber) - .withFileName("filename.txt") - .withDescription(new I18nString("Beschreibung","Description")) - .withTitle("Title") - .withLanguage("de") - .withIndexInSurvey(1) + return SurveyAttachmentMetadata.builder() + .dataAcquisitionProjectId(projectId) + .surveyId(UnitTestCreateValidIds.buildSurveyId(projectId, surveyNumber)) + .surveyNumber(surveyNumber) + .fileName("filename.txt") + .description(new I18nString("Beschreibung","Description")) + .title("Title") + .language("de") + .indexInSurvey(1) .build(); } - + public static DataSetAttachmentMetadata buildDataSetAttachmentMetadata(String projectId, Integer dataSetNumber) { - return new DataSetAttachmentMetadataBuilder() - .withDataAcquisitionProjectId(projectId) - .withDataSetId(UnitTestCreateValidIds.buildDataSetId(projectId, dataSetNumber)) - .withDataSetNumber(dataSetNumber) - .withFileName("filename.txt") - .withDescription(new I18nString("Beschreibung","Description")) - .withTitle("Title") - .withLanguage("de") - .withIndexInDataSet(1) + return DataSetAttachmentMetadata.builder() + .dataAcquisitionProjectId(projectId) + .dataSetId(UnitTestCreateValidIds.buildDataSetId(projectId, dataSetNumber)) + .dataSetNumber(dataSetNumber) + .fileName("filename.txt") + .description(new I18nString("Beschreibung","Description")) + .title("Title") + .language("de") + .indexInDataSet(1) .build(); } - + public static StudyAttachmentMetadata buildStudyAttachmentMetadata(String projectId) { - return new StudyAttachmentMetadataBuilder() - .withDataAcquisitionProjectId(projectId) - .withStudyId(UnitTestCreateValidIds.buildStudyId(projectId)) - .withFileName("filename.txt") - .withDescription(new I18nString("Beschreibung","Description")) - .withTitle("Title") - .withLanguage("de") - .withType(StudyAttachmentTypes.METHOD_REPORT) - .withIndexInStudy(1) + return StudyAttachmentMetadata.builder() + .dataAcquisitionProjectId(projectId) + .studyId(UnitTestCreateValidIds.buildStudyId(projectId)) + .fileName("filename.txt") + .description(new I18nString("Beschreibung","Description")) + .title("Title") + .language("de") + .type(StudyAttachmentTypes.METHOD_REPORT) + .indexInStudy(1) .build(); } - + public static RelatedQuestion buildRelatedQuestion(String projectId, String questionNumber, String instrumentNumber) { - return new RelatedQuestionBuilder() - .withInstrumentNumber(instrumentNumber) - .withQuestionNumber(questionNumber) - .withInstrumentId(UnitTestCreateValidIds.buildInstrumentId(projectId, new Integer(instrumentNumber).intValue())) - .withRelatedQuestionStrings(new I18nStringBuilder() - .withDe("Related Question String DE") - .withEn("Related Question String EN") + return RelatedQuestion.builder() + .instrumentNumber(instrumentNumber) + .questionNumber(questionNumber) + .instrumentId(UnitTestCreateValidIds.buildInstrumentId(projectId, new Integer(instrumentNumber).intValue())) + .relatedQuestionStrings(I18nString.builder() + .de("Related Question String DE") + .en("Related Question String EN") .build()) .build(); } - + public static Person buildPerson(String firstName, String middleName, String lastName) { - - return new PersonBuilder() - .withFirstName(firstName) - .withMiddleName(middleName) - .withLastName(lastName) + return Person.builder() + .firstName(firstName) + .middleName(middleName) + .lastName(lastName) .build(); } -} \ No newline at end of file +} diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestReflectionHelper.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestReflectionHelper.java index 28d47899bf..4f0aa1116a 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestReflectionHelper.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestReflectionHelper.java @@ -10,8 +10,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; /** * This helper class supports reflection for unit tests. @@ -19,10 +18,8 @@ * @author Daniel Katzberg * */ +@Slf4j public class UnitTestReflectionHelper { - - private static Logger LOGGER = LoggerFactory.getLogger(UnitTestReflectionHelper.class); - /** * This method will return by reflection a declared method. The method has an accessible of true. * @@ -32,13 +29,13 @@ public class UnitTestReflectionHelper { */ public static Method getDeclaredMethodForTestInvocation(Class clazz, String methodName) { - LOGGER.debug("Class: " + clazz.getSimpleName() + " with method " + methodName); + log.debug("Class: " + clazz.getSimpleName() + " with method " + methodName); // Look for declaredMethod Method method = null; for (Method eachMethod : clazz.getDeclaredMethods()) { - LOGGER.debug("Class: " + clazz.getSimpleName() + " with check method |" + eachMethod.getName() + log.debug("Class: " + clazz.getSimpleName() + " with check method |" + eachMethod.getName() + "|=|" + methodName + "|"); if (eachMethod.getName() @@ -69,7 +66,7 @@ public static Method getDeclaredMethodForTestInvocation(Class clazz, String m public static Field getDeclaredFieldForTestInvocation(Class clazz, String fieldName) throws NoSuchFieldException, SecurityException { - LOGGER.debug("Class: " + clazz.getSimpleName() + " with field " + fieldName); + log.debug("Class: " + clazz.getSimpleName() + " with field " + fieldName); // check for found method Field field = clazz.getDeclaredField(fieldName); diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestUserManagementUtils.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestUserManagementUtils.java index c28a27cbcd..5760627daf 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestUserManagementUtils.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/common/unittesthelper/util/UnitTestUserManagementUtils.java @@ -10,17 +10,15 @@ import javax.validation.ConstraintViolation; import javax.validation.Validator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.Authority; import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.User; -import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.builders.UserBuilder; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.CustomUserDetails; +import lombok.extern.slf4j.Slf4j; /** * This class has helper / utils methods for unit tests. @@ -28,10 +26,8 @@ * @author Daniel Katzberg * */ +@Slf4j public class UnitTestUserManagementUtils { - - private final Logger log = LoggerFactory.getLogger(UnitTestUserManagementUtils.class); - /** * @param object The object for validation. * @param validator The validator for the validation @@ -59,13 +55,13 @@ public static User getDefaultUser() { authority.setName(AuthoritiesConstants.USER); authorities.add(authority); - return new UserBuilder().withLogin("test") - .withFirstName("john") - .withLastName("Doe") - .withLangKey("de") - .withEmail("john.doe@testmail.test") - .withAuthorities(authorities) - .withActivated(false) + return User.builder().login("test") + .firstName("john") + .lastName("Doe") + .langKey("de") + .email("john.doe@testmail.test") + .authorities(authorities) + .activated(false) .build(); } diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailServiceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailServiceTest.java index 46d2a90af1..fe78f74824 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailServiceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/mailmanagement/service/MailServiceTest.java @@ -21,7 +21,6 @@ import eu.dzhw.fdz.metadatamanagement.AbstractTest; import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.User; -import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.builders.UserBuilder; /** * @author Daniel Katzberg @@ -48,8 +47,8 @@ public void after() { @Test public void testSendActivationEmail() throws Exception { // Arrange - User user = new UserBuilder().withLangKey("de") - .withEmail("anyMail@localhost.com") + User user = User.builder().langKey("de") + .email("anyMail@localhost.com") .build(); // Act @@ -65,8 +64,8 @@ public void testSendActivationEmail() throws Exception { @Test public void testSendPasswordResetMail() throws InterruptedException, ExecutionException { // Arrange - User user = new UserBuilder().withLangKey("de") - .withEmail("anyMail@localhost.com") + User user = User.builder().langKey("de") + .email("anyMail@localhost.com") .build(); // Act diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/rest/QuestionResourceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/rest/QuestionResourceTest.java index 664bac9d96..6b841f2b19 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/rest/QuestionResourceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/questionmanagement/rest/QuestionResourceTest.java @@ -24,8 +24,8 @@ import org.springframework.web.context.WebApplicationContext; import eu.dzhw.fdz.metadatamanagement.AbstractTest; +import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.ImageType; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; import eu.dzhw.fdz.metadatamanagement.common.rest.TestUtil; import eu.dzhw.fdz.metadatamanagement.common.unittesthelper.util.UnitTestCreateDomainObjectUtils; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.DataAcquisitionProject; @@ -126,8 +126,8 @@ public void testUpdateQuestion() throws Exception { .content(TestUtil.convertObjectToJsonBytes(question))) .andExpect(status().isCreated()); - question.setQuestionText(new I18nStringBuilder().withDe("Angepasst") - .withEn("Different Value") + question.setQuestionText(I18nString.builder().de("Angepasst") + .en("Different Value") .build()); // update the Question with the given id @@ -167,8 +167,8 @@ public void testUpdateWithWrongTypeQuestion() throws Exception { .andExpect(status().isCreated()); // set inconsistent type - question.setType(new I18nStringBuilder().withDe(QuestionTypes.OPEN.getDe()) - .withEn("Bad Value") + question.setType(I18nString.builder().de(QuestionTypes.OPEN.getDe()) + .en("Bad Value") .build()); // update the Question with the given id diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueServiceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueServiceTest.java index 98d221392f..a504abc53f 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueServiceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/searchmanagement/service/ElasticsearchUpdateQueueServiceTest.java @@ -12,7 +12,6 @@ import eu.dzhw.fdz.metadatamanagement.AbstractTest; import eu.dzhw.fdz.metadatamanagement.searchmanagement.domain.ElasticsearchUpdateQueueAction; import eu.dzhw.fdz.metadatamanagement.searchmanagement.domain.ElasticsearchUpdateQueueItem; -import eu.dzhw.fdz.metadatamanagement.searchmanagement.domain.builders.ElasticsearchUpdateQueueItemBuilder; import eu.dzhw.fdz.metadatamanagement.searchmanagement.repository.ElasticsearchUpdateQueueItemRepository; public class ElasticsearchUpdateQueueServiceTest extends AbstractTest { @@ -55,12 +54,12 @@ public void testEnqueuingOfDuplicateEntryIsIgnored() { @Test public void testLockedButOutdatedQueueItemIsProcessed() { ElasticsearchUpdateQueueItem outdatedItem = - new ElasticsearchUpdateQueueItemBuilder().withAction(ElasticsearchUpdateQueueAction.DELETE) - .withDocumentId("testId") - .withDocumentType(ElasticsearchType.variables) - .withUpdateStartedAt(LocalDateTime.now() + ElasticsearchUpdateQueueItem.builder().action(ElasticsearchUpdateQueueAction.DELETE) + .documentId("testId") + .documentType(ElasticsearchType.variables) + .updateStartedAt(LocalDateTime.now() .minusMinutes(11)) - .withUpdateStartedBy("test") + .updateStartedBy("test") .build(); itemRepository.insert(outdatedItem); diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/ReleaseTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/ReleaseTest.java index 01af15de37..5d980b9c39 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/ReleaseTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/domain/ReleaseTest.java @@ -10,9 +10,8 @@ import org.junit.Test; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; +import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.Release; -import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.builders.ReleaseBuilder; /** * @author Daniel Katzberg @@ -24,12 +23,12 @@ public class ReleaseTest { public void testGetter() { // Arrange - Release release = new ReleaseBuilder() - .withNotes(new I18nStringBuilder().withDe("Eine Notiz für die Version 1.0") - .withEn("A notice for the version 1.0.") + Release release = Release.builder() + .notes(I18nString.builder().de("Eine Notiz für die Version 1.0") + .en("A notice for the version 1.0.") .build()) - .withVersion("1.0") - .withDate(LocalDateTime.now()) + .version("1.0") + .date(LocalDateTime.now()) .build(); // Act @@ -45,11 +44,11 @@ public void testGetter() { @Test public void testToString() { // Arrange - Release release = new ReleaseBuilder() - .withNotes(new I18nStringBuilder().withDe("Eine Notiz für die Version 1.0") - .withEn("A notice for the version 1.0.") + Release release = Release.builder() + .notes(I18nString.builder().de("Eine Notiz für die Version 1.0") + .en("A notice for the version 1.0.") .build()) - .withVersion("1.0") + .version("1.0") .build(); // Act @@ -57,7 +56,7 @@ public void testToString() { // Assert assertThat(toString, is( - "Release{version=1.0, date=null, notes=I18nString{de='Eine Notiz für die Version 1.0', en='A notice for the version 1.0.'}}")); + "Release(version=1.0, date=null, notes=I18nString(de=Eine Notiz für die Version 1.0, en=A notice for the version 1.0.))")); } diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/rest/StudyResourceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/rest/StudyResourceTest.java index 2b6940abc1..62709896f8 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/rest/StudyResourceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/studymanagement/rest/StudyResourceTest.java @@ -21,13 +21,14 @@ import org.springframework.web.context.WebApplicationContext; import eu.dzhw.fdz.metadatamanagement.AbstractTest; +import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; import eu.dzhw.fdz.metadatamanagement.common.domain.Person; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; import eu.dzhw.fdz.metadatamanagement.common.rest.TestUtil; import eu.dzhw.fdz.metadatamanagement.common.unittesthelper.util.UnitTestCreateDomainObjectUtils; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.DataAcquisitionProject; import eu.dzhw.fdz.metadatamanagement.projectmanagement.repository.DataAcquisitionProjectRepository; import eu.dzhw.fdz.metadatamanagement.searchmanagement.repository.ElasticsearchUpdateQueueItemRepository; +import eu.dzhw.fdz.metadatamanagement.searchmanagement.service.ElasticsearchAdminService; import eu.dzhw.fdz.metadatamanagement.studymanagement.domain.Study; import eu.dzhw.fdz.metadatamanagement.studymanagement.repository.StudyRepository; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; @@ -52,6 +53,9 @@ public class StudyResourceTest extends AbstractTest { @Autowired private ElasticsearchUpdateQueueItemRepository elasticsearchUpdateQueueItemRepository; + + @Autowired + private ElasticsearchAdminService elasticsearchAdminService; private MockMvc mockMvc; @@ -59,6 +63,7 @@ public class StudyResourceTest extends AbstractTest { public void setup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(wac) .build(); + elasticsearchAdminService.recreateAllIndices(); } @After @@ -91,9 +96,9 @@ public void testCreateStudyWithTooSurveySeries() throws IOException, Exception { this.dataAcquisitionProjectRepository.save(project); Study study = UnitTestCreateDomainObjectUtils.buildStudy(project.getId()); - study.setSurveySeries(new I18nStringBuilder() - .withDe("Zufallsstringhsdfosdhgfodsfvfsdhvdfaghscdqwdpqwubdpiempfuvgnrtgfnoeugfudgsfvoudgsvnauehgvenogfweuigfuzegnfvouiegsnfgaoseiufgvnuzewgfvnouagesfuenpvugfupewgn") - .withEn("Randomstringhsdfosdhgfodsfvfsdhvdfaghscdqwdpqwubdpiempfuvgnrtgfnoeugfudgsfvoudgsvnauehgvenogfweuigfuzegnfvouiegsnfgaoseiufgvnuzewgfvnouagesfuenpvugfupewgn") + study.setSurveySeries(I18nString.builder() + .de("Zufallsstringhsdfosdhgfodsfvfsdhvdfaghscdqwdpqwubdpiempfuvgnrtgfnoeugfudgsfvoudgsvnauehgvenogfweuigfuzegnfvouiegsnfgaoseiufgvnuzewgfvnouagesfuenpvugfupewgn") + .en("Randomstringhsdfosdhgfodsfvfsdhvdfaghscdqwdpqwubdpiempfuvgnrtgfnoeugfudgsfvoudgsvnauehgvenogfweuigfuzegnfvouiegsnfgaoseiufgvnuzewgfvnouagesfuenpvugfupewgn") .build()); // create the project with the given id diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/rest/SurveyResourceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/rest/SurveyResourceTest.java index ee802db0ae..f85aeafc5e 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/rest/SurveyResourceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/surveymanagement/rest/SurveyResourceTest.java @@ -21,8 +21,8 @@ import org.springframework.web.context.WebApplicationContext; import eu.dzhw.fdz.metadatamanagement.AbstractTest; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.PeriodBuilder; +import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; +import eu.dzhw.fdz.metadatamanagement.common.domain.Period; import eu.dzhw.fdz.metadatamanagement.common.rest.TestUtil; import eu.dzhw.fdz.metadatamanagement.common.unittesthelper.util.UnitTestCreateDomainObjectUtils; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.DataAcquisitionProject; @@ -30,7 +30,6 @@ import eu.dzhw.fdz.metadatamanagement.searchmanagement.service.ElasticsearchAdminService; import eu.dzhw.fdz.metadatamanagement.searchmanagement.service.ElasticsearchUpdateQueueService; import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.Survey; -import eu.dzhw.fdz.metadatamanagement.surveymanagement.domain.builders.SurveyBuilder; import eu.dzhw.fdz.metadatamanagement.surveymanagement.repository.SurveyRepository; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.AuthoritiesConstants; @@ -65,6 +64,7 @@ public class SurveyResourceTest extends AbstractTest { public void setup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(wac) .build(); + elasticsearchAdminService.recreateAllIndices(); } @After @@ -106,7 +106,7 @@ public void testCreateSurveyWithMixedMethodDataType() throws Exception { rdcProjectRepository.save(project); Survey survey = UnitTestCreateDomainObjectUtils.buildSurvey(project.getId()); - survey.setDataType(new I18nStringBuilder().withDe("Mixed Methods").withEn("Mixed Methods").build()); + survey.setDataType(I18nString.builder().de("Mixed Methods").en("Mixed Methods").build()); // create the survey with the given id but with wrong period mockMvc.perform(put(API_SURVEYS_URI + "/" + survey.getId()) @@ -135,13 +135,13 @@ public void testCreateSurveyWithInvalidPeriod() throws Exception { DataAcquisitionProject project = UnitTestCreateDomainObjectUtils.buildDataAcquisitionProject(); rdcProjectRepository.save(project); - Survey survey = new SurveyBuilder().withId("testId") - .withDataAcquisitionProjectId(project.getId()) - .withTitle(new I18nStringBuilder().withDe("titel") - .withEn("title") + Survey survey = Survey.builder().id("testId") + .dataAcquisitionProjectId(project.getId()) + .title(I18nString.builder().de("titel") + .en("title") .build()) - .withFieldPeriod(new PeriodBuilder().withStart(LocalDate.now()) - .withEnd(LocalDate.now() + .fieldPeriod(Period.builder().start(LocalDate.now()) + .end(LocalDate.now() .minusDays(1)) .build()) .build(); @@ -159,8 +159,8 @@ public void testCreateSurveyWithUnlimitedPeriod() throws Exception { rdcProjectRepository.save(project); Survey survey = UnitTestCreateDomainObjectUtils.buildSurvey(project.getId()); - survey.setFieldPeriod(new PeriodBuilder().withStart(null) - .withEnd(null) + survey.setFieldPeriod(Period.builder().start(null) + .end(null) .build()); // create the survey with the given id but with an unlimited period @@ -173,13 +173,13 @@ public void testCreateSurveyWithUnlimitedPeriod() throws Exception { public void testCreateSurveyWithInvalidProject() throws Exception { DataAcquisitionProject project = UnitTestCreateDomainObjectUtils.buildDataAcquisitionProject(); - Survey survey = new SurveyBuilder().withId("testId") - .withDataAcquisitionProjectId(project.getId()) - .withTitle(new I18nStringBuilder().withDe("titel") - .withEn("title") + Survey survey = Survey.builder().id("testId") + .dataAcquisitionProjectId(project.getId()) + .title(I18nString.builder().de("titel") + .en("title") .build()) - .withFieldPeriod(new PeriodBuilder().withStart(LocalDate.now()) - .withEnd(LocalDate.now() + .fieldPeriod(Period.builder().start(LocalDate.now()) + .end(LocalDate.now() .plusDays(1)) .build()) .build(); @@ -192,13 +192,13 @@ public void testCreateSurveyWithInvalidProject() throws Exception { @Test public void testCreateSurveyEmptyProject() throws Exception { - Survey survey = new SurveyBuilder().withId("testId") - .withDataAcquisitionProjectId(null) - .withTitle(new I18nStringBuilder().withDe("titel") - .withEn("title") + Survey survey = Survey.builder().id("testId") + .dataAcquisitionProjectId(null) + .title(I18nString.builder().de("titel") + .en("title") .build()) - .withFieldPeriod(new PeriodBuilder().withStart(LocalDate.now()) - .withEnd(LocalDate.now() + .fieldPeriod(Period.builder().start(LocalDate.now()) + .end(LocalDate.now() .plusDays(1)) .build()) .build(); diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/UserTests.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/UserTests.java index 69ad8a5aca..6e91630444 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/UserTests.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/domain/UserTests.java @@ -12,8 +12,6 @@ import org.junit.Test; -import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.builders.UserBuilder; - /** * @author Daniel Katzberg * @@ -23,8 +21,8 @@ public class UserTests { @Test public void testActivationKey() { // Arrange - User user1 = new UserBuilder().withLogin("1") - .withActivationKey("Key") + User user1 = User.builder().login("1") + .activationKey("Key") .build(); // Act @@ -37,12 +35,12 @@ public void testActivationKey() { public void testEquals() { // Arrange - User user1 = new UserBuilder().withLogin("1") + User user1 = User.builder().login("1") .build(); - User user1_1 = new UserBuilder().withLogin("1") - .withActivationKey("Key") + User user1_1 = User.builder().login("1") + .activationKey("Key") .build(); - User user2 = new UserBuilder().withLogin("2") + User user2 = User.builder().login("2") .build(); // Act @@ -61,27 +59,10 @@ public void testEquals() { } - @Test - public void testHashCode() { - // Arrange - User user1 = new UserBuilder().withLogin("1") - .build(); - User user2 = new UserBuilder().withLogin(null) - .build(); - - // Act - int hashCodeWithLogin = user1.hashCode(); - int hashCodeWithoutLogin = user2.hashCode(); - - // Assert - assertThat(hashCodeWithLogin, not(0)); - assertThat(hashCodeWithoutLogin, is(0)); - } - @Test public void testAbstractAuditingEntity() { // Arrange - User userFieldsFromAbstractAuditing = new UserBuilder().build(); + User userFieldsFromAbstractAuditing = User.builder().build(); // Act userFieldsFromAbstractAuditing.setCreatedBy("CreatedBy"); diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResourceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResourceTest.java index f0831bc0c1..041b759d2d 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResourceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/rest/UserResourceTest.java @@ -29,7 +29,6 @@ import eu.dzhw.fdz.metadatamanagement.AbstractTest; import eu.dzhw.fdz.metadatamanagement.common.rest.TestUtil; import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.User; -import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.builders.UserBuilder; import eu.dzhw.fdz.metadatamanagement.usermanagement.repository.AuthorityRepository; import eu.dzhw.fdz.metadatamanagement.usermanagement.repository.UserRepository; import eu.dzhw.fdz.metadatamanagement.usermanagement.rest.dto.ManagedUserDto; @@ -96,7 +95,7 @@ public void testGetUnknownUser() throws Exception { @Test public void testCreateUserWithID() throws Exception { // Arrange - User user = new UserBuilder().withId("testGetAllUser_ID") + User user = User.builder().id("testGetAllUser_ID") .build(); // Act diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserServiceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserServiceTest.java index ba28f66efb..c5fdb90896 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserServiceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/usermanagement/service/UserServiceTest.java @@ -16,7 +16,6 @@ import eu.dzhw.fdz.metadatamanagement.AbstractTest; import eu.dzhw.fdz.metadatamanagement.common.unittesthelper.util.UnitTestUserManagementUtils; import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.User; -import eu.dzhw.fdz.metadatamanagement.usermanagement.domain.builders.UserBuilder; import eu.dzhw.fdz.metadatamanagement.usermanagement.repository.UserRepository; import eu.dzhw.fdz.metadatamanagement.usermanagement.security.SecurityUtils; import eu.dzhw.fdz.metadatamanagement.usermanagement.service.util.RandomUtil; @@ -135,16 +134,16 @@ public void assertThatUserCanResetPassword() { public void testFindNotActivatedUsersByCreationDateBefore() { // Arrange LocalDateTime now = LocalDateTime.now(); - User user1 = new UserBuilder().withLogin("user1login") - .withPassword(this.passwordEncoder.encode("User1Password")) - .withCreatedDate(now.minusDays(4)) - .withActivated(false) - .withEmail("user1@dzhw.eu") + User user1 = User.builder().login("user1login") + .password(this.passwordEncoder.encode("User1Password")) + .activated(false) + .email("user1@dzhw.eu") .build(); - User user2 = new UserBuilder().withLogin("user2login") - .withPassword(this.passwordEncoder.encode("User2Password")) - .withActivated(false) - .withEmail("user2@dzhw.eu") + user1.setCreatedDate(now.minusDays(4)); + User user2 = User.builder().login("user2login") + .password(this.passwordEncoder.encode("User2Password")) + .activated(false) + .email("user2@dzhw.eu") .build(); // Update User 1 @@ -205,11 +204,11 @@ public void testGetUserWithAuthoritiesWithId() { public void testChangePassword() { // Arrange LocalDateTime now = LocalDateTime.now(); - User user = new UserBuilder().withLogin("user1login") - .withPassword(this.passwordEncoder.encode("User1Password")) - .withCreatedDate(now.minusDays(4)) - .withActivated(false) + User user = User.builder().login("user1login") + .password(this.passwordEncoder.encode("User1Password")) + .activated(false) .build(); + user.setCreatedDate(now.minusDays(4)); user = this.userRepository.save(user); UnitTestUserManagementUtils.login("user1login", "User1Password"); diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetailsTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetailsTest.java index 147b42c35d..5c2730da17 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetailsTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/FilterDetailsTest.java @@ -26,7 +26,7 @@ public void testToString() { // Assert assertThat(toString, is( - "FilterDetails{expression=A Filter Expression, description=I18nString{de='Eine Filterbeschreibung.', en='A filter description.'}, expressionLanguage=Stata}")); + "FilterDetails(expression=A Filter Expression, description=I18nString(de=Eine Filterbeschreibung., en=A filter description.), expressionLanguage=Stata)")); } diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetailsTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetailsTest.java index 1acdae94ef..26a1ac8e7e 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetailsTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/GenerationDetailsTest.java @@ -43,7 +43,7 @@ public void testToString() { // Assert assertThat(toString, is( - "GenerationDetails{description=I18nString{de='De Beschreibung', en='En Description'}, rule=Rule 123 to 234, ruleExpressionLanguage=R}")); + "GenerationDetails(description=I18nString(de=De Beschreibung, en=En Description), rule=Rule 123 to 234, ruleExpressionLanguage=R)")); } diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/StatisticsTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/StatisticsTest.java index fff76948fd..611c01b3be 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/StatisticsTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/StatisticsTest.java @@ -48,7 +48,7 @@ public void testToString() { // Assert assertThat(toString, is( - "Statistics{meanValue=87.5, minimum=0.0, maximum=140.0, skewness=123.0, kurtosis=234.0, median=90.0, standardDeviation=40.0, firstQuartile=70.0, thirdQuartile=110.0, lowWhisker=30.0, highWhisker=130.0, mode=Mode, deviance=12.4, meanDeviation=58.7}")); + "Statistics(meanValue=87.5, minimum=0.0, maximum=140.0, skewness=123.0, kurtosis=234.0, median=90.0, standardDeviation=40.0, firstQuartile=70.0, thirdQuartile=110.0, lowWhisker=30.0, highWhisker=130.0, mode=Mode, deviance=12.4, meanDeviation=58.7)")); } diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/VariableTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/VariableTest.java index d7522cf734..a6d897407a 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/VariableTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/domain/VariableTest.java @@ -8,8 +8,7 @@ import org.junit.Test; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.VariableBuilder; +import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; /** * @author Daniel Katzberg @@ -21,12 +20,12 @@ public class VariableTest { public void testEquals() { // Arrange - Variable variable1 = new VariableBuilder().withId("1") + Variable variable1 = Variable.builder().id("1") .build(); - Variable variable1_1 = new VariableBuilder().withId("1") - .withLabel(new I18nStringBuilder().withDe("Label").withEn("Label").build()) + Variable variable1_1 = Variable.builder().id("1") + .label(I18nString.builder().de("Label").en("Label").build()) .build(); - Variable variable2 = new VariableBuilder().withId("2") + Variable variable2 = Variable.builder().id("2") .build(); // Act diff --git a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/rest/VariableResourceTest.java b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/rest/VariableResourceTest.java index 5e837340ef..1f0663262c 100644 --- a/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/rest/VariableResourceTest.java +++ b/src/test/java/eu/dzhw/fdz/metadatamanagement/variablemanagement/rest/VariableResourceTest.java @@ -30,7 +30,6 @@ import eu.dzhw.fdz.metadatamanagement.AbstractTest; import eu.dzhw.fdz.metadatamanagement.common.domain.I18nString; -import eu.dzhw.fdz.metadatamanagement.common.domain.builders.I18nStringBuilder; import eu.dzhw.fdz.metadatamanagement.common.rest.TestUtil; import eu.dzhw.fdz.metadatamanagement.common.unittesthelper.util.UnitTestCreateDomainObjectUtils; import eu.dzhw.fdz.metadatamanagement.projectmanagement.domain.DataAcquisitionProject; @@ -46,8 +45,6 @@ import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.ScaleLevels; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.ValidResponse; import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.Variable; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.MissingBuilder; -import eu.dzhw.fdz.metadatamanagement.variablemanagement.domain.builders.ValidResponseBuilder; import eu.dzhw.fdz.metadatamanagement.variablemanagement.repository.VariableRepository; /** @@ -342,10 +339,10 @@ public void testCreateVariableWithNonUniqueCode() throws Exception { .getMissings() .get(0); - Missing value2 = new MissingBuilder().withCode(value1.getCode()) - .withLabel(value1.getLabel()) - .withAbsoluteFrequency(value1.getAbsoluteFrequency()) - .withRelativeFrequency(value1.getRelativeFrequency()) + Missing value2 = Missing.builder().code(value1.getCode()) + .label(value1.getLabel()) + .absoluteFrequency(value1.getAbsoluteFrequency()) + .relativeFrequency(value1.getRelativeFrequency()) .build(); variable.getDistribution() @@ -377,11 +374,11 @@ public void testCreateVariableWithNonUniqueValueClass() throws Exception { .get(0); validResponse.setValue("123.456"); - ValidResponse value2 = new ValidResponseBuilder().withValue(validResponse.getValue()) - .withLabel(validResponse.getLabel()) - .withAbsoluteFrequency(validResponse.getAbsoluteFrequency()) - .withRelativeFrequency(validResponse.getRelativeFrequency()) - .withValidRelativeFrequency(validResponse.getValidRelativeFrequency()) + ValidResponse value2 = ValidResponse.builder().value(validResponse.getValue()) + .label(validResponse.getLabel()) + .absoluteFrequency(validResponse.getAbsoluteFrequency()) + .relativeFrequency(validResponse.getRelativeFrequency()) + .validRelativeFrequency(validResponse.getValidRelativeFrequency()) .build(); variable.getDistribution() @@ -430,8 +427,8 @@ public void testCreateVariableWithInvalidScaleLevel() throws Exception { Variable variable = UnitTestCreateDomainObjectUtils.buildVariable(project.getId(), 1, "var1", 1, surveyNumbers); - variable.setScaleLevel(new I18nStringBuilder().withDe("InvalidValue") - .withEn("InvalidValue") + variable.setScaleLevel(I18nString.builder().de("InvalidValue") + .en("InvalidValue") .build()); // create the variable with a survey but without a project @@ -467,8 +464,8 @@ public void testCreateVariableWithInvalidDataType() throws Exception { Variable variable = UnitTestCreateDomainObjectUtils.buildVariable(project.getId(), 1, "var1", 1, surveyNumbers); - variable.setDataType(new I18nStringBuilder().withDe("InvalidValue") - .withEn("InvalidValue") + variable.setDataType(I18nString.builder().de("InvalidValue") + .en("InvalidValue") .build()); // create the variable with a survey but without a project @@ -592,8 +589,8 @@ public void deleteVariable() throws JsonSyntaxException, IOException, Exception Variable variable = UnitTestCreateDomainObjectUtils.buildVariable(project.getId(), 1, "var1", 1, surveyNumbers); // change scale level (code coverage) - variable.setScaleLevel(new I18nStringBuilder().withDe(ScaleLevels.ORDINAL.getDe()) - .withEn(ScaleLevels.ORDINAL.getEn()) + variable.setScaleLevel(I18nString.builder().de(ScaleLevels.ORDINAL.getDe()) + .en(ScaleLevels.ORDINAL.getEn()) .build()); // create the variable with the given id @@ -629,12 +626,12 @@ public void testUpdateVariable() throws Exception { .content(TestUtil.convertObjectToJsonBytes(variable))) .andExpect(status().isCreated()); - variable.setLabel(new I18nStringBuilder().withDe("modified") - .withEn("modified") + variable.setLabel(I18nString.builder().de("modified") + .en("modified") .build()); // with other scale level and data type (code coverage) - variable.setScaleLevel(new I18nStringBuilder().withDe(ScaleLevels.NOMINAL.getDe()) - .withEn(ScaleLevels.NOMINAL.getEn()) + variable.setScaleLevel(I18nString.builder().de(ScaleLevels.NOMINAL.getDe()) + .en(ScaleLevels.NOMINAL.getEn()) .build()); // update the variable with the given id @@ -843,13 +840,13 @@ public void testVariableWithDataTypeDate() throws Exception { .setValidResponses(null); List validResponses = new ArrayList<>(); validResponses - .add(new ValidResponseBuilder().withLabel(new I18nStringBuilder().withDe("Deutsches Label") - .withEn("English Label") + .add(ValidResponse.builder().label(I18nString.builder().de("Deutsches Label") + .en("English Label") .build()) - .withAbsoluteFrequency(1234) - .withRelativeFrequency(87.5) - .withValidRelativeFrequency(88.9) - .withValue(LocalDateTime.now() + .absoluteFrequency(1234) + .relativeFrequency(87.5) + .validRelativeFrequency(88.9) + .value(LocalDateTime.now() .toString()) .build()); diff --git a/src/test/javascript/karma.conf.js b/src/test/javascript/karma.conf.js index dc1d13dfc6..a9c672001d 100644 --- a/src/test/javascript/karma.conf.js +++ b/src/test/javascript/karma.conf.js @@ -61,13 +61,13 @@ module.exports = function(config) { 'src/main/webapp/bower_components/angular-scroll/angular-scroll.js', 'src/main/webapp/bower_components/sockjs-client/dist/sockjs.js', 'src/main/webapp/bower_components/stomp-websocket/lib/stomp.min.js', - 'src/main/webapp/bower_components/hyphenator/Hyphenator.js', - 'src/main/webapp/bower_components/hyphenator/patterns/de.js', - 'src/main/webapp/bower_components/hyphenator/patterns/en-us.js', 'src/main/webapp/bower_components/es5-shim/es5-shim.js', 'src/main/webapp/bower_components/es5-shim/es5-sham.js', 'src/main/webapp/bower_components/es6-shim/es6-shim.js', 'src/main/webapp/bower_components/es6-shim/es6-sham.js', + 'src/main/webapp/bower_components/hyphenator/Hyphenator.js', + 'src/main/webapp/bower_components/hyphenator/patterns/de.js', + 'src/main/webapp/bower_components/hyphenator/patterns/en-us.js', 'src/main/webapp/bower_components/angular-mocks/angular-mocks.js', // endbower 'src/main/webapp/bower_components/elasticsearch/elasticsearch.angular.js', diff --git a/src/test/protractor/home/home.spec.js b/src/test/protractor/home/home.spec.js index dec6973196..676dc14597 100644 --- a/src/test/protractor/home/home.spec.js +++ b/src/test/protractor/home/home.spec.js @@ -1,44 +1,52 @@ /* global browser */ /* global it */ -/* global element */ -/* global by */ /* global describe */ /* global expect */ /* global beforeAll */ +/* global afterEach */ 'use strict'; var htmlContentHelper = require('../utils/htmlContentHelper'); var translateHelper = require('../utils/translateHelper'); +var protractorWaitHelper = require('../utils/protractorWaitHelper'); //Called as first and only once. For more information take a look on these //protractor.conf.js describe('Home page', function() { function callHomePage() { browser.get('#!/de/search'); - element(by.id('closeWelcomeDialog')).click(); + protractorWaitHelper.waitFor('closeWelcomeDialog').then(function(button) { + button.click(); + }); } function testHomePage(description, language) { describe(description, function() { var currentUrl; - var content; - beforeAll(function() { + beforeAll(function(done) { browser.getCurrentUrl().then(function(url) { currentUrl = url; - translateHelper.changeLanguage('content', url, - language) - .then(function(el) { - content = el; - }); + translateHelper.changeLanguage(url, language).then(done); }); }); - it('should check translated strings', function() { - htmlContentHelper - .findNotTranslationedStrings(content, currentUrl) + it('should check translated strings', function(done) { + protractorWaitHelper.waitFor('body').then(function(body) { + htmlContentHelper + .findNotTranslationedStrings(body, currentUrl) .then(function(result) { expect(result.length).toBe(0, result.message); + done(); + }); + }); + }); + afterEach(function() { + //check for console errors (currently only on chrome) + if (browser.browserName === 'chrome') { + browser.manage().logs().get('browser').then(function(browserLogs) { + expect(browserLogs.length).toEqual(0); }); + } }); }); } diff --git a/src/test/protractor/protractor.conf.js b/src/test/protractor/protractor.conf.js index 5d1dc669d6..a963379450 100644 --- a/src/test/protractor/protractor.conf.js +++ b/src/test/protractor/protractor.conf.js @@ -5,14 +5,18 @@ exports.config = { onPrepare: function() { require('./utils/locators.js'); + browser.driver.manage().window().setSize(1400, 900); browser.driver.manage().window().maximize(); + browser.driver.getCapabilities().then(function(caps) { + browser.browserName = caps.get('browserName'); + }); }, //disable these if you want to run tests locally sauceUser: process.env.SAUCE_USERNAME, sauceKey: process.env.SAUCE_ACCESS_KEY, sauceBuild: process.env.TRAVIS_BUILD_NUMBER, baseUrl: 'https://metadatamanagement-dev.cfapps.io/', - //rootElement: 'html', + //baseUrl: 'http://localhost:8080/', specs: [ 'home/home.spec.js', //'disclosure/disclosure.spec.js', @@ -24,25 +28,37 @@ exports.config = { 'platform': 'Windows 10', 'browserName': 'chrome', 'version': 'latest', - 'screenResolution': '1280x1024' + 'screenResolution': '1280x1024', + 'loggingPrefs': { + 'browser': 'SEVERE' + } }, { 'name': 'Win10/Firefox', 'platform': 'Windows 10', 'browserName': 'firefox', + 'version': 'latest', 'screenResolution': '1280x1024', - 'version': '54.0' + 'loggingPrefs': { + 'browser': 'SEVERE' + } }, { 'name': 'Win10/Edge', 'platform': 'Windows 10', 'browserName': 'MicrosoftEdge', 'version': 'latest', - 'screenResolution': '1280x1024' + 'screenResolution': '1280x1024', + 'loggingPrefs': { + 'browser': 'SEVERE' + } } ,{ 'name': 'Win10/IE11', 'platform': 'Windows 10', 'browserName': 'internet explorer', 'version': 'latest', - 'screenResolution': '1280x1024' + 'screenResolution': '1280x1024', + 'loggingPrefs': { + 'browser': 'SEVERE' + } }], //enable this for local tests without selenium //directConnect: true, diff --git a/src/test/protractor/utils/protractorWaitHelper.js b/src/test/protractor/utils/protractorWaitHelper.js index 5209c52801..c3b84f4f10 100644 --- a/src/test/protractor/utils/protractorWaitHelper.js +++ b/src/test/protractor/utils/protractorWaitHelper.js @@ -4,14 +4,14 @@ /* global by */ 'use strict'; -function protractorWaitHelper(htmlElementId) { +function waitFor(htmlElementId) { var deferred = protractor.promise.defer(); var expectedCondition = protractor.ExpectedConditions; var el = element(by.id(htmlElementId)); - browser.wait(expectedCondition.visibilityOf(el), 4000).then(function() { + browser.wait(expectedCondition.visibilityOf(el), 60000).then(function() { deferred.fulfill(el); }); return deferred.promise; } -module.exports.protractorWaitHelper = protractorWaitHelper; +module.exports.waitFor = waitFor; diff --git a/src/test/protractor/utils/translateHelper.js b/src/test/protractor/utils/translateHelper.js index a1fd0392b9..c6fdfa5735 100644 --- a/src/test/protractor/utils/translateHelper.js +++ b/src/test/protractor/utils/translateHelper.js @@ -1,27 +1,29 @@ /* global protractor */ -/* global element */ -/* global by */ - 'use strict'; -var protractorHelper = require('../utils/protractorWaitHelper'); +var protractorWaitHelper = require('../utils/protractorWaitHelper'); -function changeLanguage(htmlElementId, currentUrl, targetLanguage) { - var deferred = protractor.promise.defer(); +function changeLanguage(currentUrl, targetLanguage) { var currentLanguage; - var changeLanguageButton; + var deferred = protractor.promise.defer(); if (currentUrl.indexOf('/de/') !== -1) { - changeLanguageButton = element(by.id('changeLanguageToEn')); currentLanguage = 'de'; + protractorWaitHelper.waitFor('changeLanguageToEn').then( + function(changeLanguageButton) { + if (currentLanguage !== targetLanguage) { + changeLanguageButton.click(); + } + deferred.fulfill(); + }); } else { - changeLanguageButton = element(by.id('changeLanguageToDe')); currentLanguage = 'en'; + protractorWaitHelper.waitFor('changeLanguageToDe').then( + function(changeLanguageButton) { + if (currentLanguage !== targetLanguage) { + changeLanguageButton.click(); + } + deferred.fulfill(); + }); } - if (currentLanguage !== targetLanguage) { - changeLanguageButton.click(); - } - protractorHelper.protractorWaitHelper(htmlElementId).then(function(el) { - deferred.fulfill(el); - }); return deferred.promise; }